Dev update 2019-09-02

  • Dev Team

    Hi everyone!

    Recently we realized that there is some misunderstanding in the community of how our official communication channels are intended to work. We have several of them, and information is often scattered among different channels so that it's not always easy to find what's going on with the project development currently. In this post we're going to explain it a bit, as well as present some changes to how it'll work in the future.

    We always had three main media to communicate with the community:

    The blog was used to announce big game updates and very important announcements. Forum is for ongoing discussions regarding them and other planned and WIP features. Slack is for regular talk and feedback; we rarely use it for important announcements.

    We also have additional media like Twitter, Facebook, Reddit, Steam, etc - they are fully supplemental, and we use for example Twitter to aggregate everything from other channels and post some short info.

    Also, the forum had separate sections like News & Announcements and Public Test Realm, and development updates were scattered among them.

    We admit that this system was overwhelming and non-intuitive for the community, and one could easily overlook some development update without looking to all channels. This is why we decided to change it a bit.

    We're discontinuing our blog. It will be no longer updated. All new posts will appear directly in the News & Announcements section of our forum, which you can discuss right there.

    All PTR changelogs are moved to the News & Announcements section. Everything else from the PTR section is moved to the General Discussion section.

    Dev updates are published as posts in the News & Announcements section. We use them when we have nothing new to show on the PTR for some time.

    Thus the News & Announcement section becomes the one single feed of important updates, whether releases, PTR deployments or free-form posts. You can also use our Twitter to receive other short unimportant messages from the team which we don't publish as separate posts on forum.

    Cluster migration

    Now to what we were doing recently. A lot of our efforts were put into redesigning the whole server-side infrastructure of how the game cluster works. We've prepared the migration from a dumb simple systemd-based pool of configurations and semi-automatic deployment to a Kubernetes containerized cluster with Docker images for every task, whether a runner process deployment, a backend app, a cronjob task, a utility microservice, etc. This is long overdue, because it not only allows us to fully automate the entire CI/CD pipeline for both the production server and the PTR, but also opens more opportunities to test new features.

    For example, recently we've used this new cluster to test Nodejs 10 and isolated-vm 2.0 on real production world data from shard0. There were no regressions in the userspace code, and the performance actually even improved a bit. We're satisfied with how it works, and are going to use it in the migration.

    Now we're going to deploy all recently developed new features like Strongholds, Factories, and new Store API to this cluster and again test it on real production world data, not just on the PTR. It's very important to do before we deploy Store refactoring to production because we want to see how breaking it might be for real userspace code. New Kubernetes cluster capabilities allow us to do that properly with little effort, this is why we postponed deployment of these features until we have it working.

    Currently, this Kubernetes architecture can be considered finished, although our devops engineer (a new guy in our team) is still struggling with some weird hardware issues on Hetzner i9-9900K servers, they are rebooting for no reason due to occassional Linux kernel panics. Once we find the solution to this problem, we will migrate everything there. I really hope it'll happen in September.


  • You should push links to these updates to steam. It's been 6 months since the last "News" post on your steam page