inflearn logo

Game Engine Framework with C++ (Learning Engine Architecture through Sokoban and Shooting Games)

If you want to understand game engines, building one yourself is the fastest way. This is a project-based course where you will implement the core structure of a console game engine using C++ and complete projects including Sokoban and a flight shooting game. It provides a perspective that allows for a deep understanding of the structures of the Unreal and Unity engines.

(5.0) 12 reviews

43 learners

Level Intermediate

Course period Unlimited

C++
C++
oop
oop
Architecture
Architecture
dlls
dlls
C++
C++
oop
oop
Architecture
Architecture
dlls
dlls

Reviews from Early Learners

5.0

5.0

최재우

100% enrolled

I have now clarified my understanding of confusing CS concepts to the point where I can explain them accurately. Furthermore, by designing Sokoban and shooting games myself and learning about RTTI and collision functions, I have gained the confidence that I can now create games on my own! I would love to recommend this to my friends!

5.0

안희준

100% enrolled

I highly recommend this course to those who want to go beyond simply using the features provided by commercial engines and instead wish to directly design and understand the fundamental internal structure of a game engine. Through this lecture, I was able to gain deep insights into the operating principles of core functions, such as the actor lifecycle and tick management. In particular, learning how to control memory directly with C++ to prevent resource leaks and implementing custom RTTI to handle object inheritance and safe downcasting were invaluable experiences that cannot be gained through superficial study. Furthermore, the process of building the engine as a DLL to separate and link it provided practical CS knowledge that is difficult to encounter in standard university major courses or general tutorials. If you are a developer who wants to know the real reasons behind how engines like Unreal or Unity work internally, I strongly urge you to take this course.

5.0

Lelana

100% enrolled

This was a huge help. Starting from very small snippets of code, I eventually found myself properly creating a 2D game. I've also been learning Unreal Engine recently, and this course has been incredibly helpful. Since everything from minor variable names to class names aligns to some extent with those in Unreal, it helped me understand Unreal's structure as well. My favorite part was RTTI; I felt great joy seeing runtime information implemented through code I wrote myself and watching it function usefully within the game. I'm looking forward to the instructor's next course. Thank you!

What you will gain after the course

  • Building a game engine from scratch with C++

  • Proficiency in utilizing C++ smart pointers and templates

  • Designing Game Loops and Actor-Level Structures

  • Implementation of DLL-based module structure

  • Creating a Custom RTTI System

  • Implementing double buffering manually

  • Implementing a Collision System (AABB) from Scratch

  • Completed Sokoban and flight shooting games


Student Reviews!

“I can now accurately explain CS concepts that used to be confusing.”

“I have gained a sense of what design methods fit the engine structure.”

"I gained confidence by making the game myself."

“I have come to understand Unreal Engine more structurally.”


If you want to understand a game engine, try building one yourself.

You will implement a console game engine yourself using C++ and complete two games using the engine you built
.


This is not a class where you simply make games.

Instead of using a pre-made engine, this is a process of
directly designing and implementing the core structure of a game engine.


Build the core engine structure yourself.

It is not just about simple functional implementation, but about directly building the core elements for understanding the structure of commercial engines.

  • C++ Object-Oriented Programming based game engine design

  • Game Loop Architecture

  • Actor and Level based world management system

  • Fixed frame-based update structure

  • Input Processing System

  • Double Buffering Rendering System

  • AABB-based collision detection system

  • DLL separation (DLLs) and Engine/Content Architecture Design (Engine/Game Architecture)

  • Custom Type System (RTTI)



We will complete a game using the engine we built.

Lecture Timeline

This course does not end with just building an engine.

You will actually create a polished game based on the engine you built yourself.

You will experience the entire flow leading from “Engine → Game”.


1. Sokoban Game

This is the first game project utilizing a self-implemented engine.
You will create Sokoban, a puzzle game where rules are emphasized.

Sokoban puzzle game implemented based on a self-developed engine

It is a structure where real-time input, collision, and rendering systems are all applied.

2. Shooting Game

