written 26 Jul 2017
You may wonder in which direction the project is heading? Our overall roadmap is still true, but how do we plan to get there from this point? Lets discuss that by citing the roadmap:
Make a voxel based game that’s focused on massive multiplayer, a simple client with most of the game logic in the server. The server is extendable with plugins.
Our server is powerful and with Akka, it spawns most things inside Actors that scales perfectly over multiple cores, or possible even several servers. The plugins are powerful and have control over both the world, interactions with the player and even has control over the players UI. Most of the core logic that makes the game fun, and a game, are written with the plugin system. Some of the plugins are bundled with the server, others are written in Java and are hosted as separate projects under the Konstructs organization on GitHub.
When it comes to the server the thing we need to improve is ease of use, it’s a little hard to understand how to get started with a new plugin, and it can be a little tricky as a server administrator to configure and manage the plugins. To solve this we plan to:
We played with the idea to rewrite the client in something else, like Go or Rust but decided that C++ ecosystem and all the available integrations are worth a little pain. We also looked what options of graphic engines to use out there, but at the moment that’s not a focus. Future will tell!
The next thing is packaging, with release nine of the client we distributed a zip archive for Windows and a tar-archive, rpm, deb and snap for Linux. From PR client#240 and forward we will only build the zip and a snap.
If you like to maintain the project you will probably build it from source anyway, and the same goes for a PPA and so on. We started distributing the deb to target the popular Linux distribution Ubuntu, with the build system in place a rpm was easy to add (but that was never really tested). For a while we have hosted the game inside a new package format called snap, it’s build with security and easy of distribution in mind, exactly what we need.
Snaps allows us to support Arch, Debian, Gentoo, Fedora, openSUSE, Ubuntu and plenty more from a single package. To focus on just one package format for Linux makes our work easier and we can focus more time at the actual game. If you like to maintain a 3rd-party repository or be a real maintainer for a official one you are of course welcome to do so.
It is probably also a good idea to think about distribution under Windows, maybe it’s time to use a installer to give the Windows users their well known wizard type of install.
With the above done we plan to focus on gaming experience and fun, this work will mainly be focused around plugins, the official distribution and play.konstructs.org which is the official server.
Written by Stefan