New improved WebGL renderer (beta)

We have always put little attention to graphics in Screeps, since this is a rather niche game for programming nerds. In terms of technology, the game engine has been a simple set of SVG objects moving across the web page. It allowed for rapid development without distracting on complex visual components, but it ruled out any appealing visual effects (like lightning). Besides, this approach suffered from subpar performance when a lot of objects were on screen. So it’s time to change that!

In this update, we are excited to reveal a full-blown graphic engine for Screeps based on WebGL and PixiJS. It will allow you to:

  • Leverage your machine’s GPU even in the browser to significantly boost performance without any lags when scrolling.
  • Save your laptop’s battery juice since GPU is much more energy-efficient for this task than CPU.
  • Add new visual effects to enrich the game atmosphere and yet retain our usual relaxing, abstract style.

In the picture above, you can see some samples of how the new renderer transforms the game when activated. The new feature is beta so far, so to activate it, opt in using the checkbox in the Display Options section of the right panel. Not all features have been 100% migrated to the new renderer yet, and bugs are possible, but you can get a whole new impression of the game right away!

Please inform us about any issues you encounter here in this forum topic.

NPC Events

It’s big time! 2 months after its creation, shard1 is available for settlement from outside. The portals leading from shard0 to shard1 and back open their doors for all the settlers, traders, and highway bandits out there.

But aside from the evident feature of transferring players’ creeps between worlds, these portals will leverage another interesting game mechanics, NPC Events.

We won’t delve deep into all the details but leave it for you to discover, especially since the events content and mechanics will change with time. But one thing is sure: it’s worth keeping your eyes on what comes out of these portals (including with your Observers), it could be something tasty!

By the way, a little hint for you: when an NPC creep that took part in an event like this dies, its resources don’t drop on the ground but are placed in a container created automatically so that you can conveniently grab them in time.

Good luck hunting!


Have comments or feedback? You can discuss this post here.

Changelog 2017-09-28

  • All credits amounts now work with 0.001 precision, including order prices, credits balance and transactions history. User credits balance and order prices are stored in the database as thousandths in integer format which prevents rounding errors. In order to update your private server data, an automatic database upgrade will be performed, see this commit.
  • Added new StructureSpawn.spawnCreep method. createCreep and canCreateCreep are now considered deprecated, but still will be available for backwards compatibility. See discussion in this pull request for details.
  • When you click “Respawn”, all structures now don’t vanish, but change their owner to SYSTEM_USERNAME, so that other players are able to withdraw resources from them.

These changes are supported in private server v2.10.0.


Have comments or feedback? You can discuss this post here.

Changelog 2017-09-19

Shards API

GCL is shared between shards and doesn’t need to be assigned to a specific shard.

Controller downgrading changes

  • attackController applies 1000 ticks of upgradeBlocked and decreases the ticksToDowngrade by 300 * <CLAIM_parts> ticks. The claimer creep will only need 1 tick to do this amount of damage. The creep will not be able to do another attack until upgradeBlocked is back to 0.
  • upgradeController restores 100 ticks of ticksToDowngrade rather then resets it immediately.
  • While the controller is downgrading, new level cannot be triggered even when the controller has enough progress (progress is not lost but accumulated).
  • Safe mode activation is not possible when the controller is downgraded for 5000 or more ticks.

These changes are supported in private server v2.9.0.


Have comments or feedback? You can discuss this post here.

New Community Manager

We have a new Community Manager whom we’d like to introduce — meet Nikolay Kharitonov:

Hello Screeps world, let me introduce myself.

My name is Nikolay, and I am a programmer.

It’s been around 20 years since I execute my first “Hello world” so I’d say I do it as long as I can remember myself.

Some players may know me as ‘o4kapuk’. I started playing Screeps in December of 2016 primarily because I wanted to improve my skills in JavaScript (I work as .NET developer last years) but I have barely noticed how I was caught by the game. Now I have a passion for the game, and I’m happy to be a part of the team. As Community Manager, I’ll work together with Dissi to provide better connectivity between development team and game community. I will be also helping with everyday support.

Feel free to ping me in Slack (@o4kapuk) if you need something.

Hope to see you in-game!
Regards,
o4kapuk


Have comments or feedback? You can discuss this post here.

World Shards Launched!

We are excited to announce we just launched the sharding system for the Screeps world! The second plane called shard1 already works with faster tick rate and waits for its first settlers! If you wanted to start playing but disliked long 5-second ticks, now is the time!

TL;DR World shards are isolated from each other and run your code separately. Your creeps can travel between them using special portals. The original world becomes shard0. Portals will be closed during 60 days grace period, but you are free to (re)spawn on either shard0 or shard1.

Read More

Screeps World Review Q2 2017

The world that seemed endless and almost about to expand again, gained its borders with a planned shards update. Now those close to Highway 100 have a full right to say they live at the edge of the world. Let’s capture a snap of the colonies in their current state before the world gets divided into “continents” and the map changes unpredictably. While few players will take the risk to respawn into a brave new world, we believe many owners of a high GCL will decide to start their branches in a new shard for defense or profit.

Read More

Global Conflicts Overview, Summer 2017

Contributed by o4kapuk

The second global conflict in the world of Screeps spans across multiple alliances in multiple regions with battles in many theatres, just like the first one did. However, this time it is different: instead of a single worldwide battlefield, we saw a number of local conflicts between alliances, each one pursuing their own interests. Though the world was engulfed in flames of war, that set of conflicts was never officially recognized as a World War.

Read More

Changelog 2017-07-05

  • Updated runtime Node.js version to 8.1.3 (with V8 5.8).

    UPD: Rolled back to 6.11.0 LTS. It doesn’t seem to be stable enough. We’ll get back to it when some fixes appear, and/or 8.x branch becomes the next LTS.


Have comments or feedback? You can discuss this post here.

Changelog 2017-06-26

  • Refactored creep damage and heal apply logic in a more consistent fashion. The main part of its logic can be found here:
    1. All incoming damage and heal is counted first, but not applied.
    2. Total heal and damage are applied to the creep's hits.
    3. hits <= 0 and hits > maxHits checks are made.
    4. The creep’s body is recalculated, including CARRY capacity.
  • Market order prices now can be set with 0.001 precision. However, all real credits transactions still work with 0.01 precision, i.e. when you execute a deal, the resulting transaction (amount * price) is rounded up. You cannot execute a deal for a total amount less than 0.01 credits, the Game.market.deal method will return ERR_INVALID_ARGS.

    This means you can sell/buy energy for 0.001 per unit, but with amounts not less than 10 energy units per transaction.

These changes are supported in private server v2.7.1.


Have comments or feedback? You can discuss this post here.