Maelstrom
Maelstrom - 2018
Maelstrom was made by a team of 6 over the course of two weeks. Inspired by the classic game Tempest, it is an action game built using Phaser HTML 5 Framework.
Built with HTML and Phaser 3.
Working with Web, HTML5, and Phaser 3, was really fun. Due to my past experience in web development, I believe I had a good handle on javascript design patterns to assist me in this venture. The biggest thing I quickly noticed, however, was how much I had to pay attention to performance. I quickly learned you couldn’t abuse Draw calls, and that the Javascript garbage collector basically had an attitude, and would only garbage collect when it felt like it. And so in order to recover our game from a state of running at 3 frames per second (or just straight up freezing), I did my best to minimize Draw calls and to point out obvious collects to the garbage collector. I’m happy it worked.
My Contributions
As Lead Engineer I performed the following:
Build the underlying structure and framework to work alongside Phaser 3. Modeled structure using JavaScript design patterns of singletons and revealing module pattern.
Built core gameplay and mechanics. Such as player/enemy movement using linear interpolation, and enemy management using an object pool.
Built system to draw levels as well as load them in on the fly. Optimized garbage collection of levels between transitions as well.
Built AI enemy behavior using a state machine.
Programmatically animated level transitions to fake 3D space. Also optimized drawing to disregard unnecessary drawing.