• Stars
    star
    1,011
  • Rank 45,471 (Top 0.9 %)
  • Language
    C++
  • License
    MIT License
  • Created over 7 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Cross-platform game engine with Vulkan backend

linux MIT licensed forthebadge

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 backend
  • Conditional checksum-based shader compilation
  • Support for Windows & linux
  • Scene editor with serialization
  • In-game scripting language & virtual machine
  • Built-in profiling capture/inspection tools
  • Rendering:
    • Physically based shading model
    • Image based lighting
    • Screen-space ambient occlusion
    • Stable cascaded shadow mapping
    • Temporal anti-aliasing
    • Signed-distance field font generation & rendering
    • GPU particles
    • Terrain, ocean, and sky rendering

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

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