Game Development

Rebuilding WizFight Part I: Powers and Modding

In the years since I left game development to pursue a career in games journalism, one thing that I have regularly thought about is how I could have made WizFight better. What started as a simple, side-scrolling, single-screen arena shooter soon became a game with a cast of over 30 characters, each with their own unique power, and I never felt that I did it justice.

I had originally planned to port WizFight to Unity so that I could publish it on Wii U and, in the process, I hoped to make several large changes to the game, but life conspired against me and that never happened. Some of the changes proposed here date back to then.

Note: I don’t know when I’m going to get around to this rebuild. This is simply an outline of some of the changes that I want to make when I do get around to it.

More Powers

A single power per wizard is great and all, but I have two primary lines of thought about why it may not be the ideal setup.

  • Many of WizFight’s wizards were based on intentionally silly ideas. For example, the banana wizard. As a result, many of their powers are objectively less useful than others. Even exempting blatant balance issues like the speed of the sun that the sun wizard summons and the issue with the invisi-wizard’s invisibility power actually being a detriment to the player playing the invisi-wizard, rather than their opponents (an issue that was brought to my attention during playtesting, but that I wasn’t sure how to replace at the time), the concepts themselves lend to a severe imbalance between wizards. Each wizard has one power and that one power has to be both at least semi-related to that wizard and interesting at the same time. Thus, characters like the banana wizard simply aren’t as useful as other wizards. However, this could be solved by giving each wizard three powers instead, allowing room for the more “iconic” powers that define each wizard, as well as some that might have more utility and, thus, lend to a more balanced play environment.
  • There’s a sort of disconnect between being allowed to hold three crystals at a time, but only being allowed to cast your power when you have three crystals. It’s unintuitive and leaves large swathes of time where you simply can’t do anything but shoot the basic shot. Introducing a system where each wizard has three powers, one that costs one crystal, one that costs two crystals, and one that costs three crystals, gives more leeway for creative play and gives you more options at each point in the game.

There are, however, challenges that would come along with implementing this system. Due to not using the right joystick, gamepad controls are already fairly crowded and not the most intuitive. Ideally, I’d like to steer away from using the shoulder buttons in this kind of game. However, if I put each power on its own button, odds are that I’d have to use at least one shoulder button—and simply using one shoulder button isn’t the most comfortable setup. Unfortunately, on the other hand, using one button means that it would have to be context sensitive, eg. if you have two crystals, it casts the spell that costs two crystals. That then negates many of the benefits of having multiple powers per wizard.

But there’s another problem. Due to the small amount of screen space available, combined with characters that are tile height and a natural lean towards small corridors if levels are to be interesting, even if every wizard had three powers, there are too many situations where the basic projectiles are simply the most viable option. You shoot them and they continue horizontally until they either hit something or continue to go off-screen—and you get three of them at a time for free.

One recurring suggestion to counter this was that I implement a shield. One tester had told me that it shouldn’t be a full shield as such, but a shield that was simply meant to counter an incoming attack. Now, five years later, I think that I have a better solution.

My proposed solution is that basic shots cost one crystal. Wizards will then have two powers in addition to the basic shot, one that costs two crystals and one that costs three crystals. This makes it so that players don’t have an infinite amount of potentially overpowered basic projectiles and resource management plays a more significant role in the overall flow of gameplay. However, it also still allows each wizard to have an additional power that contributes to a more balanced gameplay environment.

Better Modding Support

While I did what I could with XML-based modding support, I have always thought that it was lacking. If I were to do it again, I would probably embed a scripting language and use that to write the logic for the wizards, powers, traps, and AI. The core game components’ scripts would probably be baked into the binaries to keep them from being modified.

Most people would probably suggest Lua for this purpose. However, I would probably opt for Wren instead.

Leave a Reply

Your email address will not be published. Required fields are marked *