How miro-jelaska/spaceinvaders works
Space Invaders is a Java desktop arcade game. The player steers and fires at an invader formation; the game loop updates actors, checks collisions, resolves queued events, and renders score/time, effects, and a win/loss overlay. The graph preserves the documented scoring, controls, and audio capabilities. Source excerpts support the main loop, collision, event, and rendering links; some command implementations and projectile classes were not sampled, so their internal wiring is shown only where the tree and documented flow support it.
Main entry points: Game.java Game loop · commands Game commands · HeroShip.java Hero ship · EventResolution.java Event resolution
Components 18
Game Runtime
- Game loop
src/game/Game.java - Input handler
src/utilities/InputHandler.java - Game timer
src/utilities/GameTimer.java
Actors and Effects
- Hero ship
src/actors/HeroShip.java - Invader ships
src/actors/InvaderShip.java - Hero projectiles
src/actors/HeroProjectile.java - Invader projectiles
src/actors/InvaderProjectile.java - Explosion effects
src/vfx/Explosion.java - Effect manager
src/vfx/VfxManager.java
Collision and Events
- Collision detection
src/collision/CollisionDetection.java - Event resolution
src/events/EventResolution.java - Game commands
src/events/commands
UI and Audio
- Score and time
src/ui/StatusRibbon.java - End screen
src/ui/GameOverScreenOverlay.java - Sound playback
src/utilities/SoundEffectPlayer.java - Sound tracks
src/resources/SoundEffectTracks.java - Audio assets
src/resources
Other components
- Player
Connections 31
- Player → Input handler: presses keys
- Input handler → Game loop: tracks keys
- Game loop → Hero ship: moves and fires
- Hero ship → Event resolution: queues shots
- Game loop → Game timer: reads elapsed time
- Game loop → Hero ship: updates
- Game loop → Invader ships: updates
- Game loop → Hero projectiles: updates
- Game loop → Invader projectiles: updates
- Game loop → Collision detection: checks collisions
- Collision detection → Event resolution: queues outcomes
- Game loop → Event resolution: resolves events
- Event resolution → Game commands: applies actions
- Game commands → Hero projectiles: creates or removes
- Game commands → Invader projectiles: creates or removes
- Game commands → Invader ships: moves or removes
- Game commands → Explosion effects: creates explosions
- Game commands → Sound playback: plays effects
- Game commands → Score and time: updates score
- Game commands → End screen: sets outcome
- Game loop → Effect manager: updates effects
- Effect manager → Explosion effects: removes finished
- Game loop → Score and time: renders
- Game loop → End screen: renders when ended
- Game loop → Hero ship: renders
- Game loop → Invader ships: renders
- Game loop → Hero projectiles: renders
- Game loop → Invader projectiles: renders
- Game loop → Explosion effects: renders
- Sound playback → Sound tracks: looks up track
- Sound tracks → Audio assets: maps to files