Modules
Halley is divided in a several sub-projects:
- engine
- core: Core features of the engine, including looper, API management, resources, and graphics engine
- audio: Audio engine
- entity: Framework for dealing with entities, components, and systems
- utils: Utilities library
- net: Networking library
- ui: UI library
- plugins
- asio: Network/Asio implementation
- dx11: Video/DX11 implementation
- opengl: Video/OpenGL implementation
- metal: Video/Metal implementation (experimental)
- sdl: System/SDL, Input/SDL and AudioOut/SDL implementations
- winrt: System/WinRT, Input/WinRT, Platform/WinRT and AudioOut/XAudio2 implementations
- tools
- editor: Editor UI
- cmd: Command-line interface to tools
- runner: Provides an entry point for execution and dynamic reloading. Highly experimental.
- tools: Editor tools to generate files and assets
- tests
- entity: Stress test of entity system
- network: Stress test of network system
- samples
- (The samples project was taken down due to being too outdated, sorry about that!)
Tools required
- CMake 3.10+
- C++14 capable compiler:
- Visual C++ 15.3 (Visual Studio 2017)
- Clang 3.5
- GCC 5.0
Library dependencies
- Engine:
- Boost 1.66.0 (header only)
- OpenGL [optional]
- SDL 2.0.2 (2.0.7 recommended) [optional]
- Windows 10 SDK [optional]
- Also required if building Tools:
- Boost 1.66.0 libraries: filesystem, system
- Freetype 2.6.3
- yaml-cpp 0.5.3
Set up
- Ensure that all dependencies above are set up correctly
- Build with CMake
- Typical:
cmake -DCMAKE_INCLUDE_PATH=path/to/headers \ -DCMAKE_LIBRARY_PATH=path/to/libs \ -DBOOST_ROOT=path/to/boost ..
- Engine only:
cmake -DBUILD_HALLEY_TOOLS=0 -DBUILD_HALLEY_TESTS=0 [...]
- Typical:
- Run
halley-editor tests/entity
(or whichever other project you want to test) - Launch that project
Documentation
The full documentation is available on the Wiki.