Fusion is an open-source, cross-platform game engine written in modern C++17 and structured to be fast, simple, and extremely modular. Vulkan is the sole graphics API, Vulkan can be accessed in apps with the provided rendering pipeline. This engine was developed for my Master's final year project at City, Univercity of London.
- Multiplatform (Windows, Linux, Android, 32bit and 64bit)
- Multithreaded command buffers and thread safety
- Event delegate callbacks with scoped functions
- Built-in editor application
- Project's management using serialization
- Object serialization (JSON and XML using cereal)
- Data-oriented Entity component system (using entt)
- Powerful scene manager
- PhysX physics
- Vulkan renderer pipelines
- Abstract input system
- GLSL to SPIR-V compilation and reflection
- Model file loading (using Assimp)
- Image file loading (ktx, kmg, dds, jpg, png, bmp, hdr, psd, tga, gif, pic, pgm, ppm)
- UI components (using ImGUI)
- Audio system (flac, mp3, ogg, opus, wave)
- Embedded (script) system (using Lua)
- Particle effect systems
- Post effects pipeline (blur, SSAO, ...)
The final build of the game engine, the editor application and the source code are submitted alongside this report. To run the editor application, simply execute the "editor.exe" file located in the "EditorBuild/editor" directory. To run the game engine sample app, simply execute the "sandbox.exe" file located in the "SandboxBuild/game" directory. To upload all submodules for the sourcecode to compile the project. Execute command in the command prompt: "git submodule update --init --recursive"