We may earn an affiliate commission when you visit our partners.
Kyle Schaub

Whether you're a newcomer to the world of programming or an experienced developer seeking to expand your skillset, LÖVE (also known as Love2D) is a game engine that offers an incredible opportunity to dive into game development. Utilizing the user-friendly Lua scripting language, LÖVE empowers you to bring your game ideas to life.Join this project-based course and unleash your creativity as we explore the fundamental concepts of programming and their application in game development.No prior technical knowledge is required for this course, except for being capable of using the basic functionality of your computer and the ability to download and install programs. We'll guide you through each step, making it accessible to everyone.Together, we'll build three captivating games, gradually increasing the complexity with each project. Through this hands-on experience, you'll gain a solid foundation in programming video games. Equipped with a deep understanding of LÖVE's capabilities, you'll be ready to forge your own path and craft unique games that captivate audiences.Our journey begins by delving into Lua programming basics, covering essential topics such as variables, conditional statements, loops, functions, comments, and more. These principles are widely applicable across all programming languages, making this knowledge valuable beyond the scope of this course. For those already familiar with programming, we offer a convenient "syntax recap" section, specifically focusing on Lua syntax. You can quickly catch up on the language's specific nuances without revisiting every lecture.Once we've established the programming foundation, we'll dive headfirst into utilizing LÖVE. Together, we'll create our games, starting with a straightforward Shooting Gallery, progressing to an engaging top-down shooter, and finally moving to a physics-based platformer.Throughout the course, we'll explore an extensive array of game development concepts, which includes creating your main character, keyboard and mouse input, graphics rendering, enemy mechanics, collision detection, timers, randomness, RGB color schemes, physics simulation, animations, open-source software integration, Tiled map editor utilization, camera manipulation, sound effects, music implementation, score tracking, and data saving.By actively coding alongside the lectures, the knowledge you acquire will better stick with you. As we progress, your programming and development skills will strengthen, empowering you to bring your own game ideas to fruition. With the ability to seamlessly incorporate these features, you'll be fully equipped to create captivating games of your own design.Don't let your game ideas stay dormant—take the leap into game development with LÖVE and Lua programming. Join us on this exciting journey, and unleash your potential to shape unique gaming experiences.

Enroll now

What's inside

Syllabus

Get LÖVE installed on your computer, as well as the programming environment.
Course Overview
Installing LÖVE
Programming Environment
Read more
Project Structure
Projects On GitHub
Learn the core concepts of all programming languages, as well as Lua-specific features
Introduction to Lua
Variables
If Statements
Else and ElseIf
While Loops
For Loops
Functions
Comments
Local and Global Variables
Tables pt. 1
Tables pt. 2
Syntax Review

This will review some of the core fundamentals established in Section 2: Lua Programming

Create our first game with LÖVE: a simple Shooting Gallery game. By creating this game, we will have a broad understanding of how LÖVE works as a whole.
Shooting Gallery Overview
Load, Update, and Draw
Drawing Shapes
Colors and Overlapping Graphics
Target Table and Global Variables
Using the Mouse
Shooting the Target
Randomness
Timer
Sprites (Images)
Main Menu
Finishing Touches

This quiz will review the fundamental LÖVE concepts discussed during development of Game #1. You are free to use any resources to help with this quiz, including the code you wrote for this section.

Game #1 Coding Challenge
Create our second game with LÖVE: a top-down shooter where you have to survive a zombie invasion. This will cover the most useful game development features that LÖVE provides.
Top-Down Shooter Overview
World Setup
Player Movement
Delta Time
Sprite Rotation
Facing the Mouse
Enemies
Enemy Rotation
Enemy Movement
Basic Collisions
Shooting Projectiles
Scaling Sprites
Deleting Projectiles
Shooting Enemies
Enemy Spawn Position
Enemy Spawn Timer
Menu, Score, and Polish

This quiz will review the fundamental LÖVE concepts discussed during development of Game #2. You are free to use any resources to help with this quiz, including the code you wrote for this section.

Game #2 Coding Challenge
Create our third game with LÖVE: a platformer. After covering some advanced topics, you will know everything necessary to make games of your own!
Platformer Overview
Physics
Moving and Jumping
Collision Classes
Querying for Colliders
Animations
Player Graphics
Changing Between Animations
Player Direction (Flipping the Animation)
Jump Animation
Multiple Lua Files
Tiled
Import Tiled Map to LÖVE
Spawning Objects from Tiled
Camera
Platformer Enemies
Transitioning Between Levels
Saving Data
Music and Sounds

This quiz will review the fundamental LÖVE concepts discussed during development of Game #3. You are free to use any resources to help with this quiz, including the code you wrote for this section.

What's Next?
Web Game Development
LÖVE for Web Overview
Love.js Setup and Installation
Building and Running with Love.js
Hosting Your Game
Using the provided project, we will discuss the core fundamentals of creating a game for mobile, followed by the steps required to create an application for your game and running on an Android device.
Mobile Overview
Touching the Screen
Adapting to Screen Size
Installing Android Tools
Generating the APK
Installing on Your Android Device
Signing Your App
Publishing Your App
Miscellaneous lectures that discuss additional topics that weren't covered elsewhere in the course
Command Line and Git Basics

