jarreed0 / FlexEngine

Cross-platform game engine with Vulkan backend

Home Page:http://ajweeks.com/flex-engine

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

Cross-platform game engine with Vulkan backend

http://ajweeks.com/flex-engine

License:MIT License


Languages

Language:C++ 82.7%Language:C 15.0%Language:GLSL 1.1%Language:CMake 1.1%Language:Python 0.1%Language:Lua 0.1%