A Easy-to-use OOP rendering framework. Currently converting its architecture to fits a game engine.
Armada Engine (fleet engine) is my personal project aimed at building a high-performance game engine tailored for first-person and third-person shooter titles.
- Simple Rendering Layer: Currently using OpenGL 460 (Will be convert to RHI ASAP)(Vulkan/D3D11 WIP)
- ECS system: component based GameObject and data driven programming
- reflection system && simple editor: reflect components fields for editing, with
imguias a simple editor - Subscription based Event System & Input Manager: Subscriber/Observer based Event System, and Query/Queue process Input System
- glb/gltf model loading: load customized models
- cluster forward lighting: transmit lighting based on screen location
- Advanced Anti-Aliasing: MSAA, FXAA. TXAA support WIP.
- PBR Material System: Physically based rendering WIP
- Flexible Rendering Pipelines: Choose between deferred, forward, and traditional rendering.
- Ambient Occlusion Techniques: SSAO, HBAO+ and others (WIP)
- Multi-Rendering Backends: Currently supports OpenGL. DirectX11/12, and Vulkan WIP.
- Add rendering abstraction Layer
- Bullet physics engine integration
- Use Fast-Delegation to lower callback function costs
- Add Irrklang as audio engine
- Add Lua scripting binding
- ParticleFX particle system
- Animation engine integration
-
resources: contains all assets, such as models, textures, audio, animations, CGs, etc. Noticed that this directory is not sync up. You are encouraged to use your own assets. -
Sources: contains all actual code.Engineis the armada engine itself,Examplesare some demo & tests to show how to use the engine.Thirdpartycontains some of the external library.
This engine is both compiled and run cross-platform. It relys on cmake to find dependencies and build for each platform.
If you want play the demo, or use this engine to develop, you can:
- download the pre-built binaries from the Github Action CI build or
- build locally
you can go go the action page to download build executables on desired platform.
for linux, you can run dependency.sh to install all dependencies.
for windows, you can use vcpkg to install all dependencies using vcpkg.json under manifest mode.
After generating the cache, you would found multiple Cmake build targets, with each one has clear explainations.
