Beauttah K.
Brainfuck Ping‑Pong is a modular, build‑driven Pong‑style game written in Brainfuck, treated as a target language rather than a lifestyle choice.
This project proves that even one of the most minimal languages ever created can support:
- game loops
- physics
- rendering
- tooling
- sane project structure
All without losing your mind (much).
| Folder | Purpose |
|---|---|
src/ |
Brainfuck source split by responsibility |
src/logic/ |
Ball, paddle, AI, scoring logic |
src/render/ |
ASCII rendering & screen control |
levels/ |
Encoded configuration & modes |
tools/ |
Merge, minify, visualize (Python) |
build/ |
Generated Brainfuck output |
docs/ |
Design & memory layout |
tests/ |
Isolated Brainfuck logic tests |
Turn‑based Pong rendered in ASCII.
- Single‑character input per frame
- Deterministic updates
- No real‑time dependency
- Works in standard Brainfuck interpreters
| Key | Action |
|---|---|
w / s |
Left paddle up / down |
o / l |
Right paddle up / down |
| other | no‑op |
| Cell | Meaning |
|---|---|
| 0 | ball_x |
| 1 | ball_y |
| 2 | ball_dx (0=left, 1=right) |
| 3 | ball_dy (0=up, 1=down) |
| 4 | left_paddle_y |
| 5 | right_paddle_y |
| 6 | input |
| 7 | temp |
|
|
flowchart LR
A[src/main.bf] --> B[merge.py]
B --> C[build/game.bf]
C --> D[minify.py]
D --> E[build/game.min.bf]
C --> F[visualize.py]
python tools/merge.py
python tools/minify.py
python tools/visualize.pyEach subsystem can be validated independently using small Brainfuck programs:
- Ball movement
- Paddle bounds
- Input decoding
This keeps complexity localized, which is critical in Brainfuck.
- Brainfuck is treated as assembly, not a joke
- Tooling > heroics
- Readability first, minification later
- Everything is replaceable
If it can’t be merged, visualized, or tested — it doesn’t belong here.
This project is actively evolving.
Upcoming milestones:
- collision detection
- full board renderer
- AI paddle
- instruction‑count optimization
Because:
- constraints sharpen ideas
- absurdity reveals structure
- and nobody said you shouldn’t make games in Brainfuck
Public domain / do whatever / blame entropy.
Have fun breaking the tape.