Uncategorized

Important change: The same CPU subscription for everyone

This change will take effect on January 22, 2016.

Dear friends, serious changes coming. We decided to change the payment model and get rid of the CPU Credits system completely.

As many of you have noted, the CPU Limits/Credits system created some degree of inequality between different players and their abilities. This inequality was intended to satisfy CPU usage demands of various groups of players: newbies with a single room and veterans with vast empires. Now we believe that we finally know how to make the cost equal for all without losing the possibility to develop one’s colony.

In a short time, your CPU Limit will depend on your Global Control Level rather than money.

Each new player will be given a limit of 30 CPU. This limit will increase by 10 CPU upon achieving each new GCL, but not more than 300 CPU. After reaching this value, it will stop growing. For example, with GCL 10, your limit will be 120 CPU. It cannot be adjusted manually.

Not only this will tie the size of your empire and your computational needs to the available server resources, but it will also create a new in-game motivation for developing your Global Control Level.

It is of note though, that simply registering a new account gives just a minimum starting CPU amount, so abuse through registering multiple accounts will be seriously hindered.

Another important point: since you no longer pay for your CPU Limit, a new game time subscription equal for everyone will be introduced. The cost of subscription is as follows:

The Twitter Promo will continue, giving you 15 days of free playing, but without repeating each month.

All the current Credits will be recalculated into game time days based on Cr90 per day.

We hope the majority of you will like this new payment system that creates equal opportunities of development in the game.

UPD: Your Credits will not be converted into subscription automatically. You can use your Credits under the old scheme as long as you wish, and convert them into subscription days at any time using this page. New orders can be placed only under subscription.

UPD2: There is now the Steam version of the game which provides lifetime MMO access with 10 CPU limit.

Game situation review: December 11, 2015

A year has passed since the initial launch of the game. We want to thank everyone who was patient to get over radical changes, focus shifts, and other transformations. And now there is the Public Test Realm allowing both you and us to test new features in a smoother way or just have some fun with reduced requirements to the controller upgrade progress. Please take note that the world data has been copied again. We plan to do it roughly once a week from now on.

But let’s get back to the world and capture the current borders of players’ domains. Currently 83 players occupy 339 rooms out of 1152 available.

The controller upgrade has been limited to level 8 last season which resulted in a somewhat hasteless progress pace. To compare, both the October and November charts by danny[12]:

Current chart link: https://www.cs.cmu.edu/~dannyz/screeps.png

Despite this, the top 3 players have managed to get even more Expansion Rank rating points, namely 1161M, up from 999M in October. NhanHo[20] tops the rating for the 3rd season straight. It’s very likely that his 424M record will stay for long. Here is the November top:

 Due to temporary absence of alternatives in using “extra” energy, November saw massive walls and ramparts buildup. Players’ achievements in mounting defenses are seen at the following chart: 

 This requires summing up all the hits of the rooms controlled by players. To get a better understanding, let’s take the best defended room from each of the top players (by bulding):

[W6S13] Ramparts 2662M + walls 1248M = 3910M.

AzuraStar[19] first focused on defenses likely because of scattering of bases all around the map, since the same trend is seen with other players who pursue pinpoint expansion. And since this room is situated in Hernanduer’s[18] surroundings who has seized the entire sector W5S15, it is fortified against not less than a nuclear strike: part of the rampart reaches nearly 200M.

[W2S12] Ramparts 797M + walls 1409M = 2206M.

Hernanduer closes an important intersection by this room, and a significant number of free sources is all around. Plus, due to a large perimeter of the room he needed to build 132 squares with 16,7M hits each on average. Hernanduer did not waste time and equaled AzuraStar in the number of defenses, while monopolization of the sector made his domain almost invincible.

[W19S28] Ramparts 1793M + walls 3048M = 4841M.

This room is at the end of nowhere (remote South-West of the map), it is msvsergey’s [12] deep rear. Some walls here reach 100M. This room is number one in the world by the energy used for developing. Allthough, if we look at his other room W18S23, the average wall height there is even greater.

This month's featured video is the battle Vision[12] vs retired[5]:

And, of course, the most interesting latest feature has been the launch of a brand new aspect of the game, Power hunting. A new Power Rank is introduced for skilled players that have already mastered basic principles of the game. We hope this will also be very interesting to watch as they fight for domination in this new metrics. We’ll be covering players’ achievements here in our future reviews.

Power resource and new features

Dust-off your spawns, feed your creeps well, and stock up on energy - it’s time to go hunting!

