Need help with FlexEngine?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

ajweeks
343 Stars 14 Forks MIT License 2.0K Commits 0 Opened issues

Description

A personal game engine

Services available

!
?

Need anything else?

Contributors list

No Data

MIT licensed <!-- Build status -->

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

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.