Flounder is a high speed, modular Vulkan game engine written in C++17 providing multiple features such as cross platform support.
Features are broken down into modules, modules can be added or removed from Flounder with ease, and modules are easy to create. Vulkan is the only supported rendering API; however, APIs like Molten are supported through libraries, eventually, OpenGL and DirectX will be supported in this way..
Flounder is licenced under MIT, we are open to contributions use the 'Developer Setup' section in the README to get started with Flounder, and if you want to know about our code style read GUIDELINES.
Website Learn more
Trello Board
Documentation Autogen docs
Metrics Code metrics
This is a list of current features in Flounder:
- High speed, multithreaded, cross platform
- Only Vulkan rendering
- On the fly GLSL to SPIR-V compiler
- Small amount of dependencies
- Modular rendering pipeline
- Deferred PBR & IBL rendering
- Frustum culling
- Event and tasks systems
- GUI / text rendering
- Audio and music
- Skyboxes and fog
- Post effects (Lensflare, Glow, Blur, SSAO, ...)
- Simple terrain, water, and voxels
- 3D shadow mapping
- Model file loading (OBJ)
- Animations loading (DAE => JSON)
- Image file loading (JPG, PNG, TGA, BMP, PSD, GIF, HDR, PIC)
- Config and class loading/saving (CSV, JSON)
- Resource management
- Visual drivers and maths classes
- Flexible input classes
- GameObjects and component system
- GameObject prefab loading/saving (JSON)
- Material pipeline system
- Normal, material, glow, and sway maps
- Particle effects system
- Simple physics engine (WIP)
- P2P networking (WIP)
- Steam integration (WIP)
- Resource packaging (WIP)
These are the future plans for Flounder:
- Finish the core engine by the end of 2018
- Create a simple visual prefab editor
Flounder currently can be run on the following platforms:
- Vulkan - Windows, Linux, Android
- MoltenVK - MacOS, IOS
Flounder uses the following libraries:
- stb - Image loading
- glfw - Display handling
- glslang - GLSL processing
- openal - Audio interface
- vulkan - Vulkan interface
- moltenvk - Vulkan on Apple
Flounder is released under the MIT licence, LICENSE.md for more details.
You can contribute to Flounder in any way you want, we are always looking for help.
Once Flounder is cloned run git submodule update --init --recursive to update the submodules needed to compile. All platforms depend on CMake to generate IDE/make files.
The Vulkan SDK and OpenAL SDK is required to develop and run Flounder.
On Windows, Flounder requires Visual Studios 2015 or later and the "Windows 10 SDK (10.0.15063.0) for UWP: C++". Use the VS installer and ensure "Desktop development with C++" and the Windows SDK is installed and up to date. Install the latest Vulkan SDK and Flounder should compile properly. Run Scripts/generate_vs.bat and an environment will be setup in Build.
On Linux a GCC/Clang compiler is required, each package listed here is for Debian/Apt. GLFW requires xorg-dev, libopenal1, libglfw3, and libvulkan installed.
Setup on MacOS is similar to the setup on Linux, except MoltenVK is used instead of Vulkan.
Once Flounder has built, link the Resources folder into the output directory. For example when using CLion Scripts/link_resources.bat or .sh can be used to link into Debug and Release builds.
Currently Flounder does not run under Release mode in Visual Studios (bug).




