This is my blog for my #devember2k18 project Screep Studio.
This is what the website says about it:-
What is Screeps?
It’s a pretty cool game but I haven’t played it for a while and wanted to get back into it. I also wanted to play around with the private server they released so I could develop my A.I without having to worry about being wiped out by all the top players on the live site.
On the live server you can play using your web browser or a custom client that runs as part of the Steam client. But, if you want to play on your own private server you have to use the Steam client as the web server part of the game was not open sourced with the private server.
And to make a long story even longer … the Steam client is “pants!” (YMMV but at least in my case I just can get it to run well on Linux) … so I’ve decided to have a go at writing a stand alone client that will at least be usable with the private server.
The Current Plan
Find out as much as I can about the Screeps API as it’s not officially documented. As far as I know there are two APIs required to build a client. The first is a REST API that seems to be used to query the state of objects in the game (e.g getting information about the world, the player, the rooms they control and their structure etc) and the second is a Websocket pub/sub API for real time game object updates. I’ve done bit of research and found some open source clients written in various languages with partial information on these API and since the private server is open source I should be able to get any missing info from the source.
The client will be written in C/C++ using the Qt framework because I’d like to be able to build it for Linux and Windows.
I actually started playing around with the idea on Friday 23rd so I put together a basic proof of concept just to figure out if I could render the terrain using data from the server.
Since it’s not December yet, I’m calling that a prototype hopefully it will look more like the following when it’s done (if I can find some free graphics because I can’t draw)
I, Shecks, will participate in the next Devember. My Devember will be a game client / IDE for the Screeps MMO. I promise I will program for my Devember for at least an hour, every day of the next December. I will also write a daily public devlog and will make the produced code publicly available on the internet. No matter what, I will keep my promise.
Right, I’m off to do some more “prototyping”