Fundamentals of 2D Game Engines with C++ SDL and Lua (Udemy.com)

Learn game development fundamentals with a simple 2D game engine and create one from scratch using C++ SDL and Lua

Created by: Gustavo Pezzi

Produced in 2021

icon
What you will learn

  • C++
  • Object-oriented programming
  • Game engine architecture
  • SDL library
  • Embedding Lua scripts inside C++ applications
  • 2D game development
  • Game Development Fundamentals

icon
Quality Score

Content Quality
/
Video Quality
/
Qualified Instructor
/
Course Pace
/
Course Depth & Coverage
/

Overall Score : 94 / 100

icon
Course Description

you want to be more than "yet another applicant that only knows Unity3D or Unreal"?
Or, do you want to really improve your programming skills with C++, OOP, and on top of that learn the fundamentals of how a simple 2D game engine works?
If that's the case... this course is for you!
We are going to implement, together, the basic architecture of a simple 2D game engine using C++, SDL, and Lua scripting.
Here is what we will cover:
The basics of a game loop and fixing our time stepUsing the SDL library to handle graphics and hardware input/outputLoading dynamic entities to your game scene (enemies, vegetation, obstacles, etc.)Creating a flexible tile-based game mapAdding components to your game objects:
SpritesAnimationTransform (position, rotation, scale)CollidersText labelsProjectile emittersManaging game assets, such as textures, sounds, and fontsDisplaying UI text and HUD elements.
Using Lua language for scripting and configuring levels...
and so much more.
This course targets beginner programmers, but it is expected that you know the basics of the Linux command-line (creating directories, copying files, etc). Also, a very basic knowledge of programming concepts (variables, loops, conditionals, functions, OOP) will help you get the most out of this course.
I will not use modern C++ for this course (C++17, smart pointers, exceptions, etc), as I believe using these will cause more harm than good for beginners. They are important concepts, but they will not be covered in this course. I will use what most developers call C++-- (which is C-style with some hand-picked useful C++ concepts).
You will be able to use the code developed in this course in Linux, macOS, and Windows. But, be aware that the instructor does not use any IDE in this course, and we will build our project using the GCC compiler directly via the Linux command line.
Join us, and learn the fundamentals of game architecture by creating a basic 2D game engine... from scratch!
Who this course is for:
Programmers curious about the fundamentals of game development

icon
Instructor Details

Gustavo Pezzi

I teach computer science and mathematics at BPP University, London. My main research area is to investigate how teaching game programming can help enhance awareness and understanding of mathematics and physics.
I am also a professional software engineer with more than 10 years of experience, with an industry background in 3D systems, games and physics engines, web systems, databases, and data analysis.
My academic journey includes institutions such as Pittsburg State University, City University of London, and University of Oxford.

icon
More courses by Gustavo Pezzi

Learn Assembly Language by Making Games for the Atari 2600

$11.99

Lua Scripting: Master complete Lua Programming from scratch

$11.99

icon
More c++ courses

Learn C++ for Game Development

$11.99

Learn C++ Programming -Beginner to Advance- Deep Dive in C++

$11.99

C++ programming step-by-step: From Beginner to Advanced

$11.99

Qt Quick and QML - Intermediate : Interfacing to C++

$11.99

Learn the Vulkan API with C++

$11.99

C++ - A 3-Step Process to Master C++ in 7 days for Beginners

$11.99

icon
Reviews

4.7

142 total reviews

5 star 4 star 3 star 2 star 1 star
% Complete
% Complete
% Complete
% Complete
% Complete

By Lee Wilson on 12/13/2020

When I bought the course, I did not know he was going to basically say Don't do this course if you're on Windows. Which I am. I know he gave the option, but also said, you'll be able to follow along better if you use linux/virtual Ubuntu. I'm hoping that he explains it for the windows users as he goes along, so we'll see.

By Kirk Novitsky on 12/13/2020

Very happy with the course. If you're looking for something more "from the ground up" this will be a nice place to look.

By Eric dunsky on 12/13/2020

I never really knew how to start getting into SDL properly, but this course is really good at explaining how and what to do!

By Lance Brown on 11/19/2020

Great Teacher I love this teacher and his knowledge so much.
I give him a 10 out of 10.
Teaches you how to build a game engine.

By Jon Morss on 11/11/2020

This was an awesome course and perhaps my favorite thus far on Udemy. Gustavo does a great job explaining each topic and provides valuable detail on how to implement SDL and Lua to create a 2D game. The info learned in this course will bound to be valuable in future Game Dev ventures. Thanks!

By Kris Kath on 11/7/2020

Really enjoying the information so far and explanations are very clear and precise.

By Jason Hoffman on 11/5/2020

This is class is truly a gem. I wish I had this class in high school.
One of the things I enjoyed about this class is you get to put the project together yourself using a simple makefile. While there is nothing wrong with an IDE, I enjoy unerstanding what is going on under the hood. Again, major points for using a simple makefile.

By Goksan Isil on 11/2/2020

In terms of it's ground-up and simplistic approach, the course is amazing. The lecturer is incredibly positive and clear. I also really liked the fact that it was built with Entity-Component topology.
It would be great to have a continuation course where Entity-Component-System is applied, as well as more advanced graphics topics like shaders, ray casting, etc.

By Brayden Rayner on 11/1/2020

So far, yes.

By Miguel Recinos on 10/24/2020

Good teaching style explains everything it's good for newcomers, while a bit boring for non begginers but still really useful for learning purposes.

By Emanuil Nikolaev Iliev on 10/10/2020

Amazing!!! The only downside is the microphone, which sometimes makes it hard to understand.

By Patrick Divine on 10/6/2020

Gustavo has done it again. An excellent teacher teaching an excellent course.