a cross platform 3d engine using c++98
A cross platform 3d engine using c++98
Dev Wiki: https://github.com/crazii/blade/wiki
Chat Channel: https://gitter.im/engine-blade/
Coding Standard: CodingStandard.md
Why re-invent another wheel and why it is open sourced?
This project started about in 2010 with the purpose to study the tech behind 3D engines.
Some of its idea is learned from Ogre, some from Nebula Device, some from in-house engines through my job. Some problems solved in real-life work have also been put into it.
Thanks to its explosive growth, Blade was open-sourced in Dec/2018 because it cannot be accomplished by any single person. Hopefully someone could help to improve it so that it may be put into practical use in the future.
Any bug reports, suggestions, criticisms are welcomed. If anything you can learn from it, that'll be great too.
Crossplatform architecture, easy-to-add support for more platforms. The supported platforms are:
Supported compilers: * MSVC * GCC * Clang
Plugin-based framework, maximum decoupling and flexible customization.
Task-based parallel system. Each subsystem has own tasks and cooperate using parallel state data.
Multiple rendering API support:
Editor (to be improved)
Tool chains (CLI):
Fast build/compilation, for fast prototyping/iteration. Effective LOC 200k, takes 1.5 min on i7 CPU for Win32 debug, Android takes about 5 mins.
Data binding to XML (non-intrusive); simple binary XML format.
You need Visual Studio 2015/2017 (latest update), with desktop develepment, C++ cross platform (mobile) develeopment, MFC development installed. If any project failed to load, right-click the project and click reload to check the error messge to see which feature is missing and then re-install Visual studio with required feature (only newly required features are installed, it could be fast).
git submodule update --initto init git submodule (art resources).
Open Denpendices/build/VC14.1/ALL/AllDenpendency.sln and batch build all (MENU:Build => Batch Build..., press "Selected All" and then "Build"). At least Release|Win32 is needed for tools.
Open AllDpendency_Android & batch build all if you want to build Android version.
After that, you probably don't need to touch that solution(s) any more, exept that new dependencies were added.
There're VC14 (VS2015 projects) too, if you want to debug & run on Android, VC14.1 (VS2017) is recommended, since older VS version may have bugs on installing packages & start apps.
Build/VC14.1/Tools.sln, build only Release|Win32. Blade uses win32 tools to get maximum compatibility.
Build Blade & Run
Build/VC14.1/Blade.sln(or Blade_Android.sln for android);
Note: currently OBB is needed to work. It is not convenient, and a network file device reading host obb is planed to be added.
In the BladeAndroid solution , `Terminal Projects/Data/PackagesAndroid
will build an bpk package located at:Bin/main.1.com.blade.games.obb`. * run the app for the first time, and it will crash on not obb found, but it will create essential folders i.e. /sdcard/Android/obb/com.blade.games/
## Configuration panel
## Editor: model viewer
## Editor: scene & terrain editing (512x4CSM)
## Terrain height brushing & config
## Dual quaternion animation: bone visualizer & bounding visualizer
## Package browser
## Language Editor