I think the first instance of games being separated from the "engine" so that you could make the game and it would run on all platforms that the engine ran out without porting was Infocom's Z-machine. http://maher.filfre.net/if-book/if-4.htm
There was an interesting article which I read a long time. It's linked to from the post above called "How to Fit a Large Program into a Small Machine" published in 1980.
AGI, SCI, Scumm etc. were all larger and more capable versions of this.
Z-Machine is also useful to point out because it's one of the clearest lines to draw from it to the modern JVM and .NET CLR. Whereas AGI/SCI/SCUMM all have very game specific virtual machines, Infocom's was Lisp influenced and even built it with business/enterprise apps in mind, though Infocom's one attempt at doing exactly that with their database app Cornerstone was a market flop. (It's heavily enhanced fork of the Z-Machine was also only released for a fraction of the machines the game Z-Machine supported.)
I still think it's an interesting question if Infocom had not tried to keep the Z-Machine proprietary "secret sauce" if it would have been a larger platform of general computing for much longer and broader than Infocom's own lifespan and primarily games focus. If Infocom had taken a Sun-like stance on the Z-Machine being a JVM ahead of its time and building a broader compatibility ecosystem "write once, run everywhere" might have been an earlier part of computing.
Comments
I think the first instance of games being separated from the "engine" so that you could make the game and it would run on all platforms that the engine ran out without porting was Infocom's Z-machine. http://maher.filfre.net/if-book/if-4.htm
There was an interesting article which I read a long time. It's linked to from the post above called "How to Fit a Large Program into a Small Machine" published in 1980.
AGI, SCI, Scumm etc. were all larger and more capable versions of this.
Also, a micro Inform6 compiler+library:
https://github.com/johanberntsson/PunyInform
Tristam Island as an example:
https://github.com/hlabrand/tristam-island
Also, ozmoo, a z-machine interpreter for the C64 (+other 8-bit machines) with several qualify of life improvements.
https://github.com/johanberntsson/ozmoo
https://ozmoo.online/
Z-Machine is also useful to point out because it's one of the clearest lines to draw from it to the modern JVM and .NET CLR. Whereas AGI/SCI/SCUMM all have very game specific virtual machines, Infocom's was Lisp influenced and even built it with business/enterprise apps in mind, though Infocom's one attempt at doing exactly that with their database app Cornerstone was a market flop. (It's heavily enhanced fork of the Z-Machine was also only released for a fraction of the machines the game Z-Machine supported.)
I still think it's an interesting question if Infocom had not tried to keep the Z-Machine proprietary "secret sauce" if it would have been a larger platform of general computing for much longer and broader than Infocom's own lifespan and primarily games focus. If Infocom had taken a Sun-like stance on the Z-Machine being a JVM ahead of its time and building a broader compatibility ecosystem "write once, run everywhere" might have been an earlier part of computing.