Can a 3D game be reverse-engineered, without infringing copyright, understood as source code, and transformed into a sufficiently general Intermediate Representation (IR) that allows it to execute on a runtime for which it was never designed?
The idea is to treat a game as source code, not as its runtime — the way a compiler treats its source files.
Instead of reproducing the original game engine, the game is processed through a compiler-like pipeline:
3D game → reverse engineering → frontend → semantic representation → IR → mr_tech runtime
The runtime provides its own geometry/topology processing, dynamic spatial structures, rigid-body physics, entities and independent rendering backends (OpenGL and software).
I've used the approach to experiment with multiple historical 3D game engines, including Doom, Quake, Jedi and Wolfenstein.
The interesting question for me is not how many games it can run, but whether the same intermediate representation can remain independent of the original engine as increasingly different 3D games are introduced.
Everything in the engine is implemented from scratch in Go.
I'd be particularly interested in technical feedback on the architecture and on how general the IR actually appears to be.