Inspiration

Dungeon Crawler type games inspired me to create a miniature version of them with a decent amount of modulation.

What it does

You can have 1-6 wizards (1 wizard costs 10 gold and you start with 20 gold) and level up their attack, defence, health and speed (1 level = 1 gold cost increase). You equip 2 abilities and can select from a selection of abilities that benefit off of different stats i.e. normal attack (attack), heal (based on attack stat value), riposte (defensive attack), along with debuffs like slow, weaken defence and taunt.

You get gold and levels based on the amount of damage you do in a raid.

You can dedicate levels to a certain user or subreddit via the input menu to feature on the leaderboard and also post a comment displaying how many points you earned for that subreddit/user in a specific raid.

How I built it

I built it using VSCode, PhaserJS (thank you for the template provided), Microsoft Paint, and Photopea.com.

Challenges I ran into

First off was time management. I didn't have much time at the start of the hackathon, so that meant I had to dedicate more time later on.

The PhaserJS template provided was somewhat confusing for me, like the MainMenu.ts scene being done differently than the other scenes. It might be just to show different ways to do things, but it makes it harder to understand the correct way.

Also the way PhaserJS handles positioning and sizing was a little confusing for me. I had a problem where things would be slightly offset randomly, which I eventually found out was because the function setPosition() doesn't set the position of the initialising x, y. What I mean by this is that if I do scene.add.graphics(100, 100) and then do graphic.setPosition(100, 100) it will be at (200, 200). I am not sure if I did something wrong or if that is how it is. I also found it weird how setting display size and scale is linked and not independent like other game engines.

Finally, I found it a bit stunting how long upload times would take to reddit if I was trying to fix something small. I also found at peak times it would sometimes say it failed to login and that the login details were wrong, even though it wasn't and all I had to do was restart npm run dev. I think it would be beneficial if there was some dev kit you could use locally on your computer to improve compiling times.

I also cold not use console.log() or alert() on the clientside to find errors. I am not sure if this is a Reddit, PhaserJS, or me issue.

Drawing. I am not good at drawing.

Accomplishments that I was proud of

I'm proud that I was able to produce the game I wanted to do and do it to an ok level in an environment that is completely new to me and within the time frame. I have never used PhaserJS nor done a 2D game before, and I have never done a hackathon or anything with Devvit before.

What we learned

I tried to learn as much as I could about PhaserJS and also use PhaserJS as much as I could without relying on traditional JavaScript.

I have learned how Hackathons work and how it feels to participate in one.

I have learned the Redis API.

What's next for Raiding Wizards

It is likely Raiding Wizards will be vaulted. If I see people start to play it and show interest in the game, or if I get some funding, I am more than happy to expand Raiding Wizards.

I had ideas that I had to discard due to the time restraints. Those ideas include:

  • Items per characters that do special things i.e. lifesteal, invincibility for the first 2 turns, thorns that damage attackers, etc.
  • Environmental affects so every time a raid enemy dies, the background and environment could change to do a certain affect.
  • More enemy and abilities.
  • Reset button for resetting spent gold on a character.
  • Fleshed out game over screen detailing which characters did what amount of damage, tanking and healing.
  • Personal achievements that you can pursue and get gold from like "do 100 damage in a run".

Built With

Share this project:

Updates

Submission history