We have launched the biggest gameplay update since the project launch. A new strategically important resource has emerged in the game called power. Producing this resource will require much more effort (both from your creeps and your programming skills) compared to energy mining, but the result is worth all the effort. Now only gathering and processing this resource are available, but in the future you’ll be able to use accumulated power points to build mighty power creeps with unique capabilities. When they appear in the game, you’ll be able to leverage all the processed power that will have been stored in your account from this day on.

Learn more about power

New structures

Three new structures have been added for players to construct:

  • Tower. Available on RCL 3 and higher. They are charged with energy and allow to remotely attack or heal creeps and repair structures. Their effectiveness is slightly lower compared with the same actions performed by creeps, but towers work across the entire room letting you save CPU on pathfinding and movements. The most effective work is achieved within 10 squares, then its action falls off within 40 squares. RCL 6 gives you one more extra tower, and at RCL 8 you have 4 available towers.
  • Observer. Available on RCL 8. Very useful for locating power bank sites, ground reconnaissance, and enemy movement tracking. With the help of the observeRoom method, you can schedule collection of data from the distant room in the range of 5 rooms from the observer location. The next game tick will make the Room object of the specified room available within your script. The more observers you get, the more rooms you can scan per tick.
  • Power Spawn. Available on RCL 8. An important structure allowing you to build power creeps in the future, when they become available. Currently it allows to processPower into your account. Each power unit requires 50 energy units. Processed power is registered in your account on a permanent basis in the same way as your Global Control Level.

Updated profile page

The profiles design has been improved. Now, when checking another player’s profile, you can see basic parameters of his or her economy. Besides, there is no need to ask where he is on the world map since all his rooms are displayed in his profile in the same way as at your Overview page.

See also: Changelog 2015-12-09

Public Test Realm

The Public Test Realm is a stand-alone game server with its own world data, players' scripts, memory, and settings. It has been created for two purposes:

1) testing changes and new features upcoming to the main server,
2) providing players with a platform to safely test their scripts in a multi-room environment.

ENTER

API Reference

Changelogs

Both World Mode and Simulation Mode are available on PTR. All the game world data are periodically moved from the main server to PTR, and old PTR data is then wiped (including players’ scripts). Don’t use PTR for prolonged storage of your code!

Registering new accounts on PTR is blocked. Each time after data is copied from the main server into PTR, existing players accounts are copied as well. Your account CPU subscription is deactivated by default. Click the Activate button on the order page to enable your free PTR subscription for 24 hours.

Please take note that construction of any structures on the PTR costs only 1 energy unit and the controller upgrade requires 1000 energy units. It allows quick creation of infrastructure you need for testing purposes.

If you use grunt-screeps for committing your scripts from a local machine, you can provide ptr: true option in order to commit your code to the PTR.

Game situation review: November 9, 2015

Over the last season a lot more space has opened up and with this new space came a new method to further protect new players. All newly opened sectors this season have had a temporary wall that allows new players a chance to settle down in the sector before more established colonizers from neighboring sectors arrive. Especially interesting is the sector W15S15 which became a border between a newly-discovered novice sector W15S25, the players who had initially settled it while it was still walled off, and the rest of the world.

Here’s the world as it looks now:

Currently, there are two novice sectors. The timer in W15N5 ends in 940k ticks (~24 days), the timer in E25N5 ends in 240k ticks (~6 days). Once these two sectors are up, a new novice sector will be opened.

Similar to September, the Expansion Rank leader in October is NhanHo[17], while DarkTrooper7[16] has quickly surpassed Hernanduer[16] just 3 days before the season end. He is now claiming the first position in November. Here are the October and the early November tops for comparison:

The progress dynamics is well seen on danny’s[10] chart:

The current chart link: https://www.cs.cmu.edu/~dannyz/screeps.png

Hernanduer has seized the sector W5S15 almost entirely by erecting a well-thought infrastructure to mine all accessible sources. We already tweeted photos of advanced road networks. Now here is a comparison chart of roads of different players:

The season was marked by two challenges in CPU optimization (CPU cost, Memory parsing), which is achieved by players via both code restructuring and strategic solutions. Those who couldn’t get prepared for the change got frozen and went for retooling. We hope to see those who left return in coming seasons. The vacant space was quickly reclaimed by players with more flexible methods.

This hot competition scene saw some players forced out of their domains.

One of them was Persane[12]. When he was on the brink of surpassing Ranger[13] in the rankings, the latter struck and wiped him out. Similarly to xzhang[9], Persane didn’t mind building walls between his rooms (he built only outer rooms), which allowed the enemy to stage a blazingly fast attack. Everything was destroyed here:

