Everything here is free. My rule: learn the tool when the game demands it, not before.
Code & version control
| Tool | Why | Start when… |
|---|---|---|
| Sublime Text + the Love2D package (via Package Control) | What I learned on and recommend — instant, lightweight, stays out of your way | Right now |
| Git + GitHub | Undo button for your whole project + free backup | Before your second game |
| Neovim | Fast once you live in terminal (what I use) | You’re curious, not before |
Learn 3 git commands and you’re set: add, commit, push. Your template is already a repo.
Art
| Tool | Why |
|---|---|
| Aseprite (paid) or Libresprite (free) | Pixel art + animation |
| Tiled | Tilemaps — draw levels instead of hardcoding them |
| Krita / GIMP | Larger illustrations, textures |
Audio
| Tool | Why |
|---|---|
| Audacity | Record + trim effects |
| bfxr | Generate retro blips in seconds |
| OpenGameArt | Free music/sfx (check license per asset) |
Lua libraries (only these to start)
| Library | Use for | Note |
|---|---|---|
| class.lua | Tiny OOP, from Matthias Richter’s collection | Read it once, 98 lines, already in the template |
| push.lua | Resolution scaling, from Ulysse Ramage | See Scaling recipe |
| knife | Timers, tweens, state machines, events — pick single micro-modules | Graduate here after Pong, each module stands alone |
| bitser | Saving nested tables (inventories, unlock maps) | When string.format can’t hold your save — see Save & Load |
| jumper | Pathfinding | Grid-based enemies |
WARNING
Library trap: installing 6 libraries before writing gameplay. Finish Pong with zero libraries first — you’ll know exactly which one you need next.
Curated link shelf
- Love2D wiki — the reference, bookmark it
- Lua manual 5.4 + Learn X in Y
- CS50’s Intro to Game Development — free, uses Lua/Love2D, perfect next course after this hub