Player Movement


Development for Super Spacewar! effectively began with a previous rendition of Spacewar! developed over an impromptu weekend game jam several weeks prior; a pizza fuelled passion project that would ultimately serve as inspiration for its eventual successor. The initial goal of the project was to create an entirely separate title, only borrowing conceptually from the original game. So, after porting the base project from this classic version, work began by overhauling the player movement to be more in line with the games original vision. The decision was made to use Unity’s new Input System, over legacy input, as it allowed extensibility for the implementation of local multiplayer in the following weeks. To save players huddling around a keyboard, the game would require controllers to play locally, and a control scheme was set up accordingly.

The original player movement relied on the physics system to move the players ship in a way that was realistic to a fault, requiring the calculated application of thrust to avoid over-acceleration, and making it difficult to stop or change direction. While this added a strategic element to controlling the ship, it would likely become frustrating as new features were added that increased the pace of the game. Therefore, the goal was to create tighter and more fluid controls, that would allow the player to move in the absence of inertia, gradually decelerate, and cap the maximum velocity. In addition, rather than using digital inputs, the rotation would utilize directional control through the Analog stick, with acceleration based on the magnitude of tilt. This required the ship to constantly be moving in order to aim, to encourage players to engage in dogfights. An afterburner, or boost, was also added, to help players evade shots and escape danger.


Over many (many) iterations, a refined movement script was written, that greatly improved the accuracy and responsiveness of the controls. There were two versions of this script, one using the physics system and the other manipulating the transform directly. The choice to continue to use Unity’s physics system to handle movement allowed for easier interactions with other scene objects. However, the process of overhauling the controls led to the central star, a pivotal feature in the original game, no longer functioning correctly.