Uncategorized

Changes in controllers management

We are about to implement some adjustments in the way rooms are captured and held in the game. The three following major adjustments will take into effect starting September 4, 12:00 UTC.

Сontinuous controller downgrade. All controllers, including those in rooms with a spawn, will continuously run a downgrade timer in the case when the Controller has not been affected by the upgradeController action in the current tick. Each run of the upgradeController resets the counter to the default value of 50,000 ticks for RC level 2 and above, or 20,000 ticks for RC level 1. The presence of a spawn in a room no longer has any bearing. Therefore, after a certain period of inactivity, a player loses the control of his or her room. Make sure that you upgrade your controllers from time to time to keep their levels!

Respawning in the same room prohibited. Respawning in the same room where the first spawn was placed will be prohibited within 3 days since the initial spawn placement. This applies only to a player who placed the spawn; other players are allowed to place their spawns in this room. And the 3-day period starts not from the respawn moment, but from the initial spawn placement. The respawn time-out itself remains unchanged: 3 minutes.

Neutral controllers reservation. Creeps will have a new method reserveController() that will allow them to temporarily block a neutral controller from claiming by other players. This method will be accessible only to creeps with at least 24xWORK and 1xCARRY body parts. Each tick, this command spends 2 energy units and increases the counter of the period during which the controller is unavailable by 2 ticks. The maximum reservation period to maintain is 5,000 ticks. A reservation involves defending not only from hostile creeps claiming, but also from respawning in this room.

Screeps will launch publicly on August 12

So, the Early Preview stage is over! As planned from the beginning, we have regenerated the game world and wiped all the game data. GCL of all the players was also reset, since its upgrading speed had been artificially increased. In the new world map, some of the new conceptions are implemented that were deemed necessary seeing as the world evolved in the Early Preview.

Download the full map image

For example, you may now note that the world is divided into 10x10 room sectors with free "highways" to travel between them. Also, Source Keepers were moved from the rooms for settlement into special rooms in centers of sectors which may serve as an extra source of energy for your rooms. You will have to compete with other players in the same sector for controlling them.
 
The game will launch on August 12, 17:00 UTC. We recommend that you use our pre-order page prior to this moment to be able to occupy a perfect room instantly by the launch.
 
Certainly, not all the bugs and issues were solved in the Early Preview stage, and not all the improvements were implemented (for example, many of you guess what the Creep.carry is for, but the details will be revealed later). This is why we plan to set up a test server soon after the public launch where all of you can track the development process and be aware of all the updates coming to the main server.
 
Thanks for being with us!

Game situation review: August 3, 2015

As the Early Preview draws closer to an end, it's time to evaluate the game situation after two-month game world development (keeping in mind that the GCL upgrading speed was several times higher in the Early Preview). Hardcore "wipers" are on a vacation, but high level of competition still gives much room for battles. Let's see who has managed to grow to decent levels and recall the most interesting duels amidst the sweeping upgrade of all players.

Photo of the creep world from space:

Expansion Rank Top 10 for July:

Currently DarkTrooper holds the first place by the Expansion Rank with his 25 rooms in the South East, GCL 26, and good margins for expansion. His game is relatively calm at the moment, but he should keep on watch: Rumatah nearby (GCL 19) can make a new foray. In the middle of July there was a 2-day onslaught that left DarkTrooper7 without half of his colonies, but, as before, further onslaught didn't follow.

Rumatah has 4 rooms of level 8, as well as DarkTrooper7. Another strong player, AzuraStar, also has 4 8-level rooms. However, despite endless capabilities of extension building on level 8, nobody seems to feel enthusiastic about it so far.

Unlike other players with dense arrangement of rooms, AzuraStar (GCL 25) has settled the West very sparsely: some of his rooms are completely separated from the back support. He has defeated the following players on his expansion course: Genovese (GCL 9), nugarin (GCL 13), QzarSTB (GCL 14), vfcosta (GCL 13), reyss (GCL 13), Capitano_Trigger (GCL 5).

In the North West, ZorzZ (GCL 17) has entrenched near AzuraStar and even took a border room W7S1 from him. An "inner" room W7N4 changed owners several time. The adjacent W8N4 had been occupied by GrandonBroseph (GCL 14) before he went on his journey across the map. Farther to the North West there are some more well-developed players: Aurel (GCL 15) and lethallic (GCL 13), but they hasn't behaved aggressively.

