Game Genre Studies 1
About the Project
This was a semester-long assignment where I learnt about making a game with a specific genre, and then constantly updating that game weekly with new feautures. I have a total of 2 games made for this assignment.

Game Engine
Design Process
Game 1: An Unreal Shooter
Genre: ShootEmUp
Concepting
For the 1st game, the genre we were given was "ShootEmUp". The core mechanics being are able to shoot and dodge enemies. Hence during the concepting phase, I decided to try and make an 3D arcade-like game in Unreal Engine. To mimick that arcade feel, I decided that my ShootEmUp game will be a twin-stick shooter setup.
Pre-Production
In the pre-production phase, we first had to plan out all of our game's features. And over the course of 5 weeks, we would add in those features week by week, iterating upon the previous version. Below is all of the features planned for the game. Including both completed and cancelled features. The reasoning for the cancelled features is often due to lack of time or they just didn't fit in the end. The ones with a gray background means that these features are completed and have been updated to either be tweaked or reworked.



Production
Once I had my features planned out, I quickly began to develop my game in Unreal Engine.
During week 1, my biggest issue was trying to get the AI to work as intended as the problems with the AI was that they would only face 1 way and their spawning intervals were not tweaked properly. Most often the AI would spawn too close to the player.
This carried on into week 2 where the problem became more noticeable when I had playtesters play this game. While now there was a limit to how many enemies can exist at a time, nothing was done to resolve the AI spawning issue and the AI attacking.
For week 3, I had made several changes as how the AI spawns and how the AI attacked, it had somewhat seem to resolve a few issues but further tweaking was required. For the AI spawning, I placed additional spawn points acrossed the map to have them spawn there. While the AI spawning right next to the player is now low, if a player were to go to any corner, the AI would spawn on them instead. AI attacking behavior was also adjusted to be able to not spam attack the player. However, I also noticed a bug where the AI would just break. This was the week where I added both scores and health for the player. Player feedback was positive for these things.
For week 4, I found the issue of the AI breaking as the NavMesh for some reason was broken. I had to create a new NavMesh, as well as readjust the level to resolve that issue. Further changes were made to the enemy AI, their spawn time intervals were adjusted and their damage was slightly tweaked. There is also now a high score system in the game. However, I suffered with this a lot as I am not too sure how Unreal Engine save data works. I've tried countless methods to get the high score to save but was only able to get it be saved until player dies, and then it gets reset after players start again.
For the final week, we were advised to not add any additional features, hence I mainly just tweaked a few things based on player feedback. Firstly, I improved the mouse control as players complained that mouse often would be too difficult to rotate with. I then made some balance changes to the health where players will lose all health if they stay idle, and the health orbs will spawn more frequently. I also improved the tutorial section as based on my experience making the game, every player would just launch straight into the game without checking anything else. Hence I've made the tutorial appear after pressing start and that it is also now easier to read.

Game 2: An Unreal Platformer
Genre: Platformer
Concepting
For the 2nd game, the genre we were given was "Platformer". The core mechanics are being able jump, and having platforms. During the concept phase, I didn't want to make a regular platformer, hence I decided to go something like an autorunner, similar to that of the Dinosaur Game or Canabalt. For this game, I continued to challenge myself to try and make this game in Unreal Engine.
Pre-Production
Like the previous game, during the pre-production phase, we first had to plan out all of our game's features and over the course of 5 weeks, we would add in those features week by week, iterating upon the previous version. Hence, below is all of the features planned for the game, including both completed and cancelled features. The reasoning for the cancelled features is often due to lack of time or they just didn't fit in the end. The ones with a gray background means that these features are completed and have been updated to either be tweaked or reworked.



Production
Once all the features were planned out, I quickly started developing the game in Unreal Engine.
For week 1, I quickly was able to implement most of the major core features I wanted for this game, which included the endless level generation. I found that to be quite the challenge to add as I really wanted for the level generation to be procedural and randomised. Meaning that every playthrough will not have the exact same levels. The level varieties was still being worked on at this time and I was only able to get it done during week 2.
When week 2 arrived, I was able to get the other core features that I wanted in, with the exception of a game over screen as I was more focused on trying to implement the other core features first. I also adjusted the ground obstacles and the jump height a bit here by making the obstacle lower and the jump higher. That proved to be a mistake as players would just ignore the ground obstacle, and several would complain about the jump being too high.
Coming to week 3, I readjusted the jump height back to default and reverted the ground obstacle change. Menus and game over screens were added here too, alongside the air obstacle. Feedback that I mainly got was that the obstacles stopping you slowed down the game's momentum and made it less fun.
So for week 4, scoring and health were finished and players seemed to be more focused on that. However, I noticed that players were more focused on the distance tracker rather than the actual score itself.
By the time the final week arrived, I've decided to completely remove the scores and keep the distance tracker there as that is somewhat a score system itself. I also added in health pickups which was once cancelled as I noticed players hit obstacles very frequently. Obstacles now also destroy upon contact.
