Github Repository
I'm not really sure yet what the purpose of this post is. I initially expected someone to want to look at the source code and maybe offer some suggestions.
Here I have only talked about the most basic things about my project and I could have missed a lot.
About Me in Brief
I'm 18 years old. I've been studying C++ for about three years, and recently started learning game engines.
I've been writing my engine in almost all my free time for three months now, and I think I can tell you at least something about it now, although it doesn't have much yet.
What's already in the engine
Runtime
The engine's runtime has a lot of functionality.
The most important ones are the Renderer and WSI with implementations of OpenGL and SDL3.
In addition, I created wrappers over GLM for working with math, StringCommandRunner for a console similar to the one in Valve games, ActionSystem for working with Actions instead of raw keycode or scancode.
My own input/output (IO) and logging system (probably not the best). My own resource manager, implemented using OOP and allowing you to create your own resource types and loaders (Resource and ResourceLoader).
GameFramework
This is a separate module that provides everything you need to create a game using the Engine's Runtime.
It implements the Application class and a cross-platform entry point.
In addition, there's a Scene and Entity class with implementations of basic components and systems for them:
- IdComponent
- TagComponent
- TransformComponent - Object transformations and storage of the parent object
- CameraComponent
- StaticMeshComponent
- NativeScriptComponent
The Application class stores a LayerStack; its implementation is almost identical to The Cherno's Hazel Engine(I started building the engine using his old tutorials).
The engine also supports basic C++ scripting.
What I'm doing now and what are my plans for this project?
Currently, I want to write a Minecraft clone using my own engine and slowly develop an editor for it.
I don't have any immediate plans, and I don't really have a clear direction for the engine's development yet. The main thing I'm most concerned about is the project structure, especially the GameFramework, where everything is crammed into one folder.