Wizard Tower Game Project

By Jack Sherlock

Video Presentation

Poster

OVERVIEW

Wizard Tower Game is a 2D platformer shooter where the player takes control of an anthropomorphic rabbit wizard who must navigate through levels while defeating enemies by blasting them with magic spells. Platforming is the term used when a game character walks around, runs around, or jumps from platform to platform or otherwise interacts with “platforms” in some manner. A 2D platformer shooter is sometimes called a 2D “run and gun” or a 2D “shoot em’ up”, where the focus of the game is to defeat large amounts of enemies by aiming and shooting at them rather than have difficult platforming sections. In this game, the player can shoot equipped magic in any direction that they want to defeat enemies and progress through each level.

Gameplay

The player can move the protagonist left and right with the A and D keys, respectively. The player can press the Spacebar to make the protagonist jump. The protagonist will aim their magic staff at wherever the mouse pointer is located on the screen and, when the player presses the Left Mouse Button on the mouse, the protagonist will shoot their equipped magic towards the position of the mouse pointer.

By pressing the 1 key, the protagonist will equip the Fireball spell, which will allow the player to rapidly shoot fireball spells by repeatedly pressing the Left Mouse Button. By pressing the 2 key, the protagonist can equip the Lightning spell, which will shoot bolts of lightning when the player presses the Left Mouse Button. When a lightning bolt hits an enemy, the lightning will bounce off the enemy that got hit and will hit another nearby enemy, and this process will repeat a few times and will look like a chain. This effect is called “chain lightning,” where the lightning will “chain” (bounce) from enemy to enemy.

The player starts out with a health bar and some spells. The health bar indicates the player’s “health points” and when those points reach zero the protagonist will be defeated, and the game is over. When the protagonist is touched by an enemy or an enemy’s attack, the player will take an amount of damage and this damage will be subtracted from the player’s health points.

The player can damage enemies by attacking them with spells. As mentioned before, by pressing the Left Mouse Button the player will shoot their equipped spell towards whatever they’re aiming at. If those spells hit an enemy, that enemy will take damage. If enough damage is dealt to an enemy, then that enemy will by defeated and will disappear.

Software Used

The Wizard Tower Game was made using the Unity game engine. Becoming more familiar with using the many features offered by the Unity engine was one of my goals when working on this project.

Many of the art assets were created using an art program called Aseprite. Aseprite is an art software tool that makes creating pixel art much easier and supports a good variety of file formats that I needed for the game, PNG files in particular.

Development

The first part of the game I had to work on was the movement. For that, I had to set up a test area that I could have the player move around in while I figured out how to set up the movement and controls. Moving the player left and right sounded simple, but there are two common ways of setting up controls in Unity: Mapping the controls directly using special Unity functions that can detect the pressing of keys on the keyboard, or a newer control system that can be installed to Unity as a plug-in. Figuring out which style to use and at which times taught me a lot about both systems.

Being able to aim the magic staff and shoot magic was the next most important part, but in the 2D “run-and-gun” genre there can be some nuance to what directions the player can aim in. In some 2D shooter games, the player can only aim up, down, left, and right in a 4-directional control scheme. In most other 2d shooter games, the player can also aim along the four diagonal directions in what is sometimes called an 8-directional shooter. Being only able to aim in 4 or 8 directions can certainly create a fun gameplay experience, but I felt that 8 directions was too limiting for the game I wanted to make. For this reason, I decided that the player should be able to aim in any 2D direction that they want to in what I like to call a “radial” style 2D shooter.

The next thing I worked on was the ability to shoot magic. The focus of the magic in this game is that I wanted the player to be able to shoot a bunch of different spells in rapid succession. Magic also tends to have a variety of different effects depending on a game’s magic system or the role of magic within the setting of a particular game. To ensure I could create spells that could be launched rapidly while each spell applies its own unique effects on enemies or the environment, I had created a magic system consisting of spell objects where the effect of each spell is on the projectile that’s generated. In simpler terms, I have a way of creating all sorts of spells and adding all sorts of custom effects, behavior, and movement to them.

To test some of the effects of certain spells, I next needed to create enemies. To do this, I made a slime enemy in and created a cobblestone tile set so the player had some enemies to fight and an environment to run around in. I also took this time to create a cloud background and make the clouds move downwards as the player moves upwards. I wanted to create the sense that there’s a world outside each level of the game and that the player is always ascending a tower no matter what their current environment looks like.

With some rudimentary enemies completed, I started working on the Fireball and Lightning spells. Now that I had enemies, I now had enemies with which to test out the chain lightning effect on the Lightning spell. A spell like that can’t really do anything without enemies around to chain off of so figuring out the Lightning spell showed me that I could now make spells of a similar nature to the Lightning spell.

With some spells complete, I worked on the health bar next so that the player and enemies could damage each other. The Wizard Tower Game is supposed to take place in a somewhat medieval setting and so I thought it would be cool if the health bar, inventory, and other User Interface menus had a wooden theme to them.

Working on the movement and directional shooting taught me a lot about Unity’s control systems and allowed me to work with many of the math-based methods and functions. Keeping the magic staff facing the right direction was a surprising challenge as it would face the wrong direction if I didn’t carefully keep track of it.

Working on creating the spell system helped to reinforce my understanding of abstract classes and a powerful object in Unity called a Scriptable Object. Learning to use these techniques effectively turned out to be essential in creating a more generalized spell system.

Figuring out the health bar and inventory taught me a lot about Unity’s sprite system and prefab variant feature, in which I can create many variants of a single asset to create inventory slots. Essentially, I can make multiple versions of an object very easily now due to learning about this.

Acknowledgements

I’d like to thank Dr. Eric Kaltman for helping me get started on the first steps towards making this game and for giving me advice while I was brainstorming how to make some of the game mechanics possible, and for trying out my game and providing feedback.

I’d like also to thank my fellow students from the Game Lab in Solano Hall for trying out some early playtests of my game.

The Simple 2D Platformer Assets Pack is sourced from the Unity Asset Store and was created by the user Goldmetal and licensed under the Standard Unity Asset Store EULA. Here is a link to their page on the asset store: https://assetstore.unity.com/packages/2d/characters/simple-2d-platformer-assets-pack-188518

The Fireball Effects sprite set is sourced from OpenGameArt.org and was created by user Cethiel and licensed CC0, public domain. Here’s a link to their page: https://opengameart.org/content/fireball-effect

The shock sprite set, which is being used as the initial projectile for the lightning spell, is sourced from OpenGameArt.org and was created by user Clint Bellanger and licensed CC-BY 3.0. No alterations have been made to the original shock.png, however the image has been separated into several sprite images within the Unity editor. Here is a link to their page: https://opengameart.org/content/lightning-shock-spell

Going Forward

I plan to continue working on the Wizard Tower Game in my free time after the capstone class. Building many of the systems that I’ll need for the fully completed version of this game was to help myself learn the techniques I might need for any games I help to develop in the future. I plan to take what I’ve learned and learn even more as the Wizard Tower Game is fully realized piece by piece and eventually released as a fully-fledged game through one platform or another. Creating video games that people can help put a smile on peoples faces has always been a long-cherished dream of mine, so I’m going to find a way to continue making games with the skills I’ve learned and developed.

With the Wizard Tower Game, I want to create a fast-paced world of fun and magic. With any future games I hope to be able to create games with fun gameplay and engaging stories. Making a game by myself has felt challenging and even daunting at some points, but while I was making the game so many ideas were floating around inside my head that I’d really like to make into games someday. This is something I feel I was meant to do, so look forward so seeing a game I make on a game shelf someday.

css.php