Disclosure: Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Best Courses Guides

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:

  1. 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.
  2. 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.
  3. 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:

  1. 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
  2. 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
  3. 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
  4. 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):

  1. 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.
  2. 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.
  3. 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.

Best Courses Guides. Start Learning, Stop Procrastinating.

Elham Nazif Profile Image

Elham Nazif

Part-time content writer, full-time computer science student.

Comments 0

Leave a reply

Your email address will not be published. All comments go through moderation, so your comment won't display immediately.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Browse our catalog

Discover thousands of free online courses from top universities around the world like MIT, Stanford, and Harvard.

Browse all subjects