ajweeks/FlexEngine
ajweeks/FlexEngine has 1,038 GitHub stars and 56 forks. Star changes are not measured yet. Last checked 2026-11-09 11:44 UTC. Last push 2026-10-30.
Cross-platform game engine with Vulkan backend
What you can do
- Vulkan rendering backend (VulkanRenderer.cpp)
- In-game scripting language compiler/editor & virtual machine (VirtualMachine.cpp)
- Conditional checksum-based shader recompilation (ShaderCompiler.cpp)
- File modification monitoring for textures, meshes, prefabs, shaders, config files, etc. (ResourceManager.cpp)
Measured star growth
- in 24h
- Update delayed
- in 7 days
- Update delayed
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
Original
Flex Engine is a personal game engine I began work on in early 2017. I use it as a playground for learning about real-time rendering and simulation techniques. Flex Engine is not a commercial game engine nor is it intended for public use.
Building Flex
See build.md
Notable Features
- Vulkan rendering backend (VulkanRenderer.cpp)
- In-game scripting language compiler/editor & virtual machine (VirtualMachine.cpp)
- Conditional checksum-based shader recompilation (ShaderCompiler.cpp)
- File modification monitoring for textures, meshes, prefabs, shaders, config files, etc. (ResourceManager.cpp)
- Scene editor with serialization (BaseScene.cpp)
- Editor tools (transform gizmo, property editor, keybinding editor, etc.) (Editor.cpp)
- Basic profiling capture/inspection tools
- Support for Windows & linux
- Rendering:
- Marching cubes terrain generator & renderer
- Gerstner wave ocean renderer
- Rectangular area lights (direct-only diffuse & specular)
- Physically-based shading model
- Image-based lighting
- Screen-space ambient occlusion
- Stable cascaded shadow mapping
- Temporal anti-aliasing
- Signed distance field (SDF) font generation & rendering
- GPU-based particle simulation
Procedural terrain generated on the GPU
Gerstner wave ocean simulation
Cascaded Shadow Mapping
Two million particles simulated and rendered entirely on the GPU
Profiler overlay showing a breakdown the CPU-time of a single frame
Some editor windows
Screen-Space Ambient Occlusion (SSAO)
GBuffer (top-left to bottom-right): position, albedo, normal, final image, depth, metallic, AO, roughness
View into editor


See more screenshots here
Dependencies
Flex Engine uses the following open-source libraries:
- Bullet - Collision detection & rigid body simulation
- FreeType - Font loading
- glfw - Window creation, input handling
- glm - Math operations
- ImGui - User interface
- OpenAL - Audio loading and playback
- stb - Image loading
- cgltf - Mesh loading
- volk - Vulkan meta-loader
License
Flex engine is licensed under the MIT license. See LICENSE.md for details.
Acknowledgements
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
Blog
Stay (somewhat) up to date about this project on my blog at ajweeks.com/blog
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
561,597 starspublic-apis/public-apis
A collective list of free APIs
497,924 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
449,772 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,299 stars