
Mystic Bard Remake
Introduction
A remake of the first game I made using processing 10 years ago, now using Unity. This is a Shoot 'Em Up game where you play as a Bard with magic instruments who defends a village from monsters. My purpose for making this game was to make a fast-paced shooting game where you have to think fast and know your weapons well. I focused on making many different enemy types for this reason. Enemies will react to your weapon types differently and you will be rewarded for knowing your weapons and your enemy types. As with my original game, resource management is also important, because weapons don't have infinite ammo.
​
My main goal for making this remake was to make to make the game more fast-paced, like other shooters. The original game was slow paced, because I wasn't thinking about making it like how fast-paced shooters, first-person shooters usually are and I based it off turn based RPGs. The other goal was to make more enemy types that I didn't have time to make back then. I also created a new weapon type and designed a new special system around the faster paced gameplay. Game and gameplay videos are linked below.

Below is the link to my game, as well as gameplay videos that cover the entire game. The videos are generally no damage runs, though, so you will not get a gauge for how difficult the game may be.
General
In this game, you fight hordes of enemies and bosses. You use a variety of instruments as weapons. The harp has a lot of ammo and reloads fast, but has weak damage and low range. The trumpet is powerful and wide ranged and pierces armor, but doesn't have much ammo. The flute allows the player to grab and drag any object that is small. You can then throw throw those objects at enemies. Knowing the strengths of each weapon will be advantageous. Resource management is important, like in most shooters, because when you use up a weapon's ammo, you have to wait for it to replenish to continue using it. I was motivated to learn and use all mouse functions in Unity.
A big feature of my game is that there is no dodge mechanic. You have to avoid damage with other methods. There are two consistent ways to avoid damage. The first is a Shield mechanic. The player can use a Shield to protect against damage, but it has a meter that goes down each time you block a hit. The second is an interruption system. If you attack a foe while they are preparing an attack, you can interrupt them by staggering them with an attack. I made this mechanic, because most first person shooter games don't have foes or players stagger from damage. The only shooter games with damage stagger features is 3rd Person Shooters like Uncharted.
​
A major mechanic is a special gauge. The attacks you do build it up. When you fill up the gauge, you can use a powerful all hitting attack. This mechanic was meant to complement the faster gameplay and reward players for shooting.
My main inspirations for this game were The World Ends With You and Kid Icarus Uprising. Specifically how both games rely on touch screen functions, which are a lot like mouse functions, for their whole game. Both are games that are shooters or having shooting elements and are both bullet hells in some way. For The World Ends With You, I was inspired by the many attack methods you have in the game. I was specifically inspired by how there were attacks that involved grabbing and dragging objects to throw at enemies. For Kid Icarus Uprising, I was inspired by the fast paced and fantastical gameplay.
​
I designed the game in levels, so that players can jump in wherever they want, which is useful playtesting. A feature I have in this game that I didn't have in the original, was a level up system. There is a no exp feature.
Production Challenges
My development for this game was relatively easy, but an issue I had was related to what methods would take priority. It could also relate to processing speed. There were two instances of this issue. The first instance of this issue is that some of my enemies use a barrier that protects anyone inside it.
The barrier is a trigger and any foe touching it, through OnTriggerStay have a barrier bool turned into true. The foe that generates the barrier has an armor gauge and if you destroy it, the barrier object is destroyed. I already had an issue with this code. The first time I wrote this code, I changed barrier bool into false for every enemy on screen and then destroyed the barrier object. Only sometimes would barrier bool not become false. So I rewrote the code to destroy the barrier and then set barrier bool to false for all enemies. This solved the problem, but sometimes, barrier bool doesn't turn to false. OnTriggerEnter triggers damage for all attacks done by the player, except for Specials, which simply triggers the damage taking code of all enemies. So it is possible OnTriggerStay is playing at an inopportune time and playing again, the minute I remove the barrier object. This is mostly an issue i have experienced on the build version. This is also the flaw of C#, because it doesn't consider a trigger being destroyed as OnTriggerExit. I programmed my enemies so that if they are dragged from the barrier, their barrier bool will become false. A code that does work.
.png)
The second instance was when I accidentally wrote an infinite loop. It was only the 30th time I playtested my game in its final build that it became a problem. It was a code that checked whether a goblin was touching another foe. It was a code that played pretty often. It was a for loop that checked enemies and those enemies would also use that for loop, unintentionally creating an infinite loop. I got rid of the for loop and rewrote my code, but it took 30 playtests for my game to notice this problem.
Enemy & Boss Design
In this game, I was particular about making every enemy challenge something in the player. For example, the goblin becomes stronger by touching other enemies, cautioning players from dragging goblins closer to other enemies. The Red Giant only flinches from armor piercing attacks. The Slasher does some unblockable attacks, requiring the player to attack instead of block to interrupt the enemy to avoid damage.
For the boss, the Grand Dragon, I designed it with this in mind. To challenge, the player, I had the boss have all the mechanics of the enemies up to this point, as a test to see how well the player knows the enemies.​ To make this boss unique, I designed it to have a lot of phase changes. Most bosses only have three phases at most.
I needed to make a boss that was a singular enemy. To make this singular enemy, I needed a foe that wouldn't stagger all the time from attacks. Because there is only one foe, if they stagger all the time, they will not be able to act. I did this by making my boss not have a "normal" mode like the goblins, that would allow it to be staggered all the time. The multiple phase changes helped, by changing what the boss staggers from frequently.
​
I was heavily inspired by bosses in MMORPGs. MMORPG bosses tend to be long and players are not expected to no damage them. They also tend to need strategy to be beaten. In future updates, I will make bosses that tests other things, like reaction time.
Design
I was heavily inspired by the visual style of Dragon Quest. In Dragon Quest, enemies face the camera and attack the camera. I was also inspired by the cartoony style of the visuals. As such, I went for a retro style gameplay and aesthetic-wise. To reflect that this is a remake of a game I made that was already very retro in style, I did not go for the box design for the aspect ratio and went for a 16:9 ratio to look more "modern" and I didn't make the aesthetic that retro.
Designing the music for the music attacks was a challenge. Because I don't have a background in music and I didn't want the music for the attacks to be grating and irritating, I used excerpts from video game and movie scores to make the music attacks as harmonious as possible.
Conclusion
I was glad to be able to make a battle system that gave a lot of options to players as well as a variety of enemies that react differently to your options. I believe interesting enemies are what is needed to make an action game interesting. Video games are about interacting with objects and while you need interesting options, what you interact with has to be interesting, too.