Flex Engine is my personal game engine which I began work on in February 2017 as a playground for learning about real-time technology. During the first year of development I focused on the renderer, but since then I have been focusing on adding support for other systems.
- Support for both Vulkan and OpenGL
- Signed-distance field font generation & rendering
- Physically based rendering
- Image based lighting
- Scene editor with custom file format
- Profiling tools
- In-game scripting language
- Conditional checksum-based shader compilation
Profiler overlay showing a breakdown the CPU-time of a single frame
GBuffer (top-left to bottom-right): position, albedo, normal, final image, depth, metallic, AO, roughness
See more screenshots here
If you want to build Flex Engine on your own system, follow these steps. You an always download the latest release binaries here if that's what you're after.
- Visual Studio 2015 (or later)
- GENie
- Recursively clone the repository to get all submodules
- Ensure GENie is either on your PATH, or
genie.exe
is in thescripts/
directory - Run
scripts/generate-vs-*-files.bat
(this simply runs the commandgenie vs2015
orgenie vs2017
) - Open
build/FlexEngine.sln
- Build and run!
Flex Engine uses the following open-source libraries:
- Bullet - Collision detection & rigid body simulation
- FreeType - Font loading
- glad - OpenGL profile loading
- glfw - Window creation, input handling
- glm - Math operations
- ImGui - User interface
- OpenAL - Audio loading and playback
- stb - Image loading
- cgltf - Mesh loading
Flex engine is released as open source under The MIT License. See license.md for details.
A huge thank you must be given to the following individuals and organizations for their incredibly useful resources:
- Baldur Karlsson of github.com/baldurk/renderdoc
- Alexander Overvoorde of vulkan-tutorial.com
- Sascha Willems of github.com/SaschaWillems/Vulkan
- Joey de Vries of learnopengl.com
- Andrew Maximov for the pistol model and textures artisaverb.info/PBT.html
- FreePBR.com for the high-quality PBR textures
- All authors and contributors to the open-source libraries mentioned above
Stay (somewhat) up to date about this project on my blog at ajweeks.com/blog