Iris is a cross-platform game engine written in modern C++
Iris is split into components, each of which provides a cross-platform abstraction over native and third-party libraries.
| Component | Description |
|---|---|
| Core | Core classes for the library (e.g. maths) |
| Graphics | Rendering entities |
| Jobs | Task parallelism |
| Log | Logging framework |
| Networking | Networking primitives |
| Physics | Physic engine |
| Platform | Platform specific classes (e.g. windowing) |
Iris uses cmake as a build system generator and builds as a static library. By default Iris will build for the current platform using sane defaults.
mkdir build
cd build
cmake ..
make -j8The following table details the flags that can be passed to cmake during build
| Flag | Values | Description |
|---|---|---|
-DIRIS_PLATFORM |
MACOS, IOS |
Which platform to build for |
-DIRIS_GRAPHICS_API |
METAL, OPENGL |
Which graphics API to use |
-DIRIS_JOBS_API |
FIBERS, THREADS |
Which jobs API to use |
-DIRIS_BUNDLE_IDENTIFIER |
Preface string for sample bundle identifiers | |
-DIRIS_DEVLOPMENT_TEAM |
iOS development team id |
Not all flags are valid for all platforms, to make things easier also supplied are scripts for each platform which provide finer grained control and details over the various options.
The samples provide various example usages of the library.
After building the unit tests can be run as:
./unit_testsNote that the unit tests only tests the implementations and APIs set at build time e.g. if fibers was not configured as the jobs API then none of the fiber code will be tested.