Save this course

Save Master Lua Programming and Create Amazing Games with LÖVE! to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Master Lua Programming and Create Amazing Games with LÖVE! with these activities:
Review Lua Syntax
Reinforce your understanding of Lua syntax before diving into game development with LÖVE. This will help you write cleaner and more efficient code.
Show steps
  • Review Lua documentation on variables, loops, and functions.
  • Write small code snippets to practice each syntax element.
  • Debug and fix any errors in your practice code.
LÖVE Quickstart Guide
Get a practical introduction to LÖVE with this quickstart guide. This book will help you get up and running quickly with the framework.
Show steps
  • Work through the examples provided in the book.
  • Adapt the examples to create your own simple games.
  • Use the book as a reference for common LÖVE tasks.
Programming in Lua, Fourth Edition
Deepen your understanding of Lua with a comprehensive guide. This book will serve as a valuable reference throughout the course and beyond.
Show steps
  • Read the chapters relevant to the course topics.
  • Experiment with the code examples provided in the book.
  • Use the book as a reference when encountering Lua-specific challenges.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Create a Simple Game Mockup
Solidify your understanding of LÖVE by creating a simple game mockup. This will help you apply the concepts learned in the course to a practical project.
Show steps
  • Design a simple game concept with basic mechanics.
  • Implement the core game loop using LÖVE.
  • Add basic player movement and object interaction.
  • Incorporate simple graphics and sound effects.
Document Your Game Development Process
Improve your understanding and retention by documenting your game development journey. This will help you reflect on your learning and identify areas for improvement.
Show steps
  • Create a blog or journal to record your progress.
  • Document the challenges you face and how you overcome them.
  • Share your insights and learnings with others.
Contribute to a LÖVE Open Source Project
Deepen your understanding of LÖVE by contributing to an open-source project. This will expose you to real-world game development practices and collaborative coding.
Show steps
  • Find a LÖVE open-source project on GitHub.
  • Identify a bug or feature you can contribute to.
  • Submit a pull request with your changes.
  • Respond to feedback and iterate on your contribution.
Create a Portfolio of LÖVE Games
Showcase your LÖVE skills by creating a portfolio of games. This will help you demonstrate your abilities to potential employers or collaborators.
Show steps
  • Develop several small games using LÖVE.
  • Document each game with screenshots and descriptions.
  • Create a website or online portfolio to showcase your games.
  • Share your portfolio with others and solicit feedback.

Career center

