FOA, sry for my poor English.
Eye Engine is my first Real-Time 3D Game Engine learning project.
There are two editions:
- Rust Edition. (suspend development until I found game-dev job.)
- Cpp Edition.
They are completely independent and have different architecture & development plan!
As I say, Building games above this engine is not the first level target! The main purpose of those projects is helping me to learn modern 3D Game Engine, Graphic API & SL and practice Computer Grahpic theory.
I will build it from the "bottom layer", such as Entry Point / Logging System. So, it will add advanced features slowly.😶🌫️
Cpp Edition only support Windows + OpenGL yet, make sure you have the correct env.
git clone --recursive https://github.com/fseeeye/EyeEngine-Cpp.git
- Open this repo by Visual Studio. (Recommanded using Visual Studio 2022)
- Hit
F5
to run the Game Sandbox Example Project.
- update submodules:
git submodule update --recursive --remote
. - use commitizen commit changes.
- Basic System
- Logging System
- Build System
- Event System & Polling Input
- PCH
- OpenGL Support
- ImGUI
- Keycode & Mousecode
- Math Support
- Abstract Rendering basis
- (Vertex & Index) Buffer
- Vertex Buffer Layout
- Vertex Array
- Shader
- Draw Call
- 2D Camera (View & Projection Transform)
- DeltaTime
- Model Transform
- Material System / Asset System
- Shader Asset
- Texture Asset
- Shader Library
- Model Asset
- 2D Renderer (target: Batch Rendering + 60fps + with 100-200k textures)
- Orthographic Camera
- Handle resize properly
- Serialization
- Entity Component System
- Level Format
- Tools
- Scripting
- glfw : multi-platform library for OpenGL, OpenGL ES and Vulkan, which provides a simple, platform-independent API for creating windows, contexts and surfaces, reading input, handling events, etc. The only regret is that GLFW doesn't support DirectX.
- glad : modern OpenGL wrapper.
- glm : header only C++ mathematics library for graphics software which is like GLSL spec.
- ImGui : amazing Graphic UI lib.
- spdlog : fast, multi-threading supported, C++ logging library.
- stb_image : single-file image loader.
- premake : perform build configuration tasks or generate project files for toolsets like Visual Studio, Xcode, and GNU Make.