A coalition of hesto2 (GCL 13) and ultramixerman (GCL 9) controls the center from the South and periodically cleanses their neighborhood from players emerging in it.

Avicenna (GCL 18) and reyss (GCL 13) have respawned in the North after their previous fails. Tullron (GCL 13) also respawned in the South in his previous home after reyss, but later followed his suit: loss of all spawns and slow extinction of controllers.

Avicenna has abandoned part of his rooms due to CPU economy or because he has not restored after the latest changes so far. We witness a similar abandonment in the realms of chris (GCL 15) and some other players too. Nevertheless, the main flatliners of the month that left all their rooms are: Icefalcon (GCL 12), and AmazingDreams (GCL 7). Perhaps, now with automatic spawn refill such things will happen less often.

Early Preview ends

Well, dear friends, the Early Preview stage is close to an end. Together we were able to test and optimize the hardware, spot and fix multitude of bugs, polish the balance. A lot of creeps were built and lost during the process, but it was worth it - we are now finally ready for a public launch!

Early Preview ends on Thursday, August 6. Script servers will be stopped, the world will be wiped and regenerated. Then we will announce the public launch date so that you can get prepared to start in the final version of the game world.

All those who participated in our Indiegogo campaign will receive a due number of CPU credits. All the rest will be able to place a pre-order to start playing right after the server opens.

Thanks to all of you for your participation in the Early Preview, and follow the news!

New feature: code branches

One of the most often related inconveniences with the game and the editor has been the lack of various debugging tools. We plan to release the Screeps game engine as a standalone npm package so that everyone could launch a game sim locally in a console and thus perform any debugging needed, from unit testing of separate modules to modelling parallel development of game worlds with different settings. However, these are just mid-term plans, while in the short-term we plan to launch two important updates which will greatly simplify development:

  1. Branching of your scripts in a way that you can edit your code in the Simulation without affecting the code from the World, and then commit it to the World after the debugging.
  2. Better Custom Mode: import/export to JSON, saving game situation from any individual room in a game, repeating one tick in a loop, API for creating game objects in Custom Mode.

The second option will be introduced later, but we are happy to announce the first one right now!

In the scripts editor you can see a current branch selection list. One default branch is available initially. The clone function allows you to create a new branch based on it. All code from all the modules belongs to the branch cooperatively, you cannot take individual modules into a separate branch and use them from another branch.

The branch being edited at the moment is the one active in the game. However, the World may have one active branch, the Simulation another one. For example, you may clone the default branch and call the newly-created one, say, develop, then select it as active in the sim mode, and freely edit your code in it without fear of breaking something in the World game process while developing. After you are fully satisfied with the develop branch changes, you can again clone it under default name, thus replacing the basic branch and taking your changes into effect in the actual game.

If you use grunt-screeps for commiting your scripts from a local machine, you will have to update the package to have the ability to specify a branch to commit.

We hope this update will simplify testing and debugging of your game scripts.

Game situation review: June 20, 2015

It's been a month since the Early Preview launched. Though the game is not officially launched yet and not many players are invited, some very interesting happenings took place. At first, there were 12x12 rooms, while now we have more than 400 – more than enough to hang out and leverage one's GCL. Well, let's see where the main forces are concentrated, how things have changed, and which interesting battles took place.

A screenshot of the map as a memento:

And the current Expansion Rank top positions:

In the center (W2S1), AzuraStar has entrenched with the maximum Controller Level and maximum hits of his barrage rampart, his GCL is 12. There is an additional base in the South West (W4S5) and a roadblock on the intersection (W5S2) cutting the way to a territory of 25 game rooms in size (W2N2-W4S7) from the main aggressor - nugarin.

Nugarin has conquered quite a lot of new players, wiping out their rooms with his distant raids almost across all the West. His densely cooperating chain of 6 rooms (W11S6-W9S7) of primarily 6th level is threateningly amassing forces ready to move out and challenge his opponents at any time. The current GCL is 10.

Here are some screenshots of the losers:

Initially nugarin emerged on the edge of the map far from his current location (E6N3).

There were last season leaders nearby, Myzaree (E6N1) and ir0x539 (E4N2). Alas, they didn't take much care of their defense, which finally had grievous results.

After some short battles, they scattered. Myzaree is now in the North West (W7N4) and doesn't expand from his only room despite his GCL 10. ir0x539 missed in action.

That is, in the middle East, Rumatah is the only strong player that remained. At the moment, his chain consisting of 7 adjacent rooms (E10N2-E10S2) with high levels (half of 7, half of 6) and border ramparts with several million hits look very impressive. There is no active warfare here, except a minor challenge for a fledging player DarkTrooper7 (more about him below).

Rumatah went to this region (and respawned and changed his badge as well), while his first home was E1S7 (far to the South East).

The relocation was forced by several waves of attacks by tscmoo. He was doing nice in the first days of the Early Preview: he ignored upgrading his controller and focused on cleansing the South with his distant raids.

His only hurdle at that time was players with temporary walls who also blocked paths in the labyrinth. Even those who programmed defensive logic were not prepared to withstand against such massive advances.

Soon afterwards, some changes were made in the spawning mechanism, and tscmoo could not revive since that time. He occupied W3S5 and calmed down. However, who can know his designs for sure? He can emerge at any spot and any time and resume his endeavours.

In the South East, we witnessed aggressive scheming of DarkTrooper7 who had occupied vast territories. Currently, he leverages his GCL 8 to the full. He is likely to resume attacks after reaching level 9 and higher.

Many players have shown signs of the «coma» effect when all creeps die out. Usually in such cases, the mastermind soon arrives and helps his AI to resurge. However, ZorzZ has been remaining in coma for several days, for example. Nugarin tried to wake him up, but with no results.

You should take special care of your logic – don't make critical changes before you go to bed lest you become an easy prey for your opponents:

You should also think of automatic regeneration after balance shifts. To regain a «spark» (apart from manual Reinforcement) you should have 200 extra points of energy for a creep with [WORK,CARRY,MOVE] body parts. Such a logic may also work well for automatic capturing of new rooms.

Meanwhile, even in the worst case scenario when all your spawns are gone, actually it's just a start of a new colony with even better immunity. Don't forget that your GCL is not subject to reset, and you can always develop a competitive 4-5 room footprint in mere 2-3 days.

The example of this is hesto2 who resurged twice. Or, for instance, chris. They are again brand new and shining after just several days.

Thanks to all the Early Preview participants! We'll continue to watch the progress, while your participation helps us refine our game balance and mechanics making the game more interesting to all the players, both newcomers and veterans.

If you took part in an interesting battle, please tell us about that in comments. Even better if you keep some screenshots for the next review.

Changes in the runtime engine

Good news screepers!

We have redesigned some architectural solutions in the engine that executes your scripts inside the game. Here are some of the improvements you can notice starting from now.

Non-blocking exceptions. Many of you have asked that the console output be visible even when the script throws an exception. This is convenient for debugging and tracking the moment the error occurs during the execution of a script. It is possible now - script execution errors don't block either the console output or the game commands execution! In other words, all the commands that were fixed before the occurrence of an error will be executed:

Game.creeps.John.move(LEFT);
Game.creeps.Michael.move(LEFT);
throw new Error('error!');
Game.creeps.Bob.move(LEFT);

Creeps John and Michael will successfully move to the left in this tick despite the thrown error.

Note that this even refers to the error of CPU limit exceeding. Thanks to it, you can now arrange priorities of your creeps logic so that the most important actions perform in the beginning of the script and don't risk being unexecuted due to the lack of CPU resources.

Persistent global scope. Previously, the sandbox scope for your scripts execution was created from scratch every tick. It allowed safe isolation of the script but wasted some CPU per tick. We found a way to circumvent this. Now the scope is recreated only from time to time, while the majority of ticks of your game script execution use the same global scope. According to our estimates, it will save about 10-40 CPU for each player. Besides, there is a keyword global now available in a script which affects some outside scripts and compilers.

New spawn extension system

The extension system in the game has been changed. We decided to do away with the notion of the creep's body parts number and instead introduce the limit of the total amount of energy to be used for building in a room – in the spawn and all extensions together.
 
