I developed 'Shurikens' for a module called Rapid Prototyping, which as the name suggests is a module at HKU that requires us to make game prototypes on a tight schedule. I decided to study how basic enemy AI and random 2D level generation worked for this project, and ended up learning it successfully within the time limit of a few days. 'Shurikens' is an arcade-style infinite top down bullet hell, where your bullets never dissapear, even when levels progress.
The class was organized class in a game-jam format and the theme was "The more you have, the worse it gets".
I designed a fast-paced, infinite top-down "bullet hell game" where players face increasingly chaotic waves of enemies. The core mechanic, besides the infinite levels, is that the shurikens never disappear. The bullets ricochet off of any surface, so as time goes on, the game gets more difficult. Each level shuffles the enemies and obstacles, but the shurikens remain, so players have to balance the risk/reward of using bullets to bail themselves out of close-quarters situations.
The minimalist, arcade-style visuals and intuitive controls (WASD to move, point to shoot) keep the focus on reflexes and strategy, like any classic bullet hell.
Even though it started out very simple, the game looks a lot different now than it did at the start of its development. Originally, I wanted to make a basic five-to-ten level top down shooter (depending on how much time I gave myself), and slowly add more enemies depending on your performance from the previous level. Instead, after some friends playtested my game, the idea didn’t really seem to come across and made the experience confusing and complicated. I suggested the bullets should never disappear, before realizing how fun that could be, after which I made a bunch of concept sketches for that version of the game. I pivoted to an infinite arcade-style game, where objects and enemies are spawned randomly every level, but bullets stick around, which wasn't very difficult at that point given the foundation I was working from.
Rapid Prototyping as a module allowed me to try two new technical skills: random level generation and basic enemy AI. Both were a little challenging to implement in the short time limit, but they pushed me to understand how these systems work.
Another key area of growth was time managment from a development standpoint. I found I was often having internal debates about which features to exclude and which ones to prioritize, and tried to give myself enough time to make the game feel right.