Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
F

FlexEngine

> 编程语言
Open source

Cross-platform game engine with Vulkan backend

1.0K stars0 likes0 views
WebsiteGitHub

About

Cross-platform game engine with Vulkan backend

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

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

C++cppflex-enginegame-engineglsl

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言