No video

Enjon: 3D/2D Game Engine, C++ / OpenGL DevLog #5

  Рет қаралды 3,800

John Jackson

John Jackson

Күн бұрын

Dev-logging my process of building an engine in C++ and OpenGL for the purposes of eventually making a hand-drawn 2D/3D Isometric Rogulike game.
Covered in this video:
- Asset Management
- C++ Reflection/Introspection
- Serialization
- Editor Interface
- Application/Project Creation
- Run-time C++ Code Reloading
If you have any comments or questions, drop 'em below. Like and subscribe!

Пікірлер: 12
@mash808
@mash808 6 жыл бұрын
Wow! Love these videos, keep them coming man. Very inspiring for someone trying to make a game engine in SDL.
@johnjackson9767
@johnjackson9767 6 жыл бұрын
BaconNewdles Thanks! I definitely hope to keep posting updates. And good luck on your engine. Let me know if you have any questions about anything!
@mash808
@mash808 6 жыл бұрын
John Jackson Thanks a lot.
@eboatwright_
@eboatwright_ 3 жыл бұрын
Cool :D
@axelforsman1642
@axelforsman1642 6 жыл бұрын
Cool stuff! The reflection system seems very rigorous. Working on line breaking with Harfuzz myself.
@johnjackson9767
@johnjackson9767 6 жыл бұрын
Thanks, Axel! I spent a good amount of time on the reflection, and other than a few issues with the introspection not catching types correctly, it's been the best addition to the engine so far. Sorry for the ignorance, but I'm not familiar with Harfuzz. Maybe you could explain?
@axelforsman1642
@axelforsman1642 6 жыл бұрын
Harfbuzz shapes text, that is, it tells you the positions of glyphs and handles kerning, ligatures, etc. but it assumes that the line width is infinite. So Unicode has an algorithm for determining opportunities for a line break that I've implemented, but my old code was too slow. Therefore I have been working on only reshaping when necessary, eg when breaking inside a ffi ligature, and operating directly on HB buffers. Edit: Sorry, just realised I misspelled Harfbuzz in my original comment.
@johnjackson9767
@johnjackson9767 6 жыл бұрын
Very interesting. I'll have to give that a read sometime. Thanks!
@antoniocs8873
@antoniocs8873 6 жыл бұрын
Wow.. the engine seems complex. Any reason you are sticking with Visual Studio 2015? Also, at work do you use c++? I am sure it would have taken me months to figure out how to do a reflection system in c++
@johnjackson9767
@johnjackson9767 6 жыл бұрын
Hopefully not too complex, haha. I've tried to make the API as easy to use as possible and wanted the setup for all the subsystems to be as flexible as possible within reason. I just haven't taken the time to switch over to 2017 yet. It shouldn't be too big of a change, really, just haven't put it as a high priority yet. We use c++ for all the engine code at work but not for reflection. We use clang and python to generate the reflection code. I highly dislike python, so I decided to write my precompiler in c++. The benefits are that it takes a blink of an eye for all the reflection code to be generated. I actually don't even distinguish between files that need to be reflected or not - at anytime the engine is compiled, the reflection system parses ALL engine files and then regenerates the code from scratch. It's such a negligible amount of time that I haven't seen a reason to care about it yet - other than it's kinda lazy on my part. This is the Handmade Hero video I watched to get a rough idea of how to set up a lexer/parser and begin to implement introspection for c++. He strictly uses c here, but this can be applied to c++ as well - you just have to get clever and take care with templates. kzbin.info/www/bejne/Z3rainiAqNuXmdU Thanks for watching and commenting!
@prezadent1
@prezadent1 6 жыл бұрын
19:54 What is Lua Hack script dependency?
@johnjackson9767
@johnjackson9767 6 жыл бұрын
haxe.org/ Haxe is a cross-platform language that can transpile into most other commonly used languages. The problem I found with it is that it added yet another level of third-party dependency into my engine, and I try to minimize that as much as possible. That being said, from what I've seen of it, it looks very promising to use.
Enjon: 3D/2D Game Engine, C++ / OpenGL DevLog #6
29:11
John Jackson
Рет қаралды 4 М.
Building the world's LARGEST iPhone
32:05
DIY Perks
Рет қаралды 259 М.
managed to catch #tiktok
00:16
Анастасия Тарасова
Рет қаралды 55 МЛН
Header-Only Game Framework in C | Game Engineering
27:20
John Jackson
Рет қаралды 23 М.
Writing a Poor Man's Reflection System in C99
44:01
John Jackson
Рет қаралды 11 М.
Gunslinger: C / Opengl Christmas Stream - Header Only Game Engine
1:15:30
Gunslinger: C / Opengl Dev Stream - Graphics Work
2:23:01
John Jackson
Рет қаралды 2 М.
1v1
3:10
Rayizer1
Рет қаралды 12
Rasterizer Algorithm Explanation
5:18
HuCE - cpvrLab
Рет қаралды 81 М.
Gunslinger: C / Opengl Dev Stream - Immediate Mode Gfx
3:00:19
John Jackson
Рет қаралды 1,3 М.