Ranger also caused a lot of trouble to TooAngel[8] by demolishing the majority of his rooms and preventing him from rebuilding them. Later, together with ThyReaper[7], they pushed GiantZoc[5] out of his bunker.

Previously, The_General[10] entangled the sector E5S5 as an octopus. But now TooAngel has more badges here, and the last badge of The_General in E7S5 serves for reserving purposes only. Meanwhile, GiantZoc has completely moved into a new sector W15S25.

In this sector, retired[5] has fallen in an unequal battle with Hernanduer. He had to move farther from the leaders colonizing the sector (to W13N9).

Thanks to history playback feature you can now watch and share battles that happened in the past. For example, Rumatah[8] vs Vision[10] - link. A month has passed since that epic battle, and the links are certainly outdated now. That’s why, starting this month, we’ll record a video (screencast) of one featured battle per month and publish it on our YouTube channel. For this month, we've chosen the Ranger vs Persane battle mentioned above.

Subscribe to our channel to not miss a single interesting piece!

 

Important change: Memory parsing

Starting from October 26, 11:00 UTC, the Memory object parsing will run inside a game script upon accessing the global variable Memory for the first time, and not on the server side before the script launches, as before. It means that the CPU cost on executing JSON.parse will be counted as your script expense.

This change will mostly affect those players who use Memory to store large amounts of small objects that require a long time to parse. Optimizing Memory structure instead of merely saving its volume will now become an essential part of the game process.

You may use the following code to check how much time your current Memory structure parsing takes:

var stringified = JSON.stringify(Memory);
var startCpu = Game.getUsedCpu();
JSON.parse(stringified);
console.log('CPU spent on Memory parsing:', Game.getUsedCpu() - startCpu);

Also, we are going to allow using raw Memory data as a string object, in case if you want to implement your own serializer/deserialzer instead of JSON.

Important change: CPU cost of API methods

The world of Screeps is in constant development, and so are players' achievements in controlling their colonies. Some players have managed to achieve such a high level of optimization of their scripts that they now rule hundreds of creeps simultaneously. We are really impressed by their performance. However, it created a new situation that requires our interference.

The matter is that when a player optimizes control of a large number of creeps so that they stop spending CPU, he or she becomes capable to create a large number of game objects that puts the server under a huge pressure. Our CPU payment system was developed in order to let players compensate their expenses on the server load they create and to encourage optimizations. However, this new type of load becomes unaccounted. It leads to trouble for all the players since we can't scale our servers in such circumstances. We were considering various ways to solve this problem including limiting the number of creeps, but finally decided to act more in the spirit of a programming sandbox game.

Starting from October 12, 11:00 UTC, each API method that changes the game object state (like move, transferEnergy, createCreep etc.) will consume exactly 0.2 CPU rather than zero usage before. The CPU cost of such methods will be marked as CONST in the documentation. I. e., it will look the following way:

var startCpu = Game.getUsedCpu(); 
creep.move(LEFT); 
console.log( Game.getUsedCpu() - startCpu ); // 0.2 
creep.transferEnergy(spawn); 
console.log( Game.getUsedCpu() - startCpu ); // 0.4

If the object state change has already been requested in the current tick, the CPU won't be spent (UPD: this statement is not valid anymore).

If you have 100 creeps, your expenses to move them will be 20 CPU even in the case you don't use any pathfinding computation. By optimizing your colony so that the same functions are performed by 50 creeps rather than 100, you will get the effectiveness increase by 10 CPU.

Therefore, saving CPU will require you to optimize not just code algorithms, but also the game tactics itself, using creeps, and enlarging their bodies.

While we understand that all the players will see CPU usage increase in their scripts, the game in general will benefit from it: we'll be able to calculate our server expenses and scale them more precisely, which will give us faster ticks and better gaming experience for all the players.

To compensate for some negative after-effects of this change, three more edits will be implemented in parallel:

  • The maximum creep size will be increased from 30 to 50 parts.
  • Roads will be possible to build with any RCL, even zero, i.e. in neutral rooms and rooms without a contoller! You'll be able to build paths to your remote mining area by decreasing the required number of MOVE body parts and enlarging carrier creeps (the optimal configuration for a carrier on a road is 16M 32C).
  • During a limited time period after this change, a special promotion will launch: the 14,000 CPU Credits package with 40% OFF the base price of a Credit, so you pay just $28! This promotion will last one week, till October 19.

 


 
UPD: The CPU change will be implemented gradually as the cost will slowly increase according to the schedule:
  • October 12: 0.05 CPU per operation
  • October 14: 0.1 CPU per operation
  • October 16: 0.2 CPU per operation

