The end of the project is leering in close now, but as far as I can tell my game is on track to still be completed. As to date, the AI and shooting mechanics are basically complete with some minor adjustments and tweaks to still be carried out.
Since last week where I had a working player, level and camera, I focused on giving the game a purpose. In this case, working enemies. After developing a placeholder sprite for them, I made a rudimentary walking mechanic that simply moves the character sprite left and right. This was accomplished by calling a movement method that constantly calls itself after it was originally called. Once I got this working, I then start working on the shooting mechanics.
On the player, I developed a bullet class for the bullet sprite and properties to be utilised from. After enabling a keybind to call the shooting mechanic, I then created my first mess up of the project. Phaser does already have inbuilt functions to create working projectiles of which at the time I did not know about. So, I created my own more technical way of producing bullets which was accomplished by pushing each instance of the class into an array. This array was then looped through, and each instance would have been called to produce a sprite and a movement mechanic. While more technical, it did still accomplish the same affect at the end of the day which is good enough for a working prototype.
For the AI, I developed a separate bullet class with a separate overlap function so that I could distinct the functions from each other and cause the correct character to die upon impact. I integrated the shooting mechanic in with the movement mechanic to avoid having to call two separate functions constantly and use up more memory than I needed to which would also work in my favour as by this point, I had randomised the movement patterns for the AI which would also affect the fire rate as well. This could be seen as a bad thing because it means I don’t have independent control over both functions but for a prototype It will serve its purpose more than enough. After that, I created a loop that would spawn a series of enemies across the now finished level and would spawn them at random on the Y-axis. This is when I would notice the first major bug in the prototype. I discovered, that even when the player would destroy an enemy, the enemy would continue shooting from their last known location. Once we discovered what was causing the bug, we had to perform an extra check upon enemy that had just been hit to disable his shooting mechanics so that players could continue passing through the level.
I would summarise the project so far that the game could be properly polished with more time. While I imagine that’s quite a common thing to hear, I do believe all my extra mechanics that would have given the game it’s unique playstyle could have been implemented but there just wasn’t enough time to fit the entire scope of the game into the time frame of the project. However, for what I achieved in this time the working game now accomplishes its purpose as a rage game once up balanced the fundamental elements of the AI and the player which is giving it a nice addictive feel. Once I get some more playtesting feedback, I will be able to see where I can change the project a bit more to make the game a bit more user friendly or adding additional content that may improve the players play experience.