Post

Designing the #Lua #scripting APIs for Sovereign Engine is one of my most challenging tasks yet. How do you anticipate future needs and design something that is both developer-friendly and future-proof? I'm going with a dogfooding approach. A thread...

0 reposts1 like

Sovereign is an open source 2.5D #MMORPG #engine, in a similar vein as Mirage and Intersect. The idea is for a hobbyist or indie dev to be able to pick it up and immediately start building something. That means we need a scripting engine so that you don't need to dive into the core of the engine.

A common pitfall with easy-to-use #scripting engines is that they aren't flexible enough to do everything you want, or the APIs were designed with the wrong #abstractions that makes it cumbersome to do anything but simple toy examples. This is something you have to overcome early in the design.

You can try to anticipate future needs by writing #UserStories, listing out nouns and verbs, all the classic methods. This is what we all do, right? Suure. But here's the problem: even if you do this rigorously, you don't know what your real needs are until you are using the scripting APIs yourself.

That's where #dogfooding comes in. It works for #startups, it can work for #opensource game engines too (I claim with no proof... yet). The idea is to use the tools you are building for real development early and often, creating an internal feedback loop for continuously improving the APIs. Simple?