Game situation review: October 5, 2015

The September season has passed. A new sector E15S5 was opened and was immediately populated by strong players. In order to let novice players get accustomed, a Novice Area was opened in the special sector W15S25. After some time, and it will be accessible from the main map. We plan to keep one dedicated sector as a Novice Area at any time, it will be moved as activity increases.

А new sector E5S15 is also open and gradually being occupied. Here is the current map view:

The season leaders are NhanHo (GCL 12), 1st place, and DarkTrooper7 (GCL 12), 2nd place. They did not get involved into serious bickering, but focused on embracing the maximum number of sources which allowed them to beat top players by roughly 3 rooms. Here is the September Top 10:

The last season (August) leader, chris (GCL 8), did not claimed the Expansion Rank leadership this time and finished as merely the 19th. A monthly result is a very rough approximation of the power balance. Thanks to user danny (GCL 7) who made an auto-updated chart to monitor users progress in real time. Here is the September chart:

This chart shows not only one-on-one duels but also individual status of players who, for example, fell into a coma (strict horizontal line), like Rumatah (GCL 6) 09.20, waited to attack, was attacked, or self-destructed, like Aeneas (GCL 7).

For the bronze, AzuraStar (GCL 11) clashed with Hernanduer (GCL 10), and some fighting ensued as well: AzuraStar wiped 3 Hernanduer's rooms:

Aftershocks of this battle may still be seen: Hernanduer's controller in E12S5 is imprisoned - AzuraStar besieged it with walled rooms and doesn't let the downgrade timeout to expire. It's an interesting tactics that we'll cover some time later.

Previously, Hernanduer were siegeing a DunknDonuts' (GCL 3) stronghold in W7S14 for several days. The offense turned out to be successful: the room was included into his domain.

Then Hernanduer supported the campaign against abnessor (GCL 5), destroyed strabino (GCL 4) and Gipphe (GCL 2). So he may be awarded the title of the warrior of the season, and "his" sector, the flashpoint of the season.

Abnessor's defeat was initiated by the red-white-blue alliance. The same fate loomed for all the rest in the sector W5S5, and now there are only 2 competitive rooms in it: W1S4 (theAEmix, GCL 8) and W1S3 (unimatrixZero, GCL 4). We're definitely having a monopoly. If we show sectors schematically according to their total RCL leader, we'll see the following picture:

* Reservation is equivalent to level 2.

We can see here a telling situation: the three-colored devour three sectors: W5N5, W5S5, and W15N5. For example, here is how Vision (GCL 7) does that:

In the sector W15N5, Vision has stepped into a fight for dominance over the whole sector. Initially, sources in the center of the sector were controlled by Rumatah who was gathering them into his remote colony in W14N7, but Vision started to systematically drive him out of the sector. First, he blocked his mining activities in remote rooms, then he besieged the W14N7. Rumatah tried to counter-attack in Vision's rear rooms by destroying his infrastructure in the W12N7 and keeping doing the same in other rooms as well. This battle is still ongoing at the moment.

Room history playback feature

In this review, we are happy to announce a new major feature that many players have long waited for.

Would you like to see how your creeps have acted for the past several days while you were absent? You were attacked, and now you need to review how the attack had gone and how your defense had behaved? Or you just like to watch your colony the 10x speed?

Now it becomes possible with the room history playback. All the actions history in all the world rooms for the last 500,000 ticks (8-12 days depending on the tick duration) is saved and available for review by any player. Click on the "Replay room history" button in the room properties to playback.

You can set the review speed from 50% to 2000%, pause, rewind to any moment, and review any objects and their properties in the same way as with live objects in the game.

Moreover, history playback is available without signing in. By using the "Share" button, you can send a link to a specified moment in the room to anyone, and he or she will be able to watch the course of the game without having a Screeps account.

To demo this function, we've prepared a collection of links to some interesting battles for the past several days:

If you have interesting moment in your history, share them in the comments below the article!

New main loop architecture

We have just implemented an important feature which affects how the runtime engine treats your script modules. Now we have two module architectures available at the same time.

What is new here is the way you main module is executed. In the old-style architecture, it is executed every tick, and every module required from it is also executed every tick. In the new architecture, your main module should contain the module.exports.loop function which is executed in a game loop, while the rest of the main module contents are executed only after a new global is instantiated. It's the same with required modules - their contents are executed only once per global instantiation, after which they get cached. You have to export some functions from your required module and run it explicitly from the main loop. The architecture is switched automatically upon detecting module.exports.loop function in the main.

