Friday Facts #267 - Experiments, Explosives & Extended tags

Posted by kovarex, Rseding, Wheybags on 2018-11-02

Entity info experiments (kovarex)

The Entity info is the information about the currently selected entity that appears on the right side of the screen:

We had 2 problems with its current state:

  • As it is on the side of the screen, and the entity you are inspecting is generally in the center, it feels cumbersome to move your eyes from the entity to the info and back all the time.
  • As it is always appearing, it adds unnecessary clutter to the screen. It is always blinking there, while 99% of the time it is not really needed.

So we experimented with entity info as a tooltip next to the cursor when hovering the entity:

So we tested 3 different ways to activate it:

  1. It always appears at the cursor, which has the disadvantage of always being in your way in the middle of the screen.
  2. It always appears, but it has some delay.
  3. It only appears when a hotkey is pressed (we tested it with Shift), which has the disadvantage that you have to actually do something to see it.

We assigned each of the options to be tested by someone, with the hope to figure out which (if any) of them is better than the current one. Vaclav tested option 1, Twinsen tested option 2 and I tested option 3.

Unfortunately the result was that in the end everyone preferred his option the most, and we had no conclusion at all. Then we realized that the flaw of the test was that each of us picked the kind of option we already knew we would probably like.

After some discussions, we decided on the following:

  • The current version of entity info will be the default.
  • We add an option to set a custom delay for it, that is different than the normal tooltip delay (or never).
  • We add an option to activate it with a key.
  • We add an option to have it next to cursor or on the side.

Two years ago, I was under the impression, that we need to eradicate all the weird options, to make the game just work for everyone. Over time and after all experience and feedback we have gathered, I started to realize that different people have different expectations, and their brains are wired differently. Some option might be useless for 99% or players, but for the 1% of players, it might be the most annoying thing to be able to customize it.

Cliff explosives with construction bots (Rseding)

The initial task, "Add support for robots to blow up cliffs", was easy. 1 cliff gets marked for deconstruction and 1 robot is sent to blow it up. The tricky part comes when you want to account for the fact that 1 cliff explosive can blow up more than a single cliff. When a robot is sent to blow up a cliff, the system has to do a little extra work:

  1. Figure out which cliffs within the radius of the cliff explosive are also marked for deconstruction that aren't already going to be blown up by another robot.
  2. Re-center the 'drop' position for the explosives on the gravity-center of the found cliffs.
  3. Figure out which cliffs are within that new area and record that 1 more robot is on its way to blow them all up.

This extra work isn't for free, however the game isn't likely to have a large number of robots actively bringing explosives to blow up a cliff, since as soon as a robot is dispatched it quickly finishes the job and the cliff is permanently gone. Using this system the game can track if a given cliff is going to be blown up, even if it isn't yet marked for deconstruction. This way you don't get weird overlaps in robots flying out to cliffs that will be blown up shortly by another robot.

After making this system it has made me think if I could apply some variant of it to robots building things, so a robot could theoretically grab 3 inserters and build all 3 quickly in series. It's an interesting thought for another time...

Rich & Interactive Text 2 (Wheybags)

As we mentioned in FFF-237, we are going to be adding some fancy text effects to the game in 0.17. In that blog post we mentioned the possibility of having some interactive text elements, such as clickable icons in chat messages, blueprints, etc.

Well, we have an update on that, as we have now implemented several of these features. These tags are created in a somewhat general way, if you have the console/chat open and shift-click something, it will insert a chat tag.

Blueprint tags
Hovering a blueprint tag will show the full blueprint info, and clicking it will create a copy of the blueprint in your cursor.

Map pings
Shift-Clicking the map with the console open will create a map ping. Clicking a Map ping will open the map at the specified position.

Recipe tags
Hovering a recipe tag will show the full recipe info.

Armor tags
Hovering an armor tag will show you the armor and equipment layout for that specific armor.

As you can see above, each special tag has some [description] text associated with it, which lets you know you can interact with it. It will still be possible to insert plain icons that won't have any interactions.

For now, 'interactable' tags will only work in chat, but they might end up being allowed in mod GUIs too.

As always, let us know what you think on our forum.