A beginner's tiny-game workshop

Small games.
Wild ideas.

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.

Any language · Any engine · Beginner-friendly

What this is

A public notebook for lightweight game design

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.

01

One mechanic

Each prototype explores a single verb: move, dodge, collect, or bounce. Depth comes from constraints, not feature lists.

02

Recreate first

Rebuilding a classic is an honest way to learn. The rules are known, so the lesson is in the implementation and the feel.

03

Finish small

A prototype that ends is worth more than a masterpiece that never ships. One screen, one score, one more try.

Any stack

Any language. Any engine.

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.

Plain web Godot Unity Pygame LÖVE Raylib Unreal Terminal

Recreation 01

Snake, but tiny

Arrow keys / WASD to steer. Space to pause. The canvas is the whole game.

Your browser does not support the canvas element.
SNAKE Press Start or an arrow key.

A 20 × 20 grid, three starting segments, and no mercy at the walls.

Recreation log

What I have rebuilt so far

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

Rules I keep relearning

Short notes from building small games. They are opinions, not laws.

01

The first 10 seconds

If a player cannot move, understand the goal, and fail once within ten seconds, the prototype is too slow.

02

Input is design

Buffering the next turn, forgiving a near miss, and showing why you died matter more than extra levels.

03

Scope is a mechanic

Every feature must earn its place on the one screen. If it needs a menu, it probably belongs in the next prototype.

04

Write down the failure

A two-line note after playtesting is worth more than a week of guessing. The log is part of the game.

Shared resources

A home for assets

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

A beginner, in public

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 →