Our Modern Technological Base

We have broken free of the DirectX shackles and smashed out of the C++ mold. We develop everything in the newer safer Rust language on the newer, faster and fully open source Vulkan API. Our code runs on Windows and Linux.

Our technologies translate over fairly easily to the C++ world. Rust libraries are system-level libraries just like C libraries and link into C or C++ code very cleanly. And GLSL shader code is quickly translatable into HLSL for DirectX 12.

Why Rust?

Rust is like C/C++. It is system-level. It is fast. It allows the programmer to be precise about memory usage, when to copy and when to reference. There is no garbage collector. It gives you raw pointer/memory access if you need it. It links to C.

I have only experienced a SIGSEGV (Segmentation Fault) once during my development of this game engine so far. And it wasn't in my code, it was in the AMD vulkan driver.

After about a year's worth of development, I decided to just let the game run for hours and watch it's memory usage. It never budged. No memory leaks, with no particular effort on my part to make that happen.

Sure, I've had panics. I write buggy code just like everybody else. But I could quickly see from the backtrace where the problem was, and I've always been able to fix it immediately. Some of these were "Attempt to subtract with overflow" and in some of those cases, it was not what I intended, so the language saved me from a subtle behavioural bug.

I do all my development on linux. When I compile on Windows it just works. And remember, this is a game and the hardware abstractions are very different on these platforms. I guess I'm using good libraries. I have very few conditional compilation statements (e.g. #ifdef windows), I think only one or two.

The client currently relies on 152 rust libraries. At least 15 of those are part of the engine itself, or written by us. Some of those link to C libraries, which I'm not counting. It was incredibly easy to plug them in and use them.