Uncategorized

Open source graphics engine

We’re happy to announce that our graphics engine is now released on GitHub as an open source project! It is based on PixiJS and contains the same renderer code and images we use in our official game client. You can use it in your own projects of two major types: custom graphics for private servers, and third-party GUI utilities.

Custom graphics for private servers

The ptr branch of the private server npm package (starting from 3.1.0-beta.4) contains new functionality which you can use to provide your own graphics for any game object types: both standard game types and new custom types. It allows you to create your own game objects with custom graphics like this:

The library supports vector graphics, raster textures and sprites, animations, transforms, visual effects, etc. We’re going to use its potential in full in the future, and we’re also looking forward to seeing what you can come up with too.

We’ve prepared some mods examples for you to get started with the custom graphics. Use npm install screeps@ptr in order to install the supported server branch.

Third-party GUI utilities

You can integrate the renderer library to your own application which would display Screeps game objects in the same way as in the official game client. For example, you can develop a standalone room history viewer, a third-party game client, etc. You can add samples from real game object data and visualize it exactly as they are shown in the game.

The project repository contains a demo app which is a good reference of how to integrate the renderer on a web page in your own project. Also, please refer to the documentation and the API reference.


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

Power Creeps update

The turning point of the Power Creeps development is just around the corner. This post will show how this mechanics will look in the game and also update our design document. A lot of things have already been described in the previous post, but the mechanics sparked hot debate, and we took a time-out to polish the idea and switch to other important tasks. This process gave us fresh ideas on what to change, and now we are confident the final concept can be viable.

TL;DR Brief summary of the adjustments

  • Only one class will be launched initially—Operator.
  • Any power creep can use its powers (skills) only in power-enabled rooms. Activation requires that any power creep approach the room controller and run PowerCreep.enableRoom(controller). This action is performed once by any player (not limiting to the room owner) and can be undone only by unclaim.
  • The operator will use a new resource called ops that it can either generate itself or buy in NPC terminals.
  • See an interactive skills planner below.

    Read More

Wanted: Senior Angular Developer

The Screeps team is looking for a talented Angular developer to work on the game code base. We have a huge number of development plans, and if you want to be a part of their implementation, we’re waiting for your resume by one of the following links:

If you play Screeps, make sure to specify your in-game nickname!

You can find the requirements in the job posting below.

Read More

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.

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.

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

Optimizations roadmap

Game performance in all aspects is an important area of our work. It was not left unnoticed by us that game simulation performance (tick rate) noticeably decreased lately due to the increase of the number of objects and growing complexity of players’ scripts. We understand it can lead to negative sentiment on the subscription-based model, and we won’t tolerate this situation. So in this post, we’ll talk about the three directions we plan to move so as to radically optimize performance.

Read More

Meet our Community Manager

We’d like to introduce a new team member who will be responsible for communication between the
community and the Screeps Team as a Community Manager & Advocate:

Hey everyone, let me introduce myself. My name is Mark Bertels but most of you probably know me as Dissi. I’m 27 years old and I live in The Netherlands. I have been programming for more than 12 years now. I’ve made my hobby into my profession.

I’ve been an active Screeps player for nearly 2 years now and saw that the Screeps team needed a community manager. As I really love the game and community as a whole I did what any member in the community would do; I applied for the position. Today I can tell you that I will be helping the team as a community manager! I will be helping them out in consolidating different opinions in the community on changes. I will also be tracking down bugs and helping with the requests.

As a community manager I also will be voicing your worries and ideas back to the development team.

I’m practically always online on the slack channel, you can ping me there with @dissi if you require my attention or just want to chat a bit!

Hope to see you in-game!
Regards,
Dissi


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

Fleetster uses Screeps to hire developers

Going to another technical interview and want to show your Screeps skills as a proof? Fleetster startup uses Screeps as a key part of their recruitment process. Anna Baumeister explains how Screeps is useful for their business:

We started using Screeps as a means of technical evaluation end of last year. Since then, our business has been thriving and our use of Screeps as a test has become more visible.

In order to understand why we chose your game as a key part of our recruitment process, it’s important to understand a little bit about fleetster. We are a small startup in Munich, Germany, working with the latest JS tech - Node, Ember, React, React-native, TypeScript etc. Our business is lean and our process is agile which means specifications are changing all the time.

Screeps is useful because it throws candidates into an unknown environment where the number of “right” solutions are very numerous. They have to get their bearings and make a pl an of action whilst dealing with unexpected outside interference (other players). We hope you won’t mind our presence in the main game world, but we find the huge scope of the main world helps to further intimidate candidates. We need people who can take on complex challenges head on and realize that most often the solutions are simple and accessible.

— Anna Baumeister, Management Assistant at fleetster