Learners who complete Master Lua Programming and Create Amazing Games with LÖVE! will develop knowledge and skills that may be useful to these careers:
Game Programmer
A game programmer writes the code that brings a video game to life, implementing game mechanics, artificial intelligence, and user interfaces. Game programmers work closely with designers and artists to translate their creative visions into functional game features. This course helps game programmers gain practical experience in programming game mechanics using LÖVE and Lua. The course covers a wide range of game development concepts, including collision detection, physics simulation, and animation. This may build a strong foundation for a future game programmer to succeed with Lua and LÖVE.
Game Developer
A game developer brings video game ideas to life through coding, design, and testing. Game developers work on various aspects of game creation, from programming game logic and mechanics to designing user interfaces and implementing graphics. This course focusing on the LÖVE game engine and Lua scripting language helps aspiring game developers gain practical experience in building games. By mastering the Lua programming basics and exploring game development concepts, like character creation, collision detection, and physics simulation, learners create captivating games. Working through the course's projects, from a shooting gallery to a platformer, helps build a portfolio applicable to the work of a game developer.
Gameplay Programmer
A gameplay programmer specializes in implementing the interactive elements of a video game that define how a player experiences the game world. This includes player controls, character movement, game rules, and enemy behaviors. This course provides practical experience in creating gameplay mechanics using the LÖVE game engine and Lua scripting language. Learners who aspire to be gameplay programmers will appreciate that the course covers essential concepts such as keyboard and mouse input, collision detection, physics simulation, and animation, all directly applicable to creating engaging gameplay experiences.
Mobile Game Developer
A mobile game developer specializes in creating games for mobile devices, like smartphones and tablets. Mobile game developers optimize games for touch screen controls, handle platform-specific requirements, and aim for engaging mobile experiences. This course specifically addresses mobile game development with LÖVE, covering topics like adapting to screen sizes, touch screen input, and generating application packages for Android devices. Specifically, the course helps mobile game developers gain knowledge of the tools to create games for mobile platforms. These are critical skills for anyone wishing to enter this specialization as a mobile game developer.
Indie Game Developer
An independent game developer works autonomously or within a small team to create and publish video games. This career path emphasizes creative control and ownership over the entire game development process. This course focusing on the LÖVE game engine and Lua scripting language allows indie game developers to explore the full spectrum of game development. They will start with fundamentals and then learn game development features. The course helps them create games that are ready to be offered to audiences. By mastering essential concepts, open-source software integration, and mobile considerations, the independent game developer gains the skills needed for a successful career.
Lua Programmer
A Lua programmer specializes in using the Lua scripting language to develop various applications, including video games, embedded systems, and web applications. Lua programmers write code, debug programs, and collaborate with other developers to create functional and efficient software. This Lua programming course helps them gain a solid understanding of the language's syntax, data structures, and programming paradigms. The course covers essential topics like variables, conditional statements, loops, and functions to build a foundation in Lua programming applicable to various development projects. It's advantageous for anyone aspiring to be a Lua programmer.
Game Instructor
A game instructor teaches game development concepts and techniques to students, hobbyists, or aspiring professionals. Game instructors may work in schools, online education platforms, or private training centers. This course builds a solid foundation in game development using LÖVE and Lua, providing the knowledge and skills necessary to teach others. By mastering the fundamentals of game programming and completing hands-on projects, one can become a game instructor, and effectively communicate game development concepts to students and empower them to create their own games.
Web Game Developer
A web game developer focuses on creating games that are playable within web browsers. This role involves using technologies like HTML5, JavaScript, and WebGL to deliver interactive gaming experiences accessible across different devices. This course may be useful to web game developers looking to expand their skills and explore alternative game development approaches. The course introduces LÖVE for Web, covering setup, building, and hosting games using Love.js. This may help web game developers to create browser-based games with the Lua scripting language.
Game Designer
A game designer conceptualizes and designs the gameplay, story, and rules of video games. Game designers create design documents, prototype game mechanics, and work with developers to ensure the game's vision is realized. This course may be useful for a game designer, particularly one interested in hands-on prototyping and understanding the technical constraints of game development. While the course is not focused on design theory, learning to implement game mechanics using LÖVE and Lua empowers the game designer to experiment with ideas and communicate effectively with programmers. Understanding the practical aspects of game development helps a game designer make informed decisions.
Software Developer
A software developer designs, develops, and tests software applications for computers and other devices. While this course is focused on game development, it may be useful to software developers looking to expand their skillset or explore game development as a hobby or career change. The course helps them gain experience in Lua scripting and the LÖVE game engine, offering a unique perspective on software development principles. Skills acquired in this course, such as problem-solving and logical thinking, are transferable to software development.
Simulation Developer
A simulation developer creates software that simulates real-world systems or processes for training, research, or entertainment purposes. While this course focuses on game development, the principles of simulation are applicable to game development. The course may be useful for gaining experience in creating interactive virtual environments using the LÖVE game engine. Concepts like physics simulation, collision detection, and user input are relevant to creating realistic and engaging simulations. The course is a great starting point for somebody who wishes to become a simulation developer.
Technical Artist
A technical artist bridges the gap between art and technology in game development, creating tools and workflows to optimize the art pipeline. Technical artists work with artists and programmers to ensure that art assets are efficiently integrated into the game engine. This course may be useful to technical artists seeking a deeper understanding of game engine technology and scripting. By learning Lua scripting and working with the LÖVE game engine, the technical artist gains insights into how art assets are used in game development and how to optimize them for performance. Understanding the whole game development process helps a technical artist create better and more efficient art.
Tools Programmer
A tools programmer develops software tools that assist game developers in creating and managing game assets, levels, and data. These tools streamline the development process and improve efficiency for artists, designers, and programmers. This course helps tools programmers understand the needs of game developers by providing hands-on experience with game development. While the course does not directly teach tools programming, familiarity with the LÖVE game engine and Lua scripting helps a tools programmer create more effective and user-friendly tools for game developers. This is why being a tools programmer can be a rewarding career.
Artificial Intelligence Programmer
An artificial intelligence programmer designs and implements the AI systems that control non-player characters and game environments. This course may be useful to understand the fundamentals of game programming, which are necessary before implementing AI. By creating real games, one can gain an intuitive understanding of the game loop and the kinds of data that are needed to make good AI decisions. Although this course does not go into depth on the creation of AI decision making, it can build a solid foundation to lead to such a career.
Quality Assurance Tester
A quality assurance tester identifies and reports software defects in video games. Quality assurance testers play games to detect and document bugs, glitches, and other issues that affect the player experience. While this course is not directly related to quality assurance, it may be useful to gain a deeper understanding of game development processes and mechanics. The course may help quality assurance testers communicate more effectively with developers and provide more insightful bug reports. This course may pave the way for a career as a quality assurance tester.

Featured in The Course Notes

This course is mentioned in our blog, The Course Notes. Read one article that features Master Lua Programming and Create Amazing Games with LÖVE!:

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Master Lua Programming and Create Amazing Games with LÖVE!.
Provides a practical introduction to game development with the LÖVE framework. It covers the core concepts and techniques needed to create simple games. It is particularly useful for beginners who want to get up and running quickly with LÖVE. This book adds more breadth to the existing course.
Is the definitive guide to the Lua programming language, written by the chief architect of Lua. It provides a comprehensive overview of the language, from basic syntax to advanced topics. While not strictly game development focused, it's an invaluable resource for understanding the underlying language used in LÖVE. It is useful as a reference tool.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser