I decided to temporarily abandon my endeavor with Mod API.

The reason is quite human and simple: I spent a lot of time on this project by now. However, since the New Year, I still have nothing playable to show off.

A couple of days ago I encountered a need to conduct yet another refactoring. Namely, I had to revamp the whole Config XML engine to decouple it, in order to allow an XML mod parser to reuse the same XML engine. I also made the extensible file accessor API so that to grant a safe, controllable but extensible access to different part of the file system. And for that, I also employed the XML engine to allow configs and mods to universally read files via trusted file system plugins.

Shortly put, I had to change a lot of code in the core code, but guess what amused myself? I didn’t have to make a single change beyond the core! My rendering engine, my texture atlas builder, my bootstrapper, my prefabs for game content – all left untouched and unchanged.

And then I realized that my efforts put into the architecture have finally played out. I have already built a clearly segregated layering architecture. I don’t need to invest any more time in fear of “if I don’t envisage it now it bites me afterward”.

The XML Mod API I was working on is not going away, for sure. But as the core is already extensible so far that even the Mod API was envisaged as just another C# plugin (not the core code), and I just have evidenced how flexible my current architecture is… I decided XML Mod API can be safely postponed. The Core Plugin API won’t probably change so drastically that it should block me from the gameplay now.

Since today, I’ll put my efforts into the really playable things.

Stay tuned!