Tools to make a Game Engine in C++

preview_player
Показать описание
This video is a summary of my favorite C++ libraries and dependencies to create a game engine from scratch.

Game development has always been a great helper to get my students motivated to learn more about more advanced computer science topics. Creating a game engine is a great opportunity for us to grow as programmers.

Links:

Chapters:
00:00 Introduction
00:57 What is a Game Engine?
05:47 Should You Write a Game Engine?
08:11 Game Development & Computer Science
11:01 Classic Game Engines
14:19 How to make a C++ Game Engine?
16:31 Windowing System and Multi-platform Libraries
20:18 The Game Loop
21:17 Input & Event Handling
22:47 Representing Game Objects in Memory
24:12 ECS
28:14 2D Rendering
29:50 3D Rendering
32:01 Importing 3D Mesh Files
33:36 Physics
35:51 Dear ImGui
40:00 Scripting
42:27 Conclusion
45:50 Useful Resources

Thumbnail illustration by @WesleySales3d (thanks, Wesley!)

Hopefully, these recommendations are useful for you to create a good roadmap on how to start coding your own game engine using C++.

For comprehensive courses on computer science, programming, and mathematics, visit:

Don't forget to subscribe to receive updates and news about new courses and tutorials:

Enjoy!
Рекомендации по теме
Комментарии
Автор

I like the fact that albeit having your own lessons about all the topic you talk about in this video, you don't push them until the end, and yet, you are really cautious into saying, this is just the start of a journey, if you want to compete with X or Y, you are probably thinking it wrong. This is really honest from you and quite wholesome actually!

godzil
Автор

Don’t try to understand every thing, just forward till hit wall, hit it again and your mind start moving and work.

__hannibaal__
Автор

Cara pulei de ponta nesse "rabbit hole" já faz 2 meses e nunca me senti mais motivado pra continuar, muito bom finalmente sentir que encontrei a área que quero trabalhar/estudar. Canal sensacional, parabéns pelo trabalho!

fernandogoncalves
Автор

Very cool. One of my biggest mistakes when I tried to create a game engine with c++ in the past (in all 2 or 3 attempts iirc) was the endless "feature creep". I always got stuck implementing more and more systems and overcomplicating things instead of focusing on what was really important and forgetting what the end goal was in first place (make a simple space shooter).

blackcitadel
Автор

Cool video. I would like to point out that a game engine is actually "the part of a games code that can be shared with other similar games". It is often called the 'Engine' or 'Core' library. This is why certain games from studios will use a particular engine over others - depending on which gameplay aspects and features they are trying to achieve (and other decision making, such as ease of use and capability for streamlined collaboration of its editor). Some studios (who may release different unique type of games) may own and manage more than a single engine.

Next up, you will have your game code. This code (project) will extend/implement the core/engine library (which often contains the majority of functionality). It will then extend upon the engine code with features and functionality that will be unique to the particular game.

Lastly, you will have the editor. The editor does not need to be written in the same programming language as the engine is. After all, it will be mostly managing asset files. It therefor needs to understand how to create and modify the proper file formats for assets, as the code (engine + game code) will need to read into memory. This program will contain the majority of tool necessary for the creatives (and programmers alike, inc. others) to create and manage project assets, visualize and place items into the scene, and much more.

Post lastly, sometimes a studio will create one or more specialized tools for particular tasks. The editor will have many bells and whistles in regard to what it can do and how it does it. Sometimes, a simple tool (could even be created in a webpage) can be used for specific complex tasks.

playerzero
Автор

Nice to see a fellow Brazilian here! In any case, maybe I'm being too honest, but for me the answer to "Should you write a game engine?" is a simple no. There's a very simple way to see this. First, pick any game and try to implement something similar to a very small part of it, like a menu to select the items. Try to implement just that from scratch. You will see that you'll struggle a lot, it will look very bad. Now try the same with an engine and you'll see that it will take you just a couple of days.
Now pick the tool you used in the engine and try to implement it. With a few months of work and some knowledge you might be able to do it, but at least this is a problem you can attack. If you succeed then you can wonder if you have enough time in your life to actually implement the rest.
In any case, you're right that it teaches a lot of programming concepts, but there are much more efficient ways to understand them...

felipelopes
Автор

Wow! You talk with so much passion that I almost want to start writing my own game engine! Thanks for great lecture!

badgerdash
Автор

very underrated video, literally cleared everything that i was having hard time with

jorik
Автор

This is a fabulous explanation of what and why.
Thank you sir!

ThatBigDon
Автор

I watched it all and finally realised its past one hour. Great video i learned a lot!
Thank you !

yolowex
Автор

Great overview Gustavo! So your preference would be 'unmanaged' languages like C/C++/Object Pascal vs 'managed' languages such as Java and C# which have a layer of abstraction.

GaryChike
Автор

Thanks for this informative video. It’s the best video about how to start game engine dev journey.

JafarDashti
Автор

Cara, sei que você é brazileiro só pelo sotaque rsrsrs, muito bom! continue nesta jornada, me ajudou muito a entender essa caixa preta.

DiegoBreeg
Автор

Awesome video, I watched it all the way until the end and I’m looking forward to taking all of your courses!

mr_noodler
Автор

wow..i found you on youtube after you respond me on quora..nice tutorials man

blyatpitt
Автор

Amazing video, very suitable for this minimalist programmer and developer 😊 are you also going to share some idea about building an emulator too?

vimy-hhuz
Автор

Yes, thank you I want to make a game engine. You have helped!

KINDUSTRY
Автор

Awesome and very valuable content.
Thank you!

fedotovd
Автор

Muito bom! Aproveitar as férias da faculdade para fazer uma game engine como side project

eduardoprasniewski
Автор

well done. that is one of the topics that like to follow more as a unity/unreal developer!

moeenkamali