One mechanic
Each prototype explores a single verb: move, dodge, collect, or bounce. Depth comes from constraints, not feature lists.
A beginner's tiny-game workshop
I am learning game-making by rebuilding tiny classics, one screen at a time. The tools can change — a browser, a game engine, a terminal — but the goal stays small: readable code and games you can finish in a coffee break.
What this is
This repository collects small, finishable game experiments. The goal is not to ship a commercial title. The goal is to practice the whole loop: choose one mechanic, build a rough prototype, play it, write down what broke, and try again.
Everything here is intentionally modest: the current demo opens as a single HTML file, the rules fit on one screen, and the code stays short enough to read in one sitting. Future prototypes may use a different language or engine, but the same size limit applies.
Each prototype explores a single verb: move, dodge, collect, or bounce. Depth comes from constraints, not feature lists.
Rebuilding a classic is an honest way to learn. The rules are known, so the lesson is in the implementation and the feel.
A prototype that ends is worth more than a masterpiece that never ships. One screen, one score, one more try.
Any stack
The goal is to finish a small game, not to defend a tool. Use Godot, Unity, Pygame, LÖVE, Raylib, plain web, or something else — if it helps you ship one screen, it belongs here.
The current Snake demo is vanilla web because it runs anywhere. The next prototype does not have to be.
Recreation 01
Arrow keys / WASD to steer. Space to pause. The canvas is the whole game.
A 20 × 20 grid, three starting segments, and no mercy at the walls.
Recreation log
A public list, including the failures. A game stays in the queue until it is playable, not until it is perfect.
| Game | Status | Lesson |
|---|---|---|
| Snake | Playable · v0.1 | Grid movement and input buffering are most of the feel. |
| Pong | Sketch | Ball physics is easy; fair paddles are not. |
| Breakout | Queued | A good level is a rhythm, not a wall. |
| Memory | Queued | Fewer cards can make a better game. |
Tiny design notes
Short notes from building small games. They are opinions, not laws.
If a player cannot move, understand the goal, and fail once within ten seconds, the prototype is too slow.
Buffering the next turn, forgiving a near miss, and showing why you died matter more than extra levels.
Every feature must earn its place on the one screen. If it needs a menu, it probably belongs in the next prototype.
A two-line note after playtesting is worth more than a week of guessing. The log is part of the game.
Shared resources
Images, audio, fonts, models, and references live in the top-level assets/ folder. Every file should have a source and a license.
The folder is engine-agnostic. Its README explains naming, formats, credits, and the GitHub Pages caveat.
About the maker
I am not a professional game designer. This repository is a way to learn in public: small commits, plain code, and notes that admit what I do not know yet.
If you are also starting out, fork it, break it, and make a smaller version. That is the whole point.
See the source on GitHub →