This is the second game project using a self-implemented engine.
You will create a shooting game where you can directly implement real-time input processing, dynamic actor creation, and collision handling.

A real-time flight shooting game built on a custom-implemented engine
The structure features real-time input processing, collision detection, and a rendering system working together seamlessly.

Background of Course Planning

While teaching Unity, Unreal, and C++ based game development for a long time, many students have asked these questions.

“I don't understand why the engine works this way.”
“I know what Tick is, but I can't get a sense of the overall structure.”
“I can't visualize the actor's lifecycle in my head.”
"I can implement simple functions, but it's hard to explain the structure."

Because commercial engines are already complete, there are hardly any opportunities to experience their internal structures firsthand. cấu trúc bên trong của chúng.

As a result, most learning ends up like this:
→ Knowing the functions, but not understanding the structure or operating principles


That is why I created this course

By implementing the engine yourself

  • Why the game loop runs the way it does

  • How events like BeginPlay / Tick flow

  • Why Actor and Level are separated

  • how collision detection is handled

  • How the engine and the game are divided

All of this will be naturally connected and understood.

I recommend this to the following people!

Recommended Audience for the Course

Course Objectives

This is not a course that simply focuses on creating a finished product.

This is a lecture that builds a “perspective on viewing engines.”

Establish a standard for understanding the structure of commercial engines,
make it possible to see "why it was designed this way" when reading code,
and equip you with design-based development skills rather than simple implementation.

Engine design skills acquired through hands-on creation

→ We provide an experience of understanding the structure, rather than just simple functional implementation.

By directly implementing the core structure of the engine, you will understand the
game loop and lifecycle, and
acquire the ability to design the overall flow.từ đó có được khả năng thiết kế toàn bộ luồng hoạt động.

By designing an object-oriented Actor/Level structure,
you will learn how to systematically organize the game world
and create an extensible architecture.

By understanding frame-based updates and time processing (deltaTime), you will gain the foundational design skills to implement frame-independent game logic.

By directly implementing the flow of input processing, collision detection, and rendering, you will gain a structural understanding of
how game systems
are interconnected.

By experiencing a structure that separates the engine and game logic (DLL-based), you will naturally acquire project design sensibilities similar to those of actual commercial engines.

Beyond just "using" an engine,
you will grow into a developer who can explain internal structures
and design them yourself.

This course is not simply about following along and writing code.

It is a process of developing a perspective to understand engines
and growing into a developer who can design them independently.

Try making it yourself now.

Notes Before Taking the Course

Practice Environment

  • Operating System and Version (OS): Windows 11 recommended (10 possible)

  • Tools used: Visual Studio 2022 Community (Visual C++ development environment)

  • PC Specifications: Performance at the level of an office PC capable of running Visual Studio 2022

Learning Materials

  • Examples used in the lecture - (Zip archive)

  • Lecture Materials (Notes located at the bottom of the Inflearn video)

Recommended for
these people

Who is this course right for?

  • Students who are learning Unreal Engine but feel anxious because they don't understand its internal structure.

  • Developers who use commercial game engines but feel frustrated because they cannot explain the internal structure.

  • Developers who know C++ syntax but are stuck when it comes to framework design

  • A job seeker who is afraid of interviews for fear of being asked questions about engine architecture.

Need to know before starting?

  • This is intended for those who understand basic C++ syntax (classes, pointers, references, smart pointers, and templates).

  • Experience with basic file I/O (C++ style file I/O) is required.

  • Experience in creating and building C++ projects using Visual Studio is required.

  • I need an understanding of RTTI (Run-Time Type Information).

  • Experience using STL basic data structures (std::vector, std::unordered_map, etc.) is required.

Hello
This is RonnieJ

43

Learners

12

Reviews

5.0

Rating

1

Course

Se-yoon Jang

Current freelance developer/instructor/author/translator

Former Engineer at Unity Technologies Korea

Books

[Taught by a Unity Engine Developer] Developing RPG Games Using Unity

Translated Books

Unreal Engine 5 Game Development Projects 2/e and 8 others
Education and Bootcamps (Unreal/Unity)

