Dragon banner

Dragon & Fox
Collective

Fox banner

Echidna Engine

Published by Jady on 1/30/24, 12:59 PM

If you've been hanging around the server lately, you might've noticed a new SBEPIS channel: Echidna Engine. Echidna is going to be our in-house engine that SBEPIS will be moved to, off of Unity. I've been struggling a lot with how Unity's systems operate, between its limited layer and tag systems, its inaccessibility for planetary geometry, and just how dang slow it is, especially with their physics system. So over the past couple weeks I've been writing my own game engine from scratch in C# using OpenGL and BepuPhysics, and we're calling it Echidna after the Denizen of Space.

The primary immediate improvement over Unity is its speed. Unity only runs the majority of its code on one thread at a time, because it uses Component architecture, which means that entities contains components that do things. The only place Unity can use multiple threads at once is through its job system, which has Entity Component System (or ECS) architecture, where entities have components that don't do anything, but the world contains systems that can run on many components at once. Echidna fully uses ECS architecture to take full advantage of multithreading, and this can be applied to any system that needs it. The entire engine code only uses 4 files, World, Entity, Component, and System. Everything else is just sticking components on entities adding systems to the world.

If you're interested in poking through an ECS game engine, all the code is Free and Open Source on my GitHub.

Previous Next