PROGRAMMING

Wizard Tactics - April 2021 Progress Update

Hello everyone!

Given that we’re about a quarter of the way through 2021, I figured I’d give an update on what progress I’ve made on Wizard Tactics over the past 3 months and summarize my plans for the next few months of development. I liked writing up the 1 year development retrospective and decided that it would be fun to publish progress updates more consistently than once a year, as it’s a nice way to reflect on what I’ve worked on. If you’re interested, I’ve also gone into depth on some design changes I’ve been making here. (The design change discussion used to be part of this post, but I ended up writing too much and decided to split them up - oops!)

General Updates

In January, I pushed out some more bug fixes in version 0.3.3, and then got to work on making a new spell - Water Jet. Water Jet sprays out a stream of water, pushing objects back and dealing a little bit of damage while coating the ground with water. It can also be frozen into ice shards or electrified to increase its damage. I had decided to work on a new spell first for version 0.4.0 in order to motivate myself after my holiday break. My favorite part of working on Wizard Tactics is dreaming up new spells, so I’ve been trying to be deliberate about interspersing them in between less creative tasks to help keep my morale up.

A player shooting Water Jet at another player, coating the ground in water, and then the other player punching the water back as ice shards using Ice Punch.

I think Water Jet turned out well, but its development took longer than I expected. I didn’t account for the fact that I would have to make separate states for the spell if it got hit with Lightning or Ice due to the malleability of Water in my element system, and as such it ended up taking almost 20 hours. That doesn’t sound too bad (about 3 work days if this was a full time job), until you look at how much time I’ve spent on Wizard Tactics as a whole this year; I’ve worked a little under 100 hours these past 3 months, which means Water Jet took up almost a fifth of my total development time! Since I’m determined to treat making this game as a hobby and not stress too much about estimating as long as I’m staying generally focused, Water Jet taking so long isn’t a big deal, but it is fascinating to see how long various tasks take me now that I’ve started tracking my time.

January also marked the first Wizard Tactics Bonfire Tournament, a probably too serious name for what was essentially me trying to find fun ways to convince people to play my game with me. The participants ended up being myself and 7 of my friends, and I had a lot of fun! Everyone seemed to enjoy the game, and it was fascinating watching the different strategies people latched onto. I streamed the tournament on my Twitch channel, and a few random people stopped by, expressed interest in the game, and joined the game’s Discord server, which was both surprising and very cool! It always makes me so happy to see people enjoying something I made, so the tournament going well was a nice confidence boost. It also gave me a lot to mull over in regards to the game’s design (which I went into detail on here). Once I finish version 0.4.0, I will definitely be holding another tournament, and will try to hold more regularly.

February and a large chunk of March were spent on bug fixes, balance updates, and controller support. Controller support is probably 70% done at this point. The game is fully playable with controllers, and can detect if you are using a PS4, Xbox, or Switch Pro controller, and display the appropriate icons. I primarily use a PS4 controller when I play games and it’s a pet peeve of mine when PC games only have Xbox button prompts, so I wanted to make sure my own game supported PS4 and Switch controllers both mechanically and graphically. Playing with a controller feels so much better than playing on the keyboard, and I’m really glad I took the time to add support for it! However, I still have to fix a few remaining controller bugs. I also need to add menus to allow players to manually switch what player a controller is assigned to, make sure the game automatically pauses when a controller is disconnected, show the right button prompts in the controls menu, and allow for both controller and keyboard to be used mutually exclusive of each other. Right now, the two sets of keyboard controls are always assigned to player 1 and player 2 respectively, even if a controller is also assigned to a player. I’d like to make that relationship exclusive so that keyboard controls could be assigned to different players, and each player would have only one source of input. But… now that I write that out, I think it might be best to push that last feature out until after I release the game into open beta. It’d be really nice to have that feature, but it’s probably not worth delaying the release of version 0.4.0 for. I’d also love to eventually add the ability to change button and key mappings, so maybe I could pair working on those features together.

The spell select screen, showing player 1 using a PS4 controller and player 2 using a Switch Pro controller.

Finally, for the past week, I’ve been spending some time just working on spell prototypes. It’s been a blast working on just getting the mechanics of a spell down without worrying about polishing it or adding art. I prototyped three spells - Boulder Toss, Teleswap, and Lightning Fence. None are guaranteed to be in version 0.4.0 (or even the final game), but I suspect I’ll end up finishing at least Boulder Toss for 0.4.0 since I want a damaging Earth spell in the game for people to be able to test out some changes I made to the element system. If I’m honest with myself, I think the past week of prototyping has also been me avoiding working on some really pesky and obscure controller-related bugs, so I need to buckle down and just push ahead on attempting to fix those bugs very soon.

What’s Next

Well, first, I really need to buckle down and finish up controller support and Boulder Toss so I can finally release version 0.4.0. Once I release 0.4.0, I’d love to do another tournament to celebrate it (and watch people play with the new changes). I’ll then begin work on version 0.5.0, which will tentatively include at least 1 new spell, support for multiple screen resolutions, and some more bug fixes. This is all preparation for version 0.6.0, which will be where I attempt to add support for up to 4 players. I have absolutely no clue if the game will work well with 4 players, but I know that I will probably need to make the playing area larger to support the increased player count, which is why I want to add variable screen resolutions. I’ve been working with a 600 x 800 window for over a year now, and it’ll be very nice to be able to have the game able to support different sizes, even if it’s something as simple as 1x, 2x, or 3x sizes.

As always, I have no explicit deadline for these updates, although I do hope that I will be able to get the next few versions out faster than the 3 months I’ve spent on version 0.4.0. Finishing version 0.9.0 is the current end goal for releasing into beta, and while I had been idly hoping to have that done by the end of the year, that’s looking a little more unlikely. But we still have 9 months left, who knows what the rest of the year will bring! (I pray that statement turns out to be a good omen and not an ominous threat.)

If you’ve read through all of this update (or even just skimmed), thank you for taking the time to read it, I really appreciate it! If you’d like to follow the development of Wizard Tactics more actively, I tend to post updates and GIFs on my Twitter and the game’s Discord server. The game also has a store page over at itch.io if you’d like to wishlist it.

Until next time!

— Tyler