Python One-Hour Crash Course: Syntax, Lists and Files
by Sofia Navarro
The two Lua features people fake for years, explained properly in under an hour.
VC Created by Victor Chen
Every bullet below is something you will have built, shipped or be able to explain by the time you finish the last lesson.
4 modules · 7 lessons · 52m of material
2 lessons running 16m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.
Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.
2 lessons running 14m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.
Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.
2 lessons running 16m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.
Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.
1 lesson running 6m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.
Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.
4 modules · 7 lessons
52m total length
Short list, and deliberately so. If you meet these you can start today.
Two features carry most of Lua expressive power, and both are usually worked around rather than learned. Metatables get replaced by copied class boilerplate nobody understands, and coroutines get replaced by timers and state flags. This short course fixes both in a single sitting.
The metatable half walks every metamethod worth knowing: index and newindex for property access and defaults, the arithmetic and comparison metamethods, call for callable tables, tostring for debugging, and the garbage-collection metamethod. You will implement inheritance, read-only tables, memoising tables and a proxy that logs writes, each in a few lines.
The coroutine half covers create, resume, yield, status and wrap, then shows the three shapes that appear in real code: a generator producing values lazily, a cooperative scheduler running many tasks in one loop, and a sequenced animation or cutscene that reads top to bottom instead of as a state machine. A printable cheat sheet lists every metamethod and coroutine function with a one-line example.
Still unsure about something? Write to misteryjj100@gmail.com and a human answers, usually the same working day.
Reviews are written by people who bought this course. We publish the critical ones too.
4.0
Rated 4.0 out of 5Course rating · 3 reviews
Jonas Meier
Game developer
Three years of Lua and I had faked metatables the whole time by copying an OOP snippet forward from project to project. Walking through exactly what happens on a missed table lookup, one step at a time, fixed that permanently.
Amara Nwosu
Freelance game dev
Building a small cooperative scheduler out of nothing but resume and yield is an excellent piece of teaching and I have already reused the shape of it. The inheritance material moves faster and skips rawget, which you meet the moment you write a real class.
Bogdan Ilie
Roblox developer
Two of the metamethod demonstrations do not behave the same way on the Luau runtime I work in every day, and at no point does the course state a version. I worked it out from context in the end. If you are arriving from Roblox, expect to verify everything against your own runtime before you trust it.
Lua developer and game-scripting instructor
Victor has spent most of his career on the scripting side of games, from Roblox experiences with a live player base to small LÖVE 2D releases he built entirely himself. He teaches Lua as an embedded language first — tables, metatables, coroutines and the C boundary — because that is what makes an engine's API stop feeling arbitrary. Every course ends with something playable and, more usefully, something you can keep changing without it falling over. He runs a scripting help channel that has outgrown him twice.
One-time payment · lifetime access