Game Engine From Scratch (C++/Lua/OpenGL) Showcase

preview_player
Показать описание
Featured in this video:
Intro 00:00
Build & run the engine 00:25
Meshes, Lights, Shadows 01:55
Scriptable Components C++ 03:00
Lua Scripting 04:40
In-Editor Variable Editing 05:50
Adding a Camera 06:15
Lua Hot-Reloading 06.45
Material System 07:35
Sponza FBX Scene 09:18
Lightning Showcase 10:00
Animation System 10:44
Animation Blending 11:37
Physics Scene Test 12:30
GitHub Page 13:56
Outro 14:07

The engine is written in C++ 17 and currently runs OpenGL ES 3.0, OpenGL Core 3.3 or WebGL 2. It thus has the ability to build games targeting Windows, Mac and Linux, as well as modern browsers using WebAssembly via Emscripten.

The way of working in the engine is inspired by a mix of Unreal Engine and Unity, with scripting support in Lua.

The engine uses a set of libraries for certain specific tasks:
Window management & input: GLFW3
OpenGL loading (desktop): GLAD
Image loading: stb_image
Serialization: nlohmann::json, cereal, magic_enum
3D importing: tinyobjloader, Assimp
Font importing: FreeType 2
Networking: Socket.IO C++ Client
Audio: SoLoud
Editor: UI Dear ImGui, ImGuizmo, ImGuiColorTextEdit
In-Game UI: RmlUI
Logging: Plog
Mathematics: GLM
Compression: Zlib
Multi-threading: ConcurrentQueue, wiJobSystem
Scripting (Lua): Lua 5.4, sol2 v3.0
Physics (3D): Bullet3
Template Library: EASTL
Real-Time Profiling: Tracy

List of songs used in the video:

Song: Unknown Brain - Jungle of Love (ft. Glaceo) [NCS Release]
Music provided by NoCopyrightSounds

Song: Robin Hustin & Jessica Chertock - Burn it Down [NCS Release]
Music provided by NoCopyrightSounds

Song: Zeus X Crona & Shiah Maisel - Run & Hide [NCS Release]
Music provided by NoCopyrightSounds

Song: PHI NIX - The Word Is Out [NCS Release]
Music provided by NoCopyrightSounds

Song: Everen Maxwell - A Day at Sea
Music provided by NoCopyrightSounds

learn opengl, game jam, opengl, gamedev, 48 hours, c++, cpp, gmtk
Рекомендации по теме
Комментарии
Автор

So cool. I just added bullet rigid bodies and collisions to my OpenGL project and I thought that was challenging. Can’t imagine what goes into something like this.

berk
Автор

Damn, I don‘t know how many times I have watched this video yet. This is inspiring me to keep making my own engine. Very good job.

MizuFelix
Автор

I've gotta tell that I never really comment on anything but this showcase just deserves some commendation. Very well-rounded stuff and the fact that you've gathered all the technologies being used is just the nicest touch ever. Good job, best of luck going forward!

stsoor
Автор

This is INSANE! You made a game engine all by yourself😳 Impressive!

kinganime
Автор

wow.. this is awesome, you even added an animation blending system, and the interface looks cool... 😁 Amazing work.

lehisluguer
Автор

Very nice. I'm running what seems to be a similar tech stack but you are way ahead of me. Impressive work 👌

Mnmn-xicj
Автор

Very nice work! Wish you the best for the future of the engine. 🙂

runningonsynthwave
Автор

I like that you chose to go with a compiled language as your scripting language too, not just Lua. Engine looks nice.

luigiistratescu
Автор

This is really cool. This is almost the same as what I wanted for my own game engine in the future, God knows it would take me years to actually get it to this point though.

Fezezen
Автор

this is really good and especially for 1 person. Great job man

ItzVic
Автор

Very fricking impressive!
Proud of you my friend :)

WackyWhiskerDev
Автор

Damn! That‘s cool! How did you implement the Register macros though?

MizuFelix
Автор

This looks very well made! I've been working on my own engine for about a year now so it's cool seeing what one person can do given enough time and motivation. Unfortunately I don't think 99% of the people who have seen this so far will understand just how impressive this is. You clearly have what it takes to get far with this stuff if you wanted to. It's incredible how there is so little competition with engines like unity and unreal because people think you need a huge team to make a game engine. Good luck with your project! Also try to sound less humble, the other YouTube developers make a new video about every tiny thing they accomplish but act like it's this revolutionary difficult thing and it gets them tons of views 😂.

lukepowers
Автор

Awesome! That's a great deal of work and heart that you must have put into this project. Were you inspired be The Cherno's series?

mateuszkolpa
Автор

How does it go from editor to final build? Something ive been confused by in engines with distinct editor and runtimes, if you have the play mode in editor how do u get that to a final build. U code a exe builder?

brodakarat
Автор

im having problems compiling the engine when i put this in:

mkdir build
cd build
cmake .. -DBUILD_EDITOR=ON -DCMAKE_BUILD_TYPE=Release
cmake --build

it gives me errors.

vrtexxradiation
Автор

Wow, a very cool result. Will there be static lighting?

DisoftGDmedia
Автор

I want to develop a game engine like you. What knowledge do I need if I just want to write a simple 2D game engine.

wuxianggujun
Автор

does your engine have a test run and do i have to make the humanoids myself?

mustafaugur
Автор

how do you started the project, i want to learn and do something similar, which resources did you use? books? tutorials?

loscaballerosdebronzodia