Project Time: 2 weeks 50%
Game: Created in Unity using C#
• Unity C#
What I learned
- Creating a C# game by using the current knowledge I have and searching for answers elsewhere to achieve the desired result.
- Creation of UI both technically and visually.
- Playtesting and balancing of a Shoot ém up game.
- Loading scenes in Unity using scripting commands.
Visual yet Enjoyable
When we were handed the assignment I instantly knew I wanted to make the game both fun gameplay wise but also visually appealing for my own sake. I knew I couldn’t focus too much on the graphical part so I chose basic sprites from the internet which I then customized and edited in Photoshop.
It was an incredibly enjoyable project were I at first struggled to learn the basics but later experimented with more movable objects, visual effects, particles and bullet types.
The project required the following:
- A movable player Character using the arrow keys
- A boss and playable character with visible health and attacks
- Several phases which the boss went through as it lost health
- Turrets and lethal parts on the boss that blinked red when damaged
To make it easier for me to keep track of everything I created a few easily customizable behaviors which I easily could change in the engine.
With these customizable parameters, I could easily change the turrets however I liked and balance the gameplay without any major changes in the scripts.
Tower Attack Options
- Attack Timer: The time in-between bullets fired.
- Reload Timer: Time in between bullets or bullet rounds.
- Bullet Limit: Amount of bullets shot each time.
- Projectile: Any projectile could be used.
- Health: Health value of the turret.
- Faced Object: Any object, most turrets had the player plane already set in the prefab.
The Turret will proceed to shoot all bullets set in Bullet limit with latency from the reload timer and then wait based on the Attack timer until next round of bullets.
Example: Attack Timer = 6, Reload Timer = 3, Bullet Limit = 5. The Turret will shoot 5 bullets 3 seconds apart and then wait 6 seconds until it shoots again.
- Anti-air: Small Turret with relatively low health and quick attack. Ment to serve as basic “bullet-hell” turret.
- Cannon Turret: Fires a single slow-moving shell. Only used in first and second phase.
- Scatter Turret: Fires a shell like the Canon Tower which then scatters 8 smaller bullets every X seconds in 8 directions.
- Laser Turret: Fires a red beam straight out from the barrel dealing quick ticking damage.
- Rocket Turret: Triple Barreled Turret with player-seeking missiles. Each missile has a script which allows it to follow the player in a curve until it dies. Implemented to give the player a threat they simply couldn’t avoid by moving once.
[showhide type=”links” more_text=”Deeper Reading” less_text=”Hide Deeper Reading”]
When I started working on this project my skills working with C# were not the best. We had already had several scripting projects and courses before to give us a sturdy base in C# and at first, I had a hard time learning but slowly got better.
We were told to create a shoot ’em up game using everything we had learned so far, moving objects, HUD elements, implementation of media, a character of some sort which could be moved using arrow keys and have some kind of enemy or boss.
My initial idea was to create a generic shoot em’ up with enemy planes going from right to left with different attacks and movement patterns but changed it to a boss fight instead. I found a sprite for a ship, some planes and turrets from a few existing games which I then modified to better suit my vision. I then proceeded to