Documentation
Super Spacewar! differs considerably from the initial vision laid out in it concept document. The original title, Super Starfighters, was chosen to separate this game from its predecessor, as it was merely meant to pay homage to the game that inspired it, expanding upon the core gameplay whilst standing on its own as a unique title. However, immediately following the final testing session, it became apparent that what testers felt I had created was a direct successor to the original game, and feelings were mixed regarding my overhaul of its defining features. Therefore, I made the decision to change direction with the game, re-working or outright removing several changes I had made, and re-titling the project in accordingly. The game was now Super Spacewar! a spiritual successor to the original title that packs in plenty of explosive fun, whilst staying true to what made the original game unique.
The concept document was intentionally written to include more features than I knew were possible to implement, given the time constraints of the project. It was intended to serve as a jumping off point, detailing a grand vision for what the game could eventually be, and providing plenty of options for features that could be added over the course of development. I made the decision early in the project to focus on local versus multiplayer, over co-operative play, as this was always intended to be the primary game mode. Likewise, the standout feature of the game, it’s powerups, were a priority feature during development, and most of the examples provided in the concept document were eventually added to the game. There are, however, many power-ups I still wish to include, both offensive and defensive, to add even more variety to the combat.
Another feature, that has unfortunately not yet been widely implemented, is the ability to customize the gameplay, by toggling weapons and power-ups, or applying other modifiers. The decision to omit these features from the final release was made, as I felt they could not be well-integrated into the game within the remaining development time, and attempting to do so would severely reduce the level of polish afforded to the final submission. This was further complicated by the fact that, due to unforeseen circumstances, the start of development was delayed by around two weeks. This would ultimately be the reason the game resembled it predecessor more than initially intended, as the work done on this in the weeks prior severed as a saving grace for the project. However, I feel that the decision to make the game a Spacewar! successor was the right choice, and going forward, I would continue to develop the title with this new goal in mind.
There are of course plenty of features that remain to be added – one of the most pressing being the addition of an AI controlled second player. During the testing session, it became clear that most players could not play the game as intended, as they lacked a second person to play alongside them. In addition, I had wanted to add an “Attract Mode”, to tie in with the retro arcade theme I was trying to create. Unfortunately, this all but requires the initial implementation of some form of AI to function correctly. To create an AI controlled ship that was more than just a giant missile required significant development time, and quickly became infeasible given the projects time constraints. The game also requires additional UI elements, and the implementation of gameplay cues, as outlined in previous dev-logs. One additional feature suggested by a tester, that I would like to include, is having debris orbiting the central star, to hint at the presence of a gravity well.
Overall, I am happy with where Super Spacewar! is currently at in it’s development, and whilst there are countless features that could yet be added to expand upon it further, I feel it effectively captures the core vision of the game – and look forward to continuing work on it in the future.
Asset List
Sprites:
- Needle and Wedge (ship sprites) – Created by me for Spacewar! resembling the vector drawn ships from the original game.
- Missile – just a square.
- Power-up – just a circle.
Scripts – all written by me with the help of the unity documentation:
- Player
- Thrusters – handles player input and movement.
- Weapons – handles player shooting and stores current weapon information.
- Hull – tracks players damage and invokes respawning.
- Hyperdrive – implementation of the hyperdrive, also used to respawn players.
- Weapons
- Missile – handles the implementation of each missile type.
- PowerUp – grants the player a weapon when collected.
- Hazards
- Star – allows the central star to be disabled (for testing purposes).
- Camera
- TargetCamera – adjusts the camera position and orthographic size to keep all players in frame.
- CameraShake – applies a subtle shaking effect to the camera. Called when a player is damaged/destroyed or exits hyperspace.
- CameraUtils – a static that is inherited by other scripts to provide repeatedly used camera functions such as getting the bounds or finding a random position on the screen.
- Misc.
- GameManager – tracks the current score and handles the toggling of UI elements, as well as starting/ending the game.
- Starfield – pre-bakes the starfield particles based on provided parameters and allows it to scroll with the camera by recycling each star as it moves off screen.
- ScreenWrap – allows any object to which it is attached to wrap around the screen if they go out of frame.
- ObjectPool – stores all instantiated weapons and explosion effects so they can be re-used, to improve efficiency over creating/destroying objects each time.
Prefabs:
- Missile
- Homing Missile
- Matryoshka Missile
- Cluster Missile (wide)
- Cluster Missile (narrow)
- Power-up
- Big Explosion
- Small Explosion
- Inverted Explosion
Game Objects:
- Main Camera
- EventSystem P1 – handles Player 1 UI input.
- EventSystem P2 – handles Player 2 UI input.
- Game Manager – handles Player input and manages the core gameplay loop.
- Canvas – contains the UI elements.
- Object Pool – contains instantiated weapons, keeps the hierarchy uncluttered.
- Starfield – The particle system for the starfield backdrop.
- Star – the central star
- Wedge – Player 1
- Needle – Player 2
Fonts:
- Coders Crux by Chequered Ink – available at: https://www.dafont.com/coders-crux.font
Super Spacewar!
Status | Prototype |
Author | Codemyster |
More posts
- Polish and UIMay 26, 2023
- Presentation and GraphicsMay 26, 2023
- Weapons and Power UpsMay 26, 2023
- Local MultiplayerMay 26, 2023
- Player MovementMay 26, 2023
- Game TestingMay 20, 2023
- Game ConceptApr 14, 2023