As an MMORPG created by such a small team it's important that we utilise tools and technologies that make our workflow fast and efficient. As a game focused on a retro aesthetic it feels similarly important that the title runs on low end hardware.
The entire server software has to make changes to a live database whilst simultaneously handling 1000s of requests per minute. Go is perfectly suited for this: the syntax forces code to be clean and efficient with no unused imports or "broken windows". We use sqlite over MySQL to ensure that our database is extremely fast to write to and easy to backup and secure.
How does Go handle an entire MMORPG? Extremely well..
In a recent test we found that at Digital Ocean's cheapest server level and with as many as 30 concurrent players bandwidth and CPU usage didn't hit anywhere close to max usage and that players discovered little to no lag: even on slow connections!
For us Go was the perfect choice to build a game's backend out of and we expect to be using it for all of our future titles.
LÖVE is an open-source framework that allows you to create games using Lua. Similarly to Go Lua is extremely efficient and lacks the bloat of other similar languages.
Using LÖVE we can focus primarily on gameplay functionality and creating the precise atmosphere needed for our world and the advanced graphics functionality we'd otherwise spend hours coding comes right out of the box.
Spritesheets, font rendering, shaders, positional audio... it's all here and is extremely easy to work with.
As a tile based game BrawlQuest utilises canvasses to render the world only once rather than once every 60 seconds. We can balance this and draw distances to allow users a host of accessibility options ensuring that even the lowest spec machine can run the game without problem.
Its speed and extensive community offerings allow us to prototype new ideas and try things out that would otherwise take several thousand lines of code and the benefit of that really can't be overstated.
A real use case for open-source software?
It's wonderful to be creating using open-source community-led tools and allows us to set our workflow exactly as is required for this project.
There are many community libraries and packages that BrawlQuest depends on for its function and each one has offered us a lot of great tools to improve the game without huge amounts of code.
I'd highly recommend both LÖVE and GoLang to anyone working or thinking about working in games.