While previously a spawn with no extensions could generate up to 5 body parts, now it can contain up to 300 energy units and create creeps using this amount of energy. All extra cost above this limit must be available in the extensions at the moment of the beginning of the creep spawning. Besides, capacity of each extension is decreased to 50 energy units.
 
It's important that energy for extra cost is taken only from the extensions, but not the spawn! The spawn never consumes more than 300 energy units, even for expensive creeps.
 
Here are a few examples of various creep configurations costs before and now:
 
Body Before Now
Spawn Extensions Total Spawn Extensions Total
CCCCM 250 energy  — 250 energy 250 energy  — 250 energy
CCCCMMMM 400 energy 600 energy
3 extensions
1000 energy 300 energy 100
2 extensions
400 energy
RRRRRAAAAAMMMMM 1400 energy 2000 energy
10 extensions
3400 energy 300 energy 1100
22 extensions
1400 energy
 
The number of extensions available for building extensions is also increased at all RCL levels. See more in Territory control.
 
This new system should significantly simplify building of high-level creeps, which means that overall you will need less creeps for the same tasks and less CPU for controlling them. However, for quick building of expensive creeps, you will need to set up an effective energy transport scheme in many extensions. It will surely become an interesting task on programming room work.

Instructions for the Early Preview participants

The Early Preview stage pursues two goals:

  1. Find all possible bugs and technical issues that could be found before the open launch.
  2. Check the game balance and mechanics in order to avoid the possibility of wiping the game world due to any abuse in future.

If you have been invited to join the Early Preview, your are expected that you help us achieve these two goals. So, please, report any, however small, errors and omissions you may encounter as you play. You may do so by submitting a request or posting a message on our forum Technical Issues & Bugs. If you choose to post a message on the forum, please check first whether a similar report is already there. In this case, please leave your comment under the main thread with description of your individual case of this problem.

The game balance and experience are also to be tested in the Early Preview. We ask all the testers to send us your impressions and stories after you familiarize with the game. We'll rely on your stories to understand what should be adjusted in the game mechanics.

CPU Limit

We plan to accommodate quite a lot of players in the Early Preview which means a lot of load on the runtime scripts servers. So for now, we have limited the available CPU resources for players to 100 units. You may require more, but unfortunately we cannot offer more CPU to all the players since it may affect normal operation of the game during this preparatory stage. However, we are ready to do it in some individual cases.

Here is a way to secure for yourself a higher CPU limit during the entire Early Preview:

  1. Help us spread the word about the unique idea of Screeps! Describe your impressions in any social network (Twitter, Facebook, Google+, etc.), forum or blog.
  2. Send us the public link (or a screenshot) to your post.
  3. Upon receiving your link, we'll gladly raise your CPU limit to 300 units.

Thanks for participating in the Early Preview!

Early Preview is live!

The MMO part of the game has launched at last. Yes, we are finally able to give you the exact experience we had in mind when we contemplated the very idea and concept of Screeps: influencing a vibrant, constantly changing, multi-player world through programming units who live their own life online. We long to see the results you will be able to achieve in it!

Our Indiegogo crowdfunding campaign funders have already been granted access codes and can start playing right away. If you don't have the code yet, don't despair. We watch the situation and server load, and as soon as our infrastructure is ready for more players, we'll start sending out codes to those who have submitted requests. It may happen even in a couple of days.

If you have not submitted for your code, you can always do it here.

What do I need to know?

Take note that the Early Preview is not the final version of the game. We are now launching the game world in the preparatory mode with a limited number of players in order to test everything rigorously prior to the open launch.

Please familiarize yourself with the instruction for the Early Preview participants.

Where is the Survival?

You may have already noticed that the mode selection screen had disappeared. The matter is, we decided to disable the Survival and Arena modes and zero in on the World in order to give you the best experience possible. As soon as we realize all our ideas for the World, we'll get back to other modes. It may quite possibly be some multi-player Duel mode. Apparently, the Survival and Arena modes that have accomplished their preparatory mission and are much less interesting than the World will not be restored.

When will the Early Preview stage end?

We cannot tell that for sure yet, but we look at the end of June. After that, the world will be wiped and restored to its original state, and the open launch for all players will commence.