Skip to content

Iridium is a 3D game engine for Linux and Windows, built for the Leto project.

License

Notifications You must be signed in to change notification settings

israfiel-a/iridium

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Iridium

Iridium is a game engine written entirely in C, designed for the purpose of efficiency and compression. The engine supports only 3D projects, and does not have a GUI. Iridium is cross-platform--currently only between Windows and Linux, although that list may expand. It relies minimally on outside libraries, instead opting to craft solutions moulded exactly for our use-cases.

APIs

Iridium provides APIs for loading files, creating windows, handling keys, and many more tasks. Each of these APIs is fully documented by the time they hit the stable branch, so you shouldn't run into any problems there. However, if you do, please reach out to a maintainer and we'll get you straightened out. All APIs are created in pure C, but are C++ compatible.

Supported Systems

Many of our processes are designed specifically for the systems we target, so it's likely you'll have little luck getting Iridium to work properly on unsupported operating systems. Currently, the engine aims to be fully compatible with x32, x64, and arm64, but a list of the currently supported architectures is below, alongside the OS support list. "X" represents an unsupported but planned system, while "O" represents a fully supported system.

Operating Systems

  • Windows
    • Windows 8 [X]
    • Windows 8.1 [X]
    • Windows 10 [X]
  • Linux
    • X11 [X]
    • Wayland [O]

Architectures

  • x86_64 [O]
  • x86_32 / x86_86 [X]
  • ARM64 [X]

Compilation Instructions

Compiling Iridium is designed to be as simple as possible. However, the project uses CMake as its build system, which means you must have a CMake binary installed in order to properly build. Beyond that, the project needs very little; simply input the configurations and flags you want, and then sit back and watch. The whole process should look something like this;

cmake $IRIDIUM_ROOT -B $BUILD_FOLDER # plus any flags like -DCMAKE_BUILD_TYPE
cd $BUILD_FOLDER
make # or the build tool you've chosen instead
cd Iridium && ls

# Should produce an output similar to:
# .. LICENSE.txt libIridium.so Iridium.h [API header files...]

Usage Instructions

Using Iridium is meant to be as simple as possible--in fact, if anything is unclear or poorly laid out, open an Issue--so usgae is truly not that difficult. Every Iridium function or type is prefixed with "ir_" and then their name. Iridium, while being written in C and following typical C design patterns, is compatible with C++ projects. A very brief example of how one may use the Iridium engine is as follows;

#include <Iridium.h>
#include <Reporting.h>

int main(int argc, char** argv) {
    ir_error_code init = Ir_SetupEngine(argc, argv);
    if(init != no_error) {
        Ir_ReportError(init, IR_FC);
        Ir_TerminateEngine();
        return -1;
    }

    // Display function initialization code goes here.
    // Rendering setup code goes here.
    // Object set--whatever. You get it.
    Ir_RunDisplayLoop();
    Ir_TerminateEngine();
}