Phaser Project
With the last days of development for a 2D Phaser project coming to close, I’m left with a couple of take aways. This first complete project has offered a lot of new insights. First off, with such a short development cycle, the very real scope creep monster reared its head. Although I was able for the most part to limit this, I am still looking back thinking I could have done more to focus my project into one polished idea, then proceeding if I had time.
My Phaser project was a Mega Man style boss battle with 3 stages. One enemy with 3 finite states, along with a couple different weapon types for the player, and a few different attacks for the enemy. Each stage was completed by depleting the enemy’s health bar for that round. The core was very simple, but with the introduction of three different stages, meant that the enemy had to behave three different ways. One was static while it threw bouncing projectiles, stage two had the enemy fading in and out of sight while it spawned in several random directions on the map, while the player had to parry its attacks, and the last was a combination of the first two stages while the player had to shoot, dodge the enemy’s attacks, and contend with a bullet-hell scenario of floating between projectiles.

Now that the project is complete, I can say I did three finite states reasonably well given the time restrictions. My concern is that I could have stuck with one finite state and really polished the mechanics to produce one really satisfying stage that could have been expanded on in the future.
For instance, the shooting and parrying mechanics implemented felt good to control and offered a satisfying difficulty, but it left little time to sort out how the enemy’s attacks could have been more considered in the design process. I was left with an interesting player controller and a less interesting enemy to fight.
I think going forward, I need to consider both features when designing for one. They need to complement each other. Something that would have been easier to manage if I limited the scope of the project from the beginning.
Playtesting
After having a handful of people play my game in its entirety, I was able to make some last-minute tweaks. Each playthrough offered a small insight into how something could have been more polished or reworked. For instance, one player had some trouble understanding how complete the last stage using both player attacks. To fix this, I was able to make the items appear in more obvious places on the screen and adjust the enemy’s attacks to push the player into the solution, instead of mindless dodging. This meant the player was nudged to the solution, instead of feeling frustrated and powerless.
SideWork

A lot of time coding and designing this game in Phaser got me very singularly focused, so now that the development period is winding down, I wanted to brush up on some math before diving into 3D games with Unreal. I got a Mathematics for Game Engines text from the library and have been doing some exercises with vector math, cross and dot products, matrices, etc. not extremely exciting things, but useful, nonetheless. Having used some vector math and trig to solve a few problems within this Phaser game, 3D offers more challenges and although built-in functions are helpful, knowing what’s happening behind the scenes I think will unlock a bit more potential for different use cases. It feels good to feel more confident in that area rather before diving into more complex work.