Here is a comparison table:

OLD NEW

main:

// executed every tick

var mod = require('mod');

mod.foo();


main:

// executed on new global 
var mod = require('mod');

module.exports.loop = function() {
    // executed every tick
    mod.foo();
}

mod:

// executed every tick

module.exports.foo = function() {
    // executed every tick
}

mod:

// executed on new global

module.exports.foo = function() {
    // executed every tick
}

This new style is now recommended. It allows caching of your modules which drastically affects your script performance. Also, you can perform some initial operatons in your modules body (e.g. extending prototypes) which won't be executed every tick, thus saving your CPU.

Game situation review: September 5, 2015

The first season of the release version of the game has come to an end several days ago. Although it was not complete, players have already managed to build inpregnable strongholds, defeat less fortunate strongholds of others, and even experience a lot of interaction with each other in their mutual interest.

There are 9 opened sectors at the moment:

In our previous Early Preview reviews, we registered only top 10 players, though this time we have many more of them, so we'll do the Top 30:

The Expansion Rank August leader is chris (GCL 7), AzuraStar (GCL 7) follows him closely. The common thing about them is that they both have wiped the bronze leader DarkTrooper7 (GCL 7).

Therefore, DarkTrooper7 has become the most often killed player among the leading players, and besides, his defeat became the first military cooperation. Here are some screens of this battle:

It's noteworthy that Rumatah (GCL 5) has travelled very far to carry out his attack, so that his creeps had only 100-200 ticksTiLive left as he approached his target. Rumatah's other thrust against aggressor qthree (GCL 3) from a recently opened sector W15N5 resulted in a very close and equally successful attack.

Later on, chris focused on upgrading his controller and wasn't seen in any battles. Now he's been occupying some distant parts of the map:

After the sector E15N5 was opened, AzuraStar immediately tried to claim it, but DarkTrooper7 moved out to prevent it - and an epic battle broke out, AzuraStar vs DarkTrooper7:

After this battle, AzuraStar was keeping watch for long, amassing forces through two highways into his new base being built in E14N1. And now both AzuraStar and chris peacefully coexist in sector E15N5, while DarkTrooper7 possesses 5 rooms in it.

As DarkTrooper7 and NhanHo (GCL 6) have been staying without rampart defense for quite a long time, they didn't go on to attack each other. But Ranger (GCL 4) in E16N7-E18N7 for example was defeated. This sector is likely to become very hot soon.

AzuraStar has chosen the tactics of very sparse rooms. Their positions are consistent - near centers of different sectors, which has its pros and cons. His expansion into E5S5 also resulted in a fight, and this time it was halted by QzarSTB (GCL 6). This provoked an attack and destruction of a newfangled QzarSTB's base in W4N18.

Later on, rooms were restored from both directions. Now QzarSTB holds one of the strongest positions and is a leader in the number of extensions.

Totally, there are 10 rooms of level 8, but soon there will be dozens of them.

Another sector where AzuraStar has placed his branch, this time silently, is W5S5 (W6S3). It's noteworthy that his neighbours have badges with similar colors, which implies an alliance. Waveofbabies (GCL 5), Vertigan (GCL 5) and KEVIN (GCL 4) have already cleansed this sector of several other players. Red-white-blue badges are likely to multiply even more in this sector after the GCL increase.

One of the main aspects of the game is players cooperation. In future, there will be more interaction opportunities. Meanwhile, theAEmix (GCL 5) is the most notable in this regard:

    • Firstly, he was assisting AzuraStar in developing the room E3S4 by delivering energy from adjacent rooms.
    • Secondly, he himself found a "provider" in DXWarlock (GCL 4) who still sponsors his room E7N1.

Energy is the source of life, and the more effectively it is mined and used, the stronger a player. The transportation method most visible from above is "from hand to hand in a chain." This algorithm is utilized by AzuraStar, QzarSTB, and The_General (GCL 5).

The_General was the first one who endeavoured energy mining from protected sources, and did it pretty well, though currently he has paused his work with keepers. So as for now, nobody dares to face Source Keepers.

The_General's domain looks very impressive due to a dense placement in his only sector E5S5:

These riches once were on the brink of destruction: DarkTrooper7 seized the moment of coma but couldn't make it to the last spawn - The_General revived and repelled his attack.

A modest counterattack followed, but without much success.

The map is getting revealed more and more, players develop by leaps and bounds, new players come, others go or fall into a coma, fight remnants are notable in many places. Here are some scenes:

Soon we plan to launch a new function to playback history of any room. This will allow you to replay and see the most interesting moments on your own.