Endless first-person-shooter action
Difficulty-scaling wave system
Precise and quick turret movement
Auto-angling turret
My development on Asteroid Approach was sporadic – I designed and programmed most of it in one very busy day, tweaking the coding and adding audiovisual effects a couple days later. The game was made by myself for an advanced game development class with the instruction to craft a 3D spin on the 2D arcade classic Asteroids.
Though it boasts countless explosions and canon fires, at its core, Asteroid Approach is all about time management. An asteroid takes six hits to break into three smaller rocks that only take one hit to destroy for good, and each time an asteroid is hit it gets pushed back a bit. You can take the time to annihilate one asteroid, but then another asteroid approaches, and gets dangerously close! Or, you can divide your fire between both targets, and let them both approach.
A player may not notice in the heat of gameplay, but asteroids become easier to destroy as they approach. Not only is this because they become bigger targets, but because each asteroid is on a collision course not just for the screen, but the center of the screen. This means as asteroids approach closer and closer to the player, they also get closer and closer to each other, meaning less time is needed to move the turret between targets. This set up makes waiting-to-the-last-second strategies feasible. And right after the brief wash of victory from one of these near disasters, a new wave appears.
Since the asteroids’ collision paths are angled toward the center, it made sense for the player’s turret to also angle to better shoot these moving targets. To let players achieve this effortlessly, the turret automatically rotates according to its position - move it up and it rotates up, move right and it rotates right. This turned out to be a very intuitive way to control the turret.
Another problem I ran into with the design of the turret was that it needed to possess two opposing qualities: it needed be slow in order to allow the player to carefully sharpshoot difficult targets, but also fast to let the player sweep across the screen quickly to reach a far asteroid in time. Moving at the improper speed in either of these situations would be very frustrating for the player, as would a cumbersome solution to this dilemma. In the end, I designed the turret to move slowly at first input, and then after a moment, rapidly accelerate at breakneck pace! This solved the problem in a way that was effortless for players to learn.