Conducted numerous game developer training bootcamps for NCSoft, Nexon, Neople, Golfzon, and others.

Blog

https://ronniej.sfuhost.com/

More

Reviews

All

12 reviews

5.0

12 reviews

  • wodn6983님의 프로필 이미지
    wodn6983

    Reviews 1

    Average Rating 5.0

    5

    100% enrolled

    I have now clarified my understanding of confusing CS concepts to the point where I can explain them accurately. Furthermore, by designing Sokoban and shooting games myself and learning about RTTI and collision functions, I have gained the confidence that I can now create games on my own! I would love to recommend this to my friends!

    • naru032779858님의 프로필 이미지
      naru032779858

      Reviews 2

      Average Rating 5.0

      Edited

      5

      30% enrolled

      Previously, my code was very messy because I focused solely on implementation without any knowledge of design. However, through this course, I learned implementation methods suited for engine and game structures, which improved my code readability and gave me a sense of direction for design. Thanks to this, I feel I will be able to approach studying Unreal Engine much more easily and structurally in the future. This course served as an excellent guide.

      • awer000님의 프로필 이미지
        awer000

        Reviews 1

        Average Rating 5.0

        5

        100% enrolled

        This was a huge help. Starting from very small snippets of code, I eventually found myself properly creating a 2D game. I've also been learning Unreal Engine recently, and this course has been incredibly helpful. Since everything from minor variable names to class names aligns to some extent with those in Unreal, it helped me understand Unreal's structure as well. My favorite part was RTTI; I felt great joy seeing runtime information implemented through code I wrote myself and watching it function usefully within the game. I'm looking forward to the instructor's next course. Thank you!

        • ckrgkstpwhdd9870님의 프로필 이미지
          ckrgkstpwhdd9870

          Reviews 1

          Average Rating 5.0

          Edited

          5

          26% enrolled

          I’ve always wanted to try using an engine, and I feel like this is an opportunity to finally understand the internal workings of an engine that I had been ignoring for so long. I remember reading a book called 'Making a □□□ Game with C' in the past, and I recall it used the sleep() function for fixed frames. That's why the technique of specifying frames at the beginning was so fascinating to me.🤔 I used to always be interested but would end up turning away from game development after hitting the wall of the engine (its various features and interface...). However, thanks to your excellent explanations, my fear of engines seems to have faded a bit. Since you explain the lifecycle and operational processes, I think those who are intimidated by the vastness of an engine can get one step closer to game systems by building a lightweight engine themselves. Since the course takes place entirely within Visual Studio, I can pause the video, follow along with the coding, and learn while listening to the explanations. The lecture duration is a bit long, but personally, I found it great because I feel that typing along is more effective for learning. The lecture notes summarize what was covered and why, so I even used Gemini to create quizzes for review. Although you follow along while looking at the code, I think the learning effect will be better if you are somewhat familiar with C++ to keep up with the lecture pace. C++ is difficult for me, so my progress is a bit slow, but I am still very satisfied with the course. I will continue to study hard!! 🥰

          • hidolee님의 프로필 이미지
            hidolee

            Reviews 1

            Average Rating 5.0

            5

            100% enrolled

            I highly recommend this course to those who want to go beyond simply using the features provided by commercial engines and instead wish to directly design and understand the fundamental internal structure of a game engine. Through this lecture, I was able to gain deep insights into the operating principles of core functions, such as the actor lifecycle and tick management. In particular, learning how to control memory directly with C++ to prevent resource leaks and implementing custom RTTI to handle object inheritance and safe downcasting were invaluable experiences that cannot be gained through superficial study. Furthermore, the process of building the engine as a DLL to separate and link it provided practical CS knowledge that is difficult to encounter in standard university major courses or general tutorials. If you are a developer who wants to know the real reasons behind how engines like Unreal or Unity work internally, I strongly urge you to take this course.

            Similar courses

            Explore other courses in the same field!

            Limited time deal ends in 7 days

            $81,950.00

            50%

            $126.50