My Personal Role: Creator(Just about everything) Client: Columbia College Chicago(Advanced Game Engine Scripting)
The Twinstick Shooter Project is exactly as it sounds. A simple shooter game where one control stick controls movement and the other controls where the player is firing. The player must defeat every enemy that spawns in each wave in order to win.
Players: 1 to 4 (Local Co-op) Controller: Standard Gamepad (Xbox controller used in testing)
The prompt for this piece was a couch co-op game that could be played using connected controllers. Connecting using the controllers is a tad wonkey but the only difference it makes which player the game thinks you are is in what color your character is. The game drops the players into a join screen where they press "A" to join and only begins the game when all connected players hold "Start." Their bodies and projectiles glow and so do the army of AI driven boxes that harm them if they get too close, otherwise their environment is dark. I had something of a kick in my time at Columbia where I wanted to try a number of existing genres and common play systems like twinstick shooter, tower defense, fps, rts, etc. This was an artifact of that kick, a system that was somewhat common in the world of gaming that I could rebuild from scratch to test my ability to solve puzzles of computer logic and fill out my portfolio with pieces that may be desirable to companies looking to create in that genre.
Obvious lessons were in Multiplayer and Gamepad compatibility. This is one of my first opportunities to use the extremely helpful tactic of repurposing code. The shooting was loosely based on the script present in the Tanks! tutorial in unity's learning section but is so butchered by comparison that it is barely recognizable. That tutorial taught me about instantiated projectiles which I used for most of the project but the method by which they are fired and deal damage were completely different. Reusing script from public tutorials and tweaking or rewriting them to fit my project's needs has become a life-saving tool. This piece ended up influencing a design decision down the road, In part because we wanted to sell the cannon's power and in part because I had done projectile-based shooting in this project Aegis Colony's shooting was done with raycasts and hit scanning instead
Highlights and Comments
Working with gamepads for the first time posed an interesting challenge that forced me out of coding windows and really got me to begin to understand unity and its capabilities. I remember that this project came with special challenge, I had missed a day where our professor explained a basic way to get the player's join screen to work and ended up constructing that feature myself. I remember puzzling over it for days before having a "eureka" moment while at my day job. There was also something cathartic about having a piece that I could playtest with a bunch of friends on my couch, that type of co-op that we grew up with before every box with metal on it had a wifi connection.
Shooting becomes something hectic. If ever I were to return to this one I would rebalance it to ensure the single player experience wasn't as difficult as the four player.