A lightweight, MK-inspired 2D fighting game prototype built in Python + Pygame.
- Single-player (vs CPU) and local 2-player (“Double”)
- Character select + stage select
- Keyboard and gamepad support (auto-detected)
- Per-frame hit/hurt/push box editor (dev tool) saved to JSON
- Music + SFX (fails gracefully if audio isn’t available)
- Python 3.10+
pygame(Pygame Community Edition or classic pygame both work as long asimport pygamesucceeds)
cd MKUltra
python -m venv .venv
source .venv/bin/activate # Windows: .venv\\Scripts\\activate
pip install pygame
python MKUltra.py- Up/Down:
W/Sor↑/↓ - Select:
Enter - Back/Quit:
Esc
Player 1
- Move:
A/D - Jump:
W - Crouch:
S - Block:
F - Attacks:
E,R,T,Y
Player 2
- Move:
←/→ - Jump:
↑ - Crouch:
↓ - Block:
Right Ctrl - Attacks:
Numpad 1/2/3/4
Global
- Pause:
Esc(orP) - Skip intro:
Space
- D-pad / left stick: move + jump/crouch
- A/B/X/Y (Cross/Circle/Square/Triangle): attacks
- RB / R1: block
Controllers are assigned automatically:
- 1 controller → Player 1
- 2 controllers + “Double” → Player 2 gets controller #2
MKUltra.py— game + menus (single-file prototype)menu/— title/selection screenssprites/— character sprite packs (currently: Nate, Scorpion, Connor, Blake)stages/— stage backgroundssounds/— music + SFX (announcer, hits, damage, etc.)hitboxes_nate.json— per-frame hit/hurt/push boxes (generated/edited in-game)
During a fight press:
F2to toggle the editor1/2/3to switch push / hurt / hit box modeTabto switch editing P1 / P2- Drag to draw, drag boxes to move,
Delto delete Ctrl+Sto save (hitboxes_nate.json)
Thank you New Sprites to Come Soon