Click here to see deployed game
The projects recreates the famous game Asteroids, which was released by Atari in 1981. The player controls a spaceship on a screen. Asteroids coming in from all sides can be shot into smaller pieces. The player loses, if he loses all his lives by bumping into asteroids too often.
Key | Action |
---|---|
W, ๐ผ | Thrust |
A, โ | Rotate anti-clockwise โช |
D, โถ | Rotate clockwise โฉ |
S, ๐ฝ | Breaks |
Space | Shoots projectiles |
P, Pause | Pauses and resumes the game |
- Start game
- Player can shoot asteroids
- Asteroids keep spawning into the screen
- Asteroids take players lives until he dies
- Player loses, if he has no lives left
- Player wins, if he survives
- After the game ends, the game can be restarted
- spawn progression
- time to survive
- substract lives
- count score
- โผproperly reset game states for new games
- ๐ Taste P funktioniert nach game restart nicht
- ๐ set base url on paths
- ๐ keep ship in bound
- ๐ reset orientation and velocity
- ๐ when sfx is switched off, I can still make shooting sounds, sometimes (like every 2nd time I shoot)
- ๐ firerate is always high, regardless of value set Conditional check is with timestamps (ms) ๐ง Think of a solution, what unit is best
- weapon cooldown
- weapon overheat
- shield bar instead of lives
- asteroid hitpoints
- break big asteroid into small pieces
- powerups
- weapons
- define asteroid types
- create level progression
- organize background image data with all settings for css to change according to level
- asteroids deflect each other
- items, shop & currency
- ๐fine-tune collision shapes
- ๐๐๐ canโt thrust after pause โ game over โ restart also: doing that you can thrust on the Result Screenโฆ in general: The game seems to keeps running after game over
- โผbuild main menu
- lower sound volume of backgroundmusic (on 28)
- menu buttons: sound on hover
- sounds: explosion, thrust, asteroid contact
- add text shadow to title
- disable user-select on title
- animate explosion, thrust
- animate bumping into asteroid (reuse hit edge animation)
- โผShow an immediate dialog when game finishes
- ๐ dialog shows victory, although I dieโฆ
- ๐ never display negative numbers!
- โผ Pause Dialog
- add victorious short musik on level completion
- ๐ on DEFEAT: try again shoud maintain levelID
- ๐ on Pause: intercept ESC to also resume game
- โผbuild result display (win/lose)
- โผbuild game UI: with shield, speed, gun cool down, overheat, current Level
- indicate when pausing the game
- indicate, that player was hit
- on bump: deflect from asteroid, asteroid should stay
- show intro text with a level explanation (maybe with typewriter text)
- collect statistics
- shots hit/miss
- count asteroids hit and group in categories
- โผat game start: transition to game with animation (fancy loading screen?)
- [ ]
- add transitions between video changes (align with beats)
- basic settings (music/sfx)
- transition between views
- audio pooling (see TODO)
- ๐ game view: start rendering only everything is loaded
- ๐ remove asteroid element correctly at screen leave
- ๐ click on intro videos shouldnโt restart videos
- fine tune velocity of spawning asteroids
- ๐ Fix lagging asteroids spawn
hide in hidden containerhide outside screen and render later- reuse elements and use an element pool
- settings
- sounds fine control
- game controls
- ...
- multiplayer
- use reactive values
- Game
- Spaceship
- Asteroid
- Projectile
- Statistics
- ๐ Setup views and cycle through them
- ๐ Setup game on game view and define a game loop
- ๐ Show spaceship and add controls
- ๐ฎ Show asteroids and add random movements
- ๐ซ Allow spaceship to shoot
- ๐ Setup level progression
- ๐ Detect collisions and handle them
- ๐ฅ Display game stats, e.g. lives, kills, time
- ๐ Define winning and losing conditions
- ๐ Add statistics and display them on the result view
- ๐ญ Add all the other good stuff