Recently I heard about the One Game A Month challenge and decided to try it. This post defines the goals of my 2D space shooter, which I call Project Icarus.
The main influence for this game is S.P.A.Z – Space Pirates and Zombies. One thing Icarus – Wave Attack (the Construct 2 space shooter) did not have is mouse controls, which is better defined as physics-based movement with mouse input. Given how much I liked the feel of the player ship in SPAZ, I’ve decided to make the change from tight ‘snappy’ controls to more fluid momentum-based motion.
Keeping in mind that I have one month – better defined as 30 days – to do this, I will separate the ‘core’ from the ‘extras’ so I don’t feel bad if I don’t get around to the latter.
- Physics-based mouse input controls for the player ship. [Mostly done!]
- Player ship firing and taking damage.
- Player ship shields automatically activating when an hazardous object gets within range.
- Infinite starfield background. [Already done!]
- Procedurally generated nebulae with random placement. [Already done!]
- Randomly placed enemies within a set distance from the player’s initial spawn.
- Randomly placed asteroids within a set distance from the player’s initial spawn and enemies. This means asteroids need to be spawned after enemies.
- Basic enemy AI that fires at the closest hostile target (either the player or asteroid), and will seek out the player ship if it is within a certain distance.
- Asteroids break into smaller parts when shot or colliding with another object. The game needs to have objects bounce off each other after collision (except bullets).
- Smaller asteroids get destroyed upon collision.
- Missiles! Only homing missiles will do, since missiles that travel directly to target are unfun. If the core gets done, this asset should speed up this extra.
- Decoys. If we add missiles, then decoys naturally follow.
- Powerups. Icarus – Wave Attack had the ship automatically upgrade upon collecting debris, and it would be cool to bring this back.