This little blog has been written after I have submitted the game that I created as part of the Advanced Games Engineering module. I will be looking back at the project and reflecting on what I had achieved and what should be done differently in the future.
What I aimed for:
From the start I decided on a bullet hell game; a sub-genre of shoot em ups. I wanted a simple player object which the player can control within the screen range. Then enemies would spawn out of the screen and hunt down the player. Each wave would result in more enemies to be spawned. I wanted to try and convey the idea of swarming the player with lots of enemy units.
What I am proud of:
Design patterns were implemented for certain parts of the game. For example, the main Game engine was implemented as an singleton pattern. This allowed for access key objects throughout the program, for example the render window or information regarding game object map.
Another design pattern implemented was the service selector pattern to handle audio, although this is not required, it allows for multiple audio libraries, if I decide to add support for other libraries in the future.
What I need to work on:
The enemy spawning was supposed to be a random position outside of the screen and they would converge towards the player. However, the numbers produced resulted in a bias towards the top left of the screen. Ideally the enemies would have have had a roughly equal distribution around the screen.
The main enemy type stop moving towards you once it reaches a certain distance. This is noticeable and can easily be exploited. More effort should have been done to make the enemy move around the radius instead of just stopping in its tracks.
Once there is a considerable number of enemies, they start to spawn upon each other. As they do not have a initial velocity to move this results in the current collision resolve loop to be exited. Therefore, the game freezes. A simple solution would to increase the time between spawning another enemy to ensure that they would spawn.
I would like to continue on this project if I can find the time. The main feature of this game I would fix would be the enemy spawning. I would try to stagger the spawning so the entire wave did not spawn at once. A lot more effort in the graphics and audio would help to improve how the game feels and plays. More power modifiers and enemy types would help the game be more diverse; as well as an inclusion of a boss enemy every x waves to help break up the game flow.
As I wanted
In terms of the games coding, a lot of it needs to be refactored. Due to time constraints corners were cut in regard to code quality and maintainability in favour of getting the project done by the deadline. Although I understand how it works I doubt many other people would.