10 Best Lua Courses to Take in 2024: Fast and Lightweight
Want to make games with Roblox or LÖVE2D? Write configuration scripts for Neovim or Adobe Lightroom? Or embed Lua into IoT devices? Here are the best courses.
In this Best Courses Guide (BCG), I’ve compiled the best courses to learn Lua, a versatile and fast programming language used in game development, scripting, and embedded applications. All of the courses I’ve chosen use Lua 5.0 or above, so there’s nothing outdated in this article.
Click on the shortcuts for more details:
Here are my top picks. Click on one to skip to the course details:
What is Lua?
Lua is a lightweight, dynamically-typed, high-level programming language created in 1993 by Roberto Ierusalimschy, Luiz Henrique de Figueiredo, and Waldemar Celes at the Pontifical Catholic University (PUC) of Rio de Janeiro, Brazil.
Lua is an excellent first language for beginners. Not only is its language syntax simple and minimal, its language features are too: Lua only has 21 reserved words, compared to Python with 33, and C++ with 84.
For example, Lua only has one data structure called a table. That may seem limiting, but you can represent any abstract data structure in it: a linked list, an array, a hashmap, and so on. The table is all you need.
Lua can run anywhere C is available. This means Lua is highly portable and lightweight, which is why Lua is great for embedded systems and scripting languages. And with the LuaRocks package manager, you can expect to find any third-party libraries to suit your programming needs.
Why Learn Lua?
Lua has become popular in three different fields of programming:
- Gaming development: Lua is widely used in the gaming industry for scripting and game logic. Many popular games, such as Roblox, World of Warcraft, and Angry Birds, use Lua for their scripting needs. The LÖVE2D framework, which is built on Lua, allows developers to create 2D games easily (Move or Die being one of the most popular examples). Learning Lua can open up opportunities in game development and modding.
- Embedded systems: Lua’s simplicity and extensibility make it an ideal choice for embedding into other systems and applications. This allows developers to add scripting capabilities to their software without introducing significant complexity or overhead. Turbo is one such framework for embedded uses that delivers excellent performance at a minimal footprint.
- Scripting: Lua is often used as a scripting language in various applications, allowing users to automate tasks, extend functionality, or create custom behaviors. One of the most famous examples is the Neovim text editor, which uses Lua for its plugin and configuration system. VLC and mpv video players also rely on Lua for scripting plugins.
Course Overview
- Eight of the courses in this guide are free while the other two are paid
- Eight of the courses require no programming experience as a prerequisite, while two assume so
- You can get a free certificate of completion from the Harvard course
- All of the courses use the latest Lua 5.0 or newer — so don’t worry about learning anything outdated.
Best Free Course for Absolute Beginners (Steve’s teacher)
Is this your first time programming? Then the best place to learn Lua programming for free is Steve’s Teacher’s Full Lua Programming Crash Course.
In this course, Steve introduces you to the fundamentals of Lua, from the basics like variables to more advanced topics like Object-Oriented Programming. He’ll demonstrate how to apply what you’ve learned, and you’ll follow along by coding together. By the end, you’ll have a solid foundation to build more advanced Lua programs, games, or use Lua with other languages like C/C++.
To get started, install Visual Studio Code (a code editor) from their website and then familiarize yourself with the user interface by watching this short official tutorial.
Here’s what you’ll learn (don’t worry if you don’t recognize any of these terms):
- What Lua is and how it can be used for game development and other applications
- Basic data types like booleans, numbers, strings
- Flow control with conditional statements (if/else) and loops (for, while)
- Functions and how to define your own functions
- Tables (Lua’s main data structure) and how to use them: arrays, dictionaries etc
- Modules and how to organize your code into reusable modules
- Working with files including reading and writing
- Object-Oriented Programming and its relation to real-world objects
- Other advanced concepts such as co-routines and metamethods.
By the way, Steve’s teacher has been making programming tutorials for more than 5 years, from web dev to game dev, and Delphi to Nim. So, you can trust that his courses are well-made.
Provider | YouTube |
Instructor | Steve’s teacher |
Level | None |
Workload | 4 hours |
Views | 250K |
Likes | 5.3K |
Cost | Free |
Exercises | Code demos |
Certificate | None |
Best Free Roblox Game Dev Course for Absolute Beginners (AlvinBlox)
Are you learning programming because you want to make a fun Roblox game to share with friends and family? Actually, that was my first introduction to coding. I wish I had an easy-to-follow course like AlvinBlox’s 2020 Beginner Roblox Scripting Tutorials when I first started!
AlvinBlox has been creating Roblox gameplay and programming videos since 2016, and in this free YouTube playlist, he’ll teach you the essentials of Lua scripting and Roblox Studio in just 7 hours. You don’t need any prior knowledge of game development or programming.
Once you’re done with this course, check out my Roblox Game Development BCG for more detailed courses. Additionally, you can also go further with AlvinBlox’s Roblox tycoon tutorial.
Provider | YouTube |
Instructor | AlvinBlox |
Prerequisites | None |
Workload | 7 hours |
Views | 1.9M |
Likes | 45K |
Cost | None |
Exercises | Code demos |
Certificate | None |
Best Free LÖVE2D Course for Programmers (Harvard)
Learn LÖVE2D game development and Lua at the same time CS50’s Introduction to Game Development.
This free online course is on par with the on-campus syllabus of Harvard’s game dev course, so it’s very comprehensive and rigorous. You can even attend live lectures held annually if you have the time. I highly recommend any aspiring game developer to take this course; you’ll get a free certificate of completion.
The first 3/4th of the course focuses on Lua and LÖVE2D, while the last quarter focuses on Unity and C#. If you aren’t interested in Unity at all, you can just skip it. But if you are, check out my Unity BCG after this course.
You’ll learn hands-on by developing 12 games in total. You’ll submit these projects and receive feedback. Here’s what you’ll learn from each game:
- LÖVE2D:
- Pong: Lua basics, including drawing shapes and text, DeltaTime, and Basic OOP (Object-Oriented Programming)
- Flappy Bird: Adding sprites, state machines, and infinite procedural generation
- Breakout: Sprite sheets and game mechanics including levels, health and persistent game data
- Match 3: Tweening, procedural grids, and designing sprite art & color palettes
- Super Mario Bros.: Tile maps, 2D animation, platformer physics, and creating basic enemy AI
- Legend of Zelda: Broadcasting events, screen scrolling, and data-driven design with game data rather than game code.
- Angry Birds: Physics simulation with Box2D, and advanced mouse input (clicking and dragging)
- Pokémon: Turn-based systems, designing GUIs, and RPG Mechanics (leveling up, experience, damage calculations)
- Unity:
- Helicopter Game 3D: C# and Blender basics. Additionally, a tour of Unity components and prefabs.
- Dreadhalls: First-person perspective in a generated maze, and adding atmospheric effects with lighting and fog
- Portal: Raycasting, teleporting, and modeling geometry.
To take this course, you should have taken CS50x or have some programming experience.
Institution | Harvard University |
Provider | edX |
Instructors | David J. Malan and Colton Ogden |
Prerequisites | Programming experience |
Workload | 72–108 hours |
Enrollments | 540K |
Cost | Free |
Exercises | Autograded coding projects & code demos |
Certificate | Free (unverified) or Paid (verified) |
Best Paid Book for Programmers (Roberto Ierusalimschy)
If you prefer reading, the best book on Lua by all standards of measurements is Programming in Lua (4th ed), written by none other than the creator of Lua himself, Roberto Ierusalimschy.
Its target audience is programmers, including Lua scripters, but it’s also extremely valuable for those working with embedded systems, as the last section of it is dedicated entirely to Lua’s integration with the C API.
The book is structured into four major parts:
- The Basics: As the title suggests, basic language features (variables, types, control structures, etc.). Example programs given include an eight-queen problem solver, a file sorter, a state machine, and a maze game
- Real Programming: covers more advanced topics that you can expect to find in other similar languages, such as closures, pattern matching, date and time manipulation, data structures, modules, and error handling
- Lua-isms: Unique aspects of Lua you are unlikely to find elsewhere —metatables and their uses, environments, weak tables, coroutines, and reflection. Also includes even more advanced topics like OOP. You’ll explore their usefulness in examples such as a Markov Chain Algorithm and Multithreading with Coroutines
- The C API: Covers the API between Lua and C, with a focus on C programming rather than Lua programming. Topics include XML parser, managing threads, states, and processes.
There is a free version of this book online written for Lua 5.0. Everything you’ll learn there will still apply to the current version of Lua; there’s not a lot of major differences between minor versions. However, the latest edition is still better: up-to-date (has go-to statements), written, organized, and also has exercises (with solutions) which the first edition lacks.
Provider | Lua.Org |
Author | Roberto Ierusalimschy |
Prerequisites | Basic programming experience |
Workload | N/A |
Rating (Amazon) | 4.6/5.0 (354) |
Cost | Paid (Lua 5.4) / Free (Lua 5.0) |
Exercises | Exercises |
Certificate | None |
Best Free Interactive Course for Absolute Beginners (Codecademy)
Want an interactive in-the-browser learning experience? Codecademy’s free limited-access Learn Lua course is great for the curious learner with no programming experience.
This course will get you acquainted with the bare minimum of programming knowledge needed to have fun with Lua. You don’t need to install anything on your PC; everything is done online. You’ll learn by reading informative text articles and completing exercises by building terminal-based programs, giving you valuable hands-on experience.
By the end of this course, you’ll know how to:
- Write and run your first line of code in Codecademy’s built-in code editor
- Add comments to your code
- Print messages to the terminal
- Identify and use the various data types, including their associated operators
- Store data using variables
- Make decisions using conditional statements
- Organize and reuse parts of your code using functions.
Note that the free access of this course is limited. You’ll need to subscribe to Codecademy Pro to be able to access the coding quizzes and projects.
Provider | Codecademy |
Instructor | Kenny Lin |
Prerequisites | None |
Workload | 4 hours |
Enrollments | 45K |
Rating | 4.4 / 5.0 (1.8K) |
Cost | Free (limited) / Paid (full-access) |
Exercises | Interactive auto-feedback exercises |
Certificate | Paid |
Best Free Crash Course for Neovim Users (John McBride)
Are you a Neovim user like me?
Here’s a great Lua course to help you get started on the endless journey of Neovim configuration: John McBride’s Lua, a Primer talk hosted during NeovimConf 2022.
In this free YouTube course, you’ll get up to speed with the language syntax and features of Lua needed to comfortably play around with your code editor. McBride also goes through a couple important Neovim Lua APIs, as well as Lua’s integration with existing Vimscript functions/commands.
Channel | John McBride |
Provider | YouTube |
Instructor | John McBride |
Prerequisites | Programming experience |
Workload | 30 mins |
Views | 11K |
Likes | 328 |
Cost | Free |
Exercises | Code demo |
Certificate | None |
Best Free Crash Course for Programmers (PohkaDev)
Consider yourself proficient at programming? This 15-minutes-long Lua Crash Course will give you the Lua basics in a jiffy through hands-on code demonstrations.
Here’s a summary of what you’ll learn:
- Basic data types include numbers, strings, booleans, and nil (no value). Variables are dynamically typed
- Strings are concatenated with .. rather than +. Comments use — rather than //
- Conditionals use if, elseif, else with then and end rather than curly braces
- Functions are defined with function, parameters, and end. They can return multiple values
- Variables are locally scoped unless declared as global with _
- Loops include while, for, and infinite loops. For loops start at 1 rather than 0
- Tables are the main data structure, analogous to arrays/objects. They are indexed with [] and can be multidimensional
- Keyed tables are like JSON objects, with keys and values. They are better than multidimensional tables when values differ in type.
Want a practical application of Lua? PohkaDev uses Lua to create custom games in Dota 2 and has created tutorials for people to follow along.
Provider | YouTube |
Instructor | PohkaDev |
Prerequisites | Programming experience |
Workload | 15 minutes |
Views | 78K |
Likes | 2.6K |
Cost | Free |
Exercises | Code demo |
Certificate | None |
Best Free LÖVE2D Course for Lua Beginners (freeCodeCamp)
Want to learn programming by making games?
Steve’s teacher appears once again to help you achieve your game dev goals. In the free Game Development with LÖVE 2D and Lua course, you’ll learn the fundamentals of Lua by making two games: a game called Save the Ball and an asteroid clone.
You’ll implement the following features to your games, including:
- Platformer mechanics where you control a character that can jump and move left/right across platforms
- Adding enemy characters that move and interact with the player character
- Implementing a scoring system to track points and a “high score” that can be replayed
- Increasing the difficulty of the game by making enemies move faster or behave differently over time or level
- Creating more variety in the enemy characters, such as changing their shapes or appearance
Note, the first two hours of this course are the same as Steve’s teacher’s course on Lua, meaning you refer to the syllabus in the first course of this BCG.
Institution | freeCodeCamp |
Provider | YouTube |
Instructor | Steve’s teacher |
Prerequisites | None |
Workload | 11 hours |
Views | 72K |
Likes | 2.2K |
Cost | Free |
Exercises | Code demos |
Certificate | None |
Best Paid Comprehensive LÖVE2D Course for Beginners (Kyle Schaub)
This paid Udemy course is the most comprehensive course on Lua game development with LÖVE. Not only does it teach you how to program for PC, but it also teaches web development (with Love.js) and mobile game development (specifically for Android).
By the end of Lua Programming and Game Development with LÖVE, you’ll have the knowledge and skills necessary to be able to develop games in Lua with LÖVE2D.
No knowledge of programming whatsoever is required to take this course, but if you already have some background in programming, there’s a syntax recap to quickly get you up to speed with the language.
Apart from the Lua and LÖVE2D basics, you’ll also build three games (click me for their source code):
- Button Clicker: Whack-A-Mole style game where you must click the button on screen (which changes position on each click) as quickly as possible in the given amount of time. Handles basic drawing of shapes, coloring, mouse input, real-world timing, keeping score, and simple gamestate for the menu.
- Zombie Shooter: Top-down shooter where you must survive a horde of zombies by shooting them with the mouse. Difficulty increases as time passes. Utilizes sprite drawing, keyboard input, classes (in the form of tables), sprite-rotation, path finding, dynamic generation of objects, and basic collisions.
- Coin Collector: Platformer where you must collect all coins in the level as quickly as possible. Uses the Love2D physics engine (based on Box2D), animations, importing levels from Tiled, and saving/loading high scores to a local file.
Provider | Udemy |
Instructor | Kyle Schaub |
Prerequisites | None |
Workload | 8 hours |
Enrollments | 8K |
Rating | 4.7 / 5.0 (2.2K) |
Cost | Paid |
Exercises | Code demos |
Certificate | Paid |
Best Free Coding Exercise Platform for All (Exercism)
Lua is a very easy language to play around with, similar to Python. So let’s have fun with Lua while practicing at the same time with Exercism’s coding exercises!
Currently, there’s one hundred autograded programming exercises on Exercism’s platform of all difficult levels: easy, medium, and hard. You can solve them either through their online in-browser code editor or on your machine. After completing them, you can compare your solution with a pool of community-submitted solutions.
But what if you need more help? Enter Exercism’s mentoring program. You can get an experienced Lua programmer to look over your submitted solutions and give feedback on where to improve — isn’t that amazing?
Exercism’s goal is to help everyone get really good at programming, regardless of their background. They offer exercises on 60+ programming languages like Python, Kotlin, F#, and WebAssembly. Check them out.
Provider | Exercism |
Prerequisites | None |
Workload | N/A |
Mentors | 146 |
Enrollments | 6.6K |
Cost | Free |
Exercises | Autograded coding exercises |
Certificate | None |
Why You Should Trust Us
Class Central, a Tripadvisor for online education, has helped 60 million learners find their next course. We’ve been combing through online education for more than a decade to aggregate a catalog of 200,000 online courses and 200,000 reviews written by our users. And we’re online learners ourselves: combined, the Class Central team has completed over 400 online courses, including online degrees.
Best Courses Guides Methodology
I built this ranking following the now tried-and-tested methodology used in previous Best Courses Guides (you can find them all here). It involves a three-step process:
- Research: I started by leveraging Class Central’s database and the internet. Then, I made a preliminary selection of Lua courses by rating, reviews, and bookmarks.
- Evaluate: I read through reviews on Class Central, Reddit, and course providers to understand what other learners thought about each course and combined it with my own experience as a learner.
- Select: Well-made courses were picked if they presented valuable and engaging content. They have to fit in a set of criteria including comprehensive curriculum, affordability, release date, ratings and enrollments.