The SwiftKit Database Manager

This is a bit of a blast from the past, but as the SwiftKit project is finally done and over with, I wanted to share some of the resources we used to maintain it (oh my, I did some crazy/bad stuff back in the day, but it’s very interesting to look at where you’ve come from and how you’ve grown, and the concepts are still pretty cool I find).


Let’s start with some backstory. SwiftKit was a toolkit for the very popular MMORPG RuneScape (the game is still around, and still quite popular, it even earned a Guinness World Record for the worlds larges MMO account numbers a while back).

The toolkit provided tools like skill calculators, easy access to guides, and even had some community aspects included with the inclusion of its built in IRC client.

I was part of the team that monitored, and maintained, the software, although the primary development fell to Strider3282, the rest of us primarily handled moderation, ideas, data, and similar, and that’s where this article spawns from.

SwiftKit it self had an exciting history, amassing millions of downloads, more than 3.5 million by the last officially available count, and with more than 1.2 million monthly uses at its peak (not unique users, I should mention, but impressive numbers none the less).

Database management

Screenshot showing the interface dashboard.

Given the size of RuneScape, it obviously had a lot of potential data to collect as well, and with multiple volunteers helping to maintain such data, a tool was needed to maintain it, but also to build the data files used by the software clients (these data files were used for the Android and iOS apps, as well as the Windows and MacOS clients).

The management portal has been closed off for years, but it’s time to share a bit of history I think.

What does this mean? Well, the code is going up on GitHub (as a matter of fact, it’s been pushed already before this post went live), but a view-only version of the tool has been put online to show off how the team worked with data in the end.

Open Source?

Yup, this means the tool is now open sourced, and we’ve included the data as it existed when the tool was last used, it may be more than 5 years since it was edited, but someone might find it interesting.

This also means it is possible for you to run it your self if you want to, for whatever reason, details on getting it up and running can be found in the GitHub repository.

Headlines from the tool

Personally, I’m really happy with the Google Maps integration which uses the Maps API with a build of the in-game map to allow you to find coordinate locations within the game, so when interactive locations were made for the toolkit clients maps, the person doing data entry could literally just click on a map to point out where the point of interest is.

The surprising bit is that although the Maps API is no longer valid… if you click away the warning, it still works 🤯

🐛 The manager has many flaws

The tool is certainly showing its age in many aspects, and it is very obvious that I’ve had a lot of personal growth, development-wise, since it was written, and that’s OK.

It’s important to do some things wrong, to know how to do things in the future, and although there’s never been any incidents with the tool (perhaps because it’s existence was not widely known?), I can not in good conscious tell you to run this on the internet without having gone through the code, and knowing what that may involve.

But with that out of the way, have at it, pick it apart, what would you do different, what approaches do you find to be interesting in all of this? Would you like to know more about how the tool came to be, and why some of the technical decisions were made?

👀 Have a look around

The button link above will take you to a read-only version of the manager tool, put online and public to show how the team worked, and honestly… I’m quite proud of the mapping tool and want to show it off!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.