Skip to content

iz8nzax05/dot-game

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dot Game

A 2-player competitive arcade game that accidentally became a full game engine. Built entirely from scratch in 2 weeks — somewhere along the way the engine became more interesting than the game itself.


The game

Two dots (red vs green). Shoot each other. First to 10 hits wins.

  • Red player: WASD to move, G to shoot, Q/E to rotate direction while stationary
  • Green player: Arrow keys to move, 0 (numpad) to shoot, ./ to rotate direction
  • Fullscreen, scales to any resolution
  • Dots render with a glow effect — colored outer ring + bright center
  • F3 toggles debug overlay (live positions, velocities, distances, projectile count)

The engine underneath

What started as a simple game turned into a proper engine architecture:

src/
├── core/
│   └── game.py              # Main loop, world-to-screen coordinate system, scaling
├── managers/
│   ├── input_manager.py     # Dual-player keyboard input handling
│   ├── collision_manager.py # Hit detection + scoring logic
│   ├── render_manager.py    # Grid, dots, projectiles, UI, glow effects
│   └── audio_manager.py     # Sound loading + cooldown anti-spam system
├── entities/
│   ├── dot.py               # Player — velocity, acceleration, friction, energy-loss bounce
│   └── projectile.py        # Projectile — lifetime management, wall bouncing
└── settings.py              # All balance constants centralized

~9,900 lines total across 27 Python files.

Key features

  • World-to-screen coordinate system — play area scales seamlessly to any screen resolution with automatic centering
  • Physics — velocity, acceleration, friction, bounce with energy loss, max speed limits
  • Audio cooldown system — prevents sound spam when multiple events happen simultaneously
  • 1,401-line animated start menu — starfield background, smooth button animations, hover states, hidden dev access

The dev_demo folder

8 experimental features built during development that never made it into the final game. Each explores a different mechanic idea:

File What it explores
demo-Magic.py Magic spell system
demo-wall_fusion_algorithm.py Dynamic wall merging algorithm
demo-wall_fusion_blocky.py Blocky variant of wall fusion
demo-landmine.py Landmine placement mechanic
demo-landmine_SystemV3.py Landmine system v3 with improved AI
demo-training_ground.py Practice / training mode
demo-perspective_toggle.py Perspective switching system
demo-shake.py Screen shake system

These show how the engine grew — each demo is a self-contained playable experiment.


Running it

pip install pygame
python Start.py

Dev mode

Hidden access: click the top-left corner of the screen 7 times in the menu, then enter password 1211. Left in as-is since the source is open.

About

2-player arcade game that accidentally became a full game engine. 10,000+ lines, plugin managers, physics, animated menus.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages