Eccentric Engine

import { Engine } from 'eccentric-engine/Engine';
const game = new Engine(Config, customLifecycle);

(function() {
  game.start();
})();

This is the kind of thing that happens when I just let myself find my way through a project, a bit like doodling, or sketching, but with code. I think it’s fair to say that Eccentric Engine is an entity that emerged from my “I wonder if I can make an arcade version of Elite” experiment.

You see, Elite Arcade had reached a point where lots of the core mechanics were working and I realised that much of what I’d written was kind of general purpose code, at least from the point of view of building a game. So I decided to extract those parts out into a separate project, with a view to try to re-use it for some other ideas I had along the way, Astro Wars being one.

So somewhat ironically, deciding not to use an existing game engine for Elite Arcade has now led to the creation of… yet another game engine. Sorry, world.

But who am I kidding? This isn’t something that even deserves to be compared to other engines out there that were built specifically, and intentionally, to be just that. Maybe one day it will have matured from a tiny little engine with not many moving parts into something much more grand, and the next step on that journey will be taken when I migrate Elite Arcade over to it, because there are still quite a few features in there that haven’t been moved out yet.

If you want to know more about Eccentric Engine, or look into its code you can visit its home on Github and try it for yourself. There’s a demo application repo too (that currently has just one demo, I’ll add more over time) which shows the basics of what the engine can do and how to get it going.