An experimental cross-platform game engine created for personal and educational purposes
Ensure dependency submarkmodule in vendor
are built with the correct configuration
- Generate project files for configuration (
Release
orDebug
) by going tovendor/all/bullet3/build3
and running:./premake4 --double --enable_multithreading --dynamic-runtime vs2010
- Open
vendor\all\bullet3\build3\vs2010\0_Bullet3Solution.sln
- When prompted select to update project files to the latest toolchain version
- Build the
x64
static library for these projects:- BulletCollision
- BulletDynamics
- LinearMath
- Bootstrap build tools
./bootstrap
- Build static libraries with b2
./b2 --runtime-link=static --toolset=msvc-14.2 --variant=debug --runtime-debugging=on
./b2 --runtime-link=static --toolset=msvc-14.2 --variant=release
cmake -D BUILD_SHARED_LIBS=OFF -D ASSIMP_BUILD_ZLIB=ON CMakeLists.txt
- Open
Assimp.sln
and build both debug and release versions ofALL_BUILD
Event driven render lifecycleBasic 3D Mesh rendering- 2D shape rendering
- UI framework
Basic materialsBasic textures- Support normal maps
- Support displacement maps
- PBR
- SSAO
- Basic shadow mapping
- Multi-threaded physics
- Add built-in
PhysicsComponent
- Support collisions using
bulletphysics/bullet3
- Add forces to
PhysicsComponent
Support consistent core and client logging- Support logging to file
Basic template based ECSSupport multiple component combinations per system- Ensure memory locality of ECS components
Emit events for keyboard and mouse input- Support repeated keys
Basic event systemSupport sync and async built-in events- Support custom client events
- Support non-async custom client events
Basic support of common scene/model formats (meshes, textures and materials)- Load normal maps
- Load displacement maps
- Load bones
- Load skeletal animations (depends on loading bones)
- Add premake configuration
- Support OSX builds