2016 Roadmap

After the Steam launch, many people got to know about Screeps and supported it financially. We thank all of you who contribute to the project’s development! It was very important for us to have an audience though not big, but such advanced and smart as you all are!

The successful Steam launch increased financial capabilities of the project. As before, our team consists of three people: Artem, Sergey, and Anton, but Artem now works on Screeps exclusively full-time, while Sergey and Anton help with important tasks on an ongoing basis. Now we are completely confident in our abilities to implement the majority of our plans that once seemed to us colossal and unfeasible, but now we have a clear vision of what to do next on the project. So we’d like to share some of our thoughts with you.

Below are some major features and areas that we either work now or will work on within the coming months. The order is not always chronological, but it gives a glimpse on our priorities. 

(Implemented features are colored in gray.)

Market system

The biggest feature to arrive in the coming weeks is a system for trading resources between players. This article explained in detail the way it would function. Aside from evident advantages of organized trade and social features it offers, it also allows to launch the system of Subscription Tokens – special in-game items to pay for CPU Subscription which can be traded on this same market. Each player will have the opportunity to purchase CPU using his or her game resources, thus essentially playing Screeps for free. 

Open source server 

A major milestone that was long awaited, this has been developed for several months to become the next phase of the project development after the market system deployment. We’ll release a game server to launch as a regular Node.js/Electron application accessible to any owner of the Steam version of the game via the server’s IP address. The server can be launched on a local computer in the single-player mode, on LAN to play with friends, or on an Internet server to create a publicly available game world. Unlike the official game server where MongoDB and Redis are used, the open-source version is being developed without external dependencies which allows to run it as a regular desktop app. However, since its code will be fully open, you can always add any customizations according to your needs and imagination. 

This step will include a planned release of the Steam version and closing the Early Access period. 

Better simulation 

The simulation mode hasn’t seen many changes since the early days of the project, so we’ve collected a lot of feature requests that we want to implement in the nearest future. We’ll allow you to save different simulation room states under different names, copy any room from the game world or a replay into the sim, import/export to JSON, playback a single game tick multiple times. Augmenting this with the local server will create new opportunities to debug and test scripts. 

Power Creeps 

This feature has been announced long ago, when the Power resource was first added, but we’ve been having many other important things to do and Power creeps are still on the concept design stage. By the way, it ought to be very well though-out and balanced since this is essentially a system of “heroes” with classes and skills, and they can affect the game balance dramatically. Having immortality and unique abilities, each Power creep will be an important player’s asset along with the Global Control Level that you can’t lose even after a complete failure in the game world. We have to think very thoroughly about each branch of class development so that they allow many equally advantageous lines and interesting dilemmas. 

Aside from some evident areas of Power creeps application (offense, defense, economy), we’ll introduce another one that wasn’t announced before. Here is what it’s about: 

Arena 

Starting from Room level 5, a new structure will be available called Arena. By moving any three creeps close to it, you will be able to teleport them to a special virtual room, separated from the game world and generated exclusively for your matches with other players in the 1 vs 1 mode. The system will pick an opponent for you among other players who have released their creeps onto the Arena, and a duel will begin between them. It will last until either one of the players loses his creeps or the time runs out. This room will be accessible for your scripts in the same way as regular rooms of the game world, but under a unique name. After the end of the duel the winning creeps get teleported back into the Arena structure. All the latest matches are viewable as replays in the special section of your Overview. 

One interesting detail is that you can release to the arena both the regular creeps (for new players) as well as Power Creeps with a special class Gladiator. It will give them some special abilities, and their behavioral logic will prove to be an interesting programming challenge. 

Arena winners will be rewarded with a special Arena Rating which will make a new monthly Top. You can either gain or lose points as an outcome of a match. The system will try to pick opponents for your creeps that best match your rating. 

Aside from simple rating points for wins, there will be a more substantial prize – a new resource called Pixels. 

Pixels & decoration 

Pixels are a resource tied to your account. You can trade it on the market, and it is required to purchase and create special decoration elements for your room. Having a certain amount of Pixels, you can place in your room a flag, tree, pattern, emoticon, inscription, or any other image available in our Pixel Store. You can customize images by size and color thus making any of your rooms visually unique. Such decorations won’t have any functional bearing, but you can customize them via the API for creating tick-based animations. Pixels will be tradeable not only on our in-game market but also the Steam Community Market

API versioning 

In your account settings you will be able to specify directly which script API version you want to use. Major API updates will be released alongside new versions, so to avoid breaking changes in your scripts we’ll leave the old version available for some time, while new players will be able to use new capabilities of the new version. It will allow us to implement new interesting features more flexibly and freely. For example, we can use modern ES6 practices when designing game objects. 

Below are some of the features without fully developed ideas, but we’d like to make use of them in the future. 

Achievements 

Quite an evident and desirable thing that yet requires a lot of development efforts. Important milestones in a player’s progress will be highlighted to match specific achievements visible in your website profile and on Steam. 

World events 

Certain events can happen in the world according to our pre-defined rules, for example, the emergence of hidden rooms, big boss creeps with difficult logic (or many special small creeps), unusual game events with their own APIs. Participants will be rewarded with game resources and unique profile achievements. 

Quests 

Along with arenas, we’ve thought of a possibility to build special quest portals to teleport creeps not onto a match arena but into some quest room where you are to solve some room-specific problem and get rewarded with Pixels or other resources. 

Native languages support 

This is possible only on a long-term basis, but we're still contemplating developing separate runtime game servers for the native processing of your scripts written in various languages like Python or Lua. This will also require separate API branches for each language along with the documentation. However, this feature won’t be available on a local server. 

We are sure that all of this will be successfully implemented thanks to your committed support. And, of course, we’ll continue our routine work on improving stability and server performance, fixing bugs and glitches, and adding minor features and updates not listed here. Please share with us what you think about our ideas in the comments below!