Skip to content

Debagnik/Arcade-Asteroid-Game

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Asteroids Arcade Game

A modern, physics-based recreation of the classic arcade hit "Asteroids," built using the Processing (Java) environment. This project features authentic arcade mechanics, advanced collision physics, and challenging UFO enemies.

Features

  • Realistic Physics: Implements conservation of momentum for asteroid-to-asteroid elastic collisions, friction mechanics, and Arcade-style screen wrapping.
  • Game Modes: Three distinct ways to play:
    • Classic: Start with 5 lives and progress through increasingly difficult waves.
    • Endless: Ultra-hardcore mode with only 1 life. Surviving is the only goal.
    • Time Bound: A 5-minute challenge with infinite lives. Score as high as possible before the clock runs out (Starts at Level 5).
  • Challenging UFOs: Two types of UFOs that track the player and fire lasers:
    • Big UFO: Slower, easier to hit, spawns at Level 5.
    • Small UFO: Fast, agile, hard to hit, deadlier aim, spawns at Level 10.
  • Dynamic Leveling System: Infinite gameplay where asteroid counts increase as you clear waves.
  • Scoring & Penalties:
    • Earn points for destroying Asteroids (Small > Medium > Big).
    • High-value rewards for destroying UFOs.
    • Score Penalties for taking damage from collisions or enemy fire.
  • Visual Effects: Custom particle-based explosion system for asteroids, ships, and UFOs.
  • Logging System: Built-in logging for debugging and performance monitoring in ./Logs.
  • Invincibility Frames: Temporary protection after respawning to ensure fair gameplay.

Controls

Take command of your spacecraft with these simple keyboard controls:

Key Action
Up Arrow Thrust Forward
Left Arrow Rotate Counter-Clockwise
Right Arrow Rotate Clockwise
Spacebar Fire Lasers

Asset Setup

IMPORTANT: This is an open-source project, but it requires specific licensed assets that are not included in this repository due to licensing restrictions. You must set them up manually before running the game.

Directory Structure

Ensure your project directories are set up as follows:

Asteroids/
│   └── assets/
│       ├── fonts/
│       │   └── Orbitron.ttf     <-- Required Font
│       └── data/
│           └── credits/
│               └── credits.txt  <-- Required Credits File

Obtaining Assets

1. Orbitron Font

  • Source: Google Fonts - Orbitron
  • Instructions:
    1. Download the font family.
    2. Extract the .ttf file.
    3. Rename it to Orbitron.ttf.
    4. Place it in data/assets/fonts/.

2. Credits File

  • Source: Custom file.
  • Instructions:
    1. Create a text file named credits.txt.
    2. Add credits content (one entry per line).
    3. Place it in data/assets/data/credits/.

Troubleshooting

  • "Font not found": Check that the file is named exactly Orbitron.ttf and is in data/assets/fonts/.
  • "Credits File Missing": Ensure credits.txt exists in data/assets/data/credits/.
  • Game Crashes on Start: Verify both files are present and readable.

Quick-Start Checklist

  • Clone the repository
  • Create directory data/assets/fonts/
  • Download and place Orbitron.ttf
  • Create directory data/assets/data/credits/
  • Create and place credits.txt
  • Open Asteroids.pde in Processing
  • Run the game

Installation and Usage

To run this game, you need the Processing Environment.

  1. Clone or Download this repository.
git clone git@github.com:Debagnik/Arcade-Asteroid-Game.git ./Asteroids
  1. Open Processing.
  2. Open the Asteroids.pde file from the project directory.
  3. Click the Run button (Play icon) in the Processing IDE.

Project Structure

  • Asteroids.pde: Main entry point, setup, and game loop orchestration.
  • Asteroids_Constants.pde: Global game settings, balancing constants, and enums.
  • Title_Screen.pde: Manages the main menu, game mode selection, and credits.
  • Player_SpaceCraft.pde: Player ship entity and physics.
  • Player_Controller.pde: Handles player input, ship movement logic, and respawn mechanics.
  • Asteroid_Object.pde: Asteroid entity behavior.
  • Collision_Mechanics.pde: Centralized collision detection logic (Player, Asteroids, Lasers, UFOs).
  • Asteroids_PhysicsHelper.pde: Core physics math (wrapping, distance checks).
  • UFO_Controller.pde / UFO_Object.pde: Enemy AI logic and spawning.
  • Explosion_Controller.pde / DebrisAnimation.pde: Visual effects, particles, and explosion animations.
  • Lasers.pde / Weapons_Controller.pde: Weapon systems and projectile management.
  • Loggers.pde: Debugging and game state logging utilities.
  • Game_Manager.pde: Central Game State manager (Levels, Scoring, Lives, Game Over Logic).

License

This project is licensed under the WTFPL (Do What The Fuck You Want To Public License). See the LICENSE.md file for more details.


Author: Rak Kingabed debagnik@debagnik.in Copyright (c) 2026

Packages

 
 
 

Contributors