Game dev #16: Releasing plugins
As you might have seen in the Creeper's Lab news this weekend, I released three more plugins to the public: kicks and bans management, Race Away and Grindatron. I first distributed five plugins last summer, which I wrote about in this space. I explained how an extra layer of polish was necessary before others could really use these tools properly, but you might be wondering what type of work that involves. Let's take a look!
A first important step is to ensure that the plugins can run on their own. It might seem simple, but some of these need me to do manual corrections once in a while, or handle some tasks by working directly on the database's records to complete them. This isn't something I want others to have to handle, so I usually need to complete and automate some processes. The bonus of doing this is that I no longer need to do these steps by mistake afterwards, so that's a win-win scenario!
On a similar topic of automation, the initial setup is important: something that I added when necessary is for each plugin to automatically create its database tables and/or configuration files when it first runs, so that everything is ready to go. I didn't include this step on the first versions I used on the Creeper's Lab because I didn't know what would be needed, plus needs grew over time!
Something important that many developers don't like to do is documentation. “Why should I be writing text when I could be writing code?”, many seem to think. In this case, it's important as any other server owners wanting to use these plugins need to know how to set them up and use them! A full documentation involves what each plugin does, how to install it, setting permissions, any in-game commands available, and possibly more. This gives people the feeling they can trust the thing to do what it's meant to, and hopefully reduces the amount of questions I have to deal with.
Another element is the branding: how to name them, and what logo to give them. I usually prefer a descriptive name so you can get a vague idea of each plugin's purpose from the start, with the IO prefix for Interordi. For example, the plugin used to synchronize player inventories across multiple servers is named IOSync. A logo isn't strictly required, of course, but it adds a way to quickly identify something and make it stand out. I developed a basic visual identity for all my server tools, so you can tell they're from the same family!
These are the main steps! Most of that work only needs to be done once, and I usually do it close to release. This way, I know exactly what's necessary and don't need multiple do-overs.
– Doctacosa