However, video, audio, input handling, and loading resources would be a lot simpler.
E.g. take a look at the input manager:
https://github.com/keendreams/keen/blob/master/id_in.c
You also wouldn't have anything like this:
https://github.com/keendreams/keen/blob/master/id_ca.c
You'd put some resources in a list and that's all the caching you'd do.
You should be able to do a game like this in less than 10k lines of Dart/TS/JS (2D Canvas, Web Audio, Gamepad API). Without using any external libraries or engines, that is. It also would be a lot easier to write, because all of the low level parts are gone.
Nowadays you see, it's wasteful to write an engine from scratch for a game like this. It was needed then, but it's a solved problem now. If you wrote 33k for a commander keen clone I'd wonder what you were doing.
1. a prewritten engine, and
2. some hypothetical language
each where you write commander keen with 3k loc. Where the hypothetical language has all the same stuff as the engine, it's just locked away behind a level of abstraction.
if you could write commander keen in 3k of javascript (with the aid of all the stuff that's in a browser) How is that different from writing 3k of C with nothing but this entire commander keen engine already written and ready to go?
What's are we calling an "advance", exactly?