Skip to content
master
Switch branches/tags
Go to file
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

readme.md

MIT licensed

Flex Engine is a personal game engine I began work on in February 2017. I use it as a playground for learning about real-time techniques. I try to keep master reasonably stable, and therefore update it infrequently. See development for the latest changes.

Notable Features

  • Vulkan and OpenGL backends
  • Signed-distance field font generation & rendering
  • Physically based shading model
  • Image based lighting
  • Screen-space ambient occlusion
  • Stable cascaded shadow mapping
  • Conditional checksum-based shader compilation
  • Scene editor with serialization
  • Profiling tools
  • In-game scripting language
  • GPU particles (compute shader)

Basic implementation of Cascaded Shadow Mapping

Two million particles updated and rendered entirely on the GPU, utilizing the compute stage

Profiler overlay showing a breakdown the CPU-time of a single frame

Some of the editor windows

Screen-Space Ambient Occlusion (SSAO)

GBuffer (top-left to bottom-right): position, albedo, normal, final image, depth, metallic, AO, roughness

See more screenshots here

Building Flex

See build.md

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 released 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:

Blog

Stay (somewhat) up to date about this project on my blog at ajweeks.com/blog