So the time has finally come to put money where my mouth is, and build a game engine to meet my crazy API expectations. In the last post, which I admit has been a while ago, I mentioned Project Melee and what that is turning into, but didn't say much about how I would build such a thing.
As it happens, I have had plans for a space shooter and melee combat game for some time now. Depending on mood, I'd find interest in one or the other, making baby steps at times and otherwise leaping into negative progress. That's R&D for you...
Around the time I was writing the previous post, shortly afterwards I made some leaps on how I would design the game engine of Melee. Really I just came to conclude that a traditional engine would not cut it, it would need to be a scripted engine that is lightweight, extensible and can arbitrarily define the game behavior with as little restriction or performance loss as possible.
As it happens Lua is the answer - I came across it early on in my programming experience, but didn't think much of it at the time. Years later it's features (or lack of) are precisely what I needed; Lua functions as an embedded scripting language, effectively substituting any machine-code / compiled code with (in my opinion) the smallest, usable functional and data-processing programming language.
Godsource is effectively a C++ program with graphics, sound and other essential machine-code bindings, like a typical engine. Unlike a typical engine it does not put these subsystems together in C++ aside from putting them in scope of eachother - instead the C++ side rushes to give full control to Lua, allowing Lua to control the entirety of the game engine. It is due to Lua's lack of domain-specific constructs that let the engine be defined in terms of subsystems alone, leaving most of the engine architecture up to the author of a game.
The engine is still nowhere ready but I am working on it actively here. Feel free to drop me a line if you think you might be interested in it or want early access to beta versions, or just have questions about it. I do plan on releasing most of the Lua source for the engine, for others to make their own games, but any profit of said games and I do ask for written permission from me first.
Games I am working on that are using this engine:
Terra Zero - Spaceship shooter game, emphasis on customizing the spaceships.
Godscar / Project Melee - Free-form fantasy melee combat game (see previous post).