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) 17 reviews

75 learners

Level Basic

Course period Unlimited

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

Reviews from Early Learners

5.0

5.0

박창후

52% enrolled

While using Unreal Engine, I always had a vague curiosity about how its features work internally and why they were designed with such structures. Most available courses focus heavily on how to use the engine interface, which left me feeling unsatisfied, but I feel like I've finally found a truly great course. The most satisfying part was being able to implement the engine's fundamental mechanisms with my own hands. Beyond simply creating features, designing the Actor lifecycle and Tick system myself allowed me to think deeply about what an object-oriented code structure really is. Thanks to this, I feel like my code—which used to be messy because I was only focused on implementation—is gradually finding order. In particular, the part where we implemented custom RTTI and managed memory was impressive. Instead of just using the features provided by the engine, learning the principles of managing runtime type information and casting safely gave me a lot of confidence in C++ and memory structures. The process of separating the engine into a DLL and linking it was also fresh; it was practical knowledge that is hard to find in typical tutorials, and it was a great help to my CS studies. After completing the course, every class name and variable in Unreal Engine looks completely different to me than before. I highly recommend this course to those who want to properly understand the massive structure of the engine or those who want to grow into developers with real skills. I would like to express my sincere gratitude to the instructor for being such a great guide.

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

최재우

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!

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


Students have transformed like this after taking this course

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

"I've moved away from just focusing on implementing features and have started to get a feel for what design methods truly fit the engine's structure."

“By implementing it myself, I began to see the Unreal Engine code in a different light.”

“I came to understand how the engine works while gaining an understanding of RTTI and DLL structures.”


Actual project results from students after one week


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

How does a game engine work?

This course is for those who want to learn the structure of a game engine by building one themselves, rather than simply using one.

The goal is to understand the engine structure while implementing a game engine yourself using C++.

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 just make games.

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


Build the core structure of the engine yourself.

Rather than simple functional implementation, you will directly build the core elements required to understand 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 for Engine/Content Architecture Design (Engine/Game Architecture)

  • Custom Type System (RTTI)

Complete a full game using the engine you built.

Lecture Progress 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-developed engine
The structure features real-time input processing, collision detection, and a rendering system working organically together

Lecture Planning Background

A course to break through the two-year wall of game development and develop the insight to read Unreal Engine source code.

Beyond just implementing features, the goal is to grow into a developer who understands why the engine operates the way it does.


Over many years of teaching Unity, Unreal, and C++-based game development, 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."

Since commercial engines are already complete, there is hardly any opportunity to experience their internal structures firsthand.

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


In an era where AI generates code, the ability to judge why that code works the way it does is becoming increasingly important.

You must become a developer who can leverage AI, not just a developer who uses it.

If you want to grow into a developer who can understand engine structures and read source code, rather than just using commercial engines as they are, this course can be a great starting point.


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 Actors and Levels are separated

  • how collision detection is handled

  • How the engine and the game are divided

All these flows will be naturally connected and understood.

I recommend it to these people!

Who this course is recommended for

Course Objectives

This is not a lecture 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 clear "why it was designed this way" when reading code,
and equip you with design-based development skills rather than simple implementation.

This course focuses on directly implementing and understanding the core structure of a game engine,
rather than completing a test-friendly practical architecture.
Therefore, some designs have been intentionally simplified to lower the learning difficulty and allow you to focus on core concepts.

Engine design skills acquired through hands-on creation

→ It provides an experience of understanding the structure, rather than just simple functional implementation.

By implementing the core structure of the engine yourself, you will understand the
game loop and lifecycle, and
gain the ability to design the overall flow.

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 just about simply 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: Office-level PC performance 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 course is intended for those who have an understanding of basic C++ syntax.

  • If you have used the concepts of classes, pointers, and references at least once, you are more than capable of taking this course.

  • It is helpful if you have experience creating and running a simple C++ project in Visual Studio.

  • We explain from the basics so that even those who are new to game engine architecture can take the course.

Hello
This is ronniej

Career Verified

75

Learners

17

Reviews

1

Answers

5.0

Rating

1

Course

Seyun Jang
@ronniej

Current Freelance Developer / Instructor / Author / Translator
Former Engineer at Unity Technologies Korea
https://ronniej.sfuhost.com/


"A developer who understands structure, not just features"

There are many ways to create games using Unity and Unreal.

However, while conducting actual classes,
there was a common problem that many students experienced.

"I can make the features work, but I don't know why they operate this way."


To solve this problem,
I have created a curriculum focused on directly understanding the engine's structure,
rather than simply implementing features.thay vì chỉ đơn thuần là hiện thực hóa các tính năng.


I deliver these kinds of experiences.

  • Experience in directly designing and implementing the game loop and object lifecycle

  • Understanding core engine structures such as RTTI, DLL separation, rendering, and collision systems

  • How to understand the operating principles of commercial engines (Unity/Unreal) by connecting them.


This course is for people like this

  • Those who can implement features but feel stuck because they don't understand the underlying structure

  • Those who want to gain a deeper understanding of Unity/Unreal

  • Those who want to move from the "using the engine" stage to the "understanding the engine" stage


Books and Activities

📘 Author of 『RPG Game Development Using Unity
📗 Translator of 『Project-Based Unreal Engine 5 Game Development』 and many others

🎮 Conducted corporate training and bootcamps for companies such as NCSoft, Nexon, Neople, and Golfzon


 

👉 The lecture focuses not on "how to make it quickly," but on the
"process of understanding why it works that way."

More

Reviews

All

17 reviews

5.0

17 reviews

  • 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.

    • 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!

      • 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!

        • futureverever1127님의 프로필 이미지
          futureverever1127

          Reviews 1

          Average Rating 5.0

          5

          100% enrolled

          Through Instructor RonnieJ’s ‘Game Engine Framework with C++’ course, I was able to build a very solid foundation in game engine development. While studying development, I had encountered various concepts related to game engines and CS, but I found it difficult to explain them accurately or organize them systematically. Through this class, I was able to clearly understand concepts that were previously confusing and organize them to the point where I can explain them myself. Beyond just understanding the overall flow of how an engine is structured and operates, I was able to learn the actual operating principles by directly implementing core concepts such as the game loop, actor and level-based world management, fixed-frame update structures, input processing systems, double-buffered rendering, and AABB collision detection. Designing the engine/content structure through DLL separation and implementing a custom type system (RTTI) was also very helpful. After completing this course, I am now learning Unreal Engine, and I naturally understood things like the DLL keywords and casting used in Unreal headers. Additionally, in an era overflowing with flashy graphics, I was satisfied to be able to create my own unique game by implementing a console-based game. The course structure was also very helpful for learning. By following the class materials provided for each lecture, the summaries at the bottom of the videos, and the checkpoints, I was able to review efficiently without missing important concepts. I believe this is not just a class where you simply make a game, but a lecture that allows you to understand the core structure of a game engine and elevate your mindset as a developer to the next level. For those who want to start game engine development or those studying development, this is a truly precious, unicorn-like lecture!!! I strongly recommend it to those who want to properly understand game engines and to developers who want to grow one step further!!

          • hoo01님의 프로필 이미지
            hoo01

            Reviews 2

            Average Rating 5.0

            5

            52% enrolled

            While using Unreal Engine, I always had a vague curiosity about how its features work internally and why they were designed with such structures. Most available courses focus heavily on how to use the engine interface, which left me feeling unsatisfied, but I feel like I've finally found a truly great course. The most satisfying part was being able to implement the engine's fundamental mechanisms with my own hands. Beyond simply creating features, designing the Actor lifecycle and Tick system myself allowed me to think deeply about what an object-oriented code structure really is. Thanks to this, I feel like my code—which used to be messy because I was only focused on implementation—is gradually finding order. In particular, the part where we implemented custom RTTI and managed memory was impressive. Instead of just using the features provided by the engine, learning the principles of managing runtime type information and casting safely gave me a lot of confidence in C++ and memory structures. The process of separating the engine into a DLL and linking it was also fresh; it was practical knowledge that is hard to find in typical tutorials, and it was a great help to my CS studies. After completing the course, every class name and variable in Unreal Engine looks completely different to me than before. I highly recommend this course to those who want to properly understand the massive structure of the engine or those who want to grow into developers with real skills. I would like to express my sincere gratitude to the instructor for being such a great guide.

            Similar courses

            Explore other courses in the same field!