Started from the bottom... and well we're here

Docker | Screeps Private Server

Project Website

Screeps is a game that comes and goes out of my life, it is some of the most fun I have while also driving me insane more than any hobby has a right to do.

You surely remember Age of Empires, Rise of Nations, Galactic Battleground. The classics of RTS, but sometimes the units were just incredibly stupid. Opting to take the long way around the lake instead of the obvious shortcut between trees!

Turns out the developers of Screeps felt the same way. Screeps at it’s core is an RTS with you in control of the units actions. It relies on Javascript code to control small entities called Creeps. They are your units, a harvester, a miner, a fighter… really whatever you can cobble together in code, it can do.

My gripe with Screeps is the high cost of entry for an educational purpose. A classroom would need to buy a copy for each computer but they would also need to pay for a subscription to the online multiplayer aspect. The multiplayer aspect while filtered isn’t guaranteed to be friendly either.

The developers have provided a way to run a private server, but unsurprisingly it’s difficult to do. The documentation is outdated, old and a lot of the dependencies are “at risk”. It’s a technical gate keeper for those attempting to learn or perhaps teach others.

I’ve produced a docker image that enables you to quickly run a Screeps server from any machine you can install Docker Desktop on. It’s easy enough to do at scale as well, it will start to falter past 60-70 users but at that point whoever is operating the server should be capable of load balancing multiple processes.

You can download the docker image manually or using the docker-compose.yml file in the GitHub repository. The syntax is pretty straight forward and the file in the repo has the associated steps to running a server.