Friday Facts #409 - Diminishing beacons

Posted by V453000, Earendel on 2024-05-03

Hello,
Today we're going to take a look at a feature some of us have dreamt of changing for years now - the beacon transmission.

The main purpose of beacons is to allow massively increasing your production in the late game while being more than just a module or a faster machine. To make use of beacons you need to adjust your building layout for them.

Beacons succeed in this role, but...


The Problem

We aren't so sure the resulting layouts are all that interesting - something both us and a lot of players have said many times before.

Beacons
A 12 Beacon build

The first of the typical two layouts is surrounding the machine with maximum beacons (12 beacons affect each assembling machine).

  • Best compute performance
  • Not so space efficient
  • Costly on both construction materials and power draw

It's easy to route a lot of belts through as there's space all around the crafting machine, in fact it is so easy that it feels like the end game layout isn't very challenging to build.

Beacons
A 12 Beacon build map view

There are a few small variations you can make like bringing the side beacons closer, but overall most of the 12 beacon layouts look identical for the vast majority of recipes, so late game factories end up looking like arrays of squares.

Beacons
8 Beacon build

The other option being alternating rows of machines and beacons (8 beacons affect each assembling machine).

  • Great space efficiency
  • Good cost:gain ratio
  • Not much space for belts

With just the 2-tile gap between the beacons and the machines, you can only route very few transport belts through. There are a few tricks that help getting up to 2 transport belts in and 1 transport belt out, but once you've discovered these tricks, you just repeat them over and over. Alternatively since this is quite space efficient, it's good for robot logistics, in which case you just copy paste requester+provider chest pairs next to machines, which isn't exactly creative either.

Since there aren't many other significant alternatives to these two layouts, all in all using beacons seems restrictive on build variety and tends to feel monotonous and uninteresting, especially compared to how varied the earlier stages of the game are.


The ideas

Over the many years this problem has been discussed, we've thought of various ideas. There's also been different experiments with what the modding API allowed - which is also a telltale sign that a lot of people would like some form of a change.

Beacon overload

Beacon overload is a mechanic from Earendel's mod Space Exploration. It causes any machine affected by more than a single beacon to shut down. This means that the 12-beacon, 8-beacon, or any other beacon layouts are just strictly impossible. With the normal beacon range you could still do the inverse of the 12 beacon design and surround a single beacon with machines, but it gets impractical to repeat and tile because there are now 12 machines needing inputs and outputs instead of 1.

When trying beacon overload, it feels fresh at first. The beacons are more powerful at a base level and have more module slots so an individual beacon is more flexible. There is a much larger benefit in dropping down the occasional lone beacon to boost random areas of production, but you need to be careful not to overlap a machine with two beacons and overload it. The problem is that there's not much flexibility in the beacon arrangements, typically you're just building beacons in a grid which avoids overlaps, so it's not much more interesting than the base game. It does look better though, at least.

Beacons
A Beacon overload layout

Where things get more varied is with the wide area beacon from Space Exploration, as you end up designing entire builds around a single structure. However, this gets rather inconvenient to tile as you need to avoid overlapping machines with multiple beacons. The size of the entire build is dictated by the range of the beacon, so it is almost always clustered around 1 beacon, or a short line of beacons in a modular fashion.

Wide area beacon layouts by Oblivion, a Space Exploration speed runner.
Examples of wide area beacon layouts by Sticklord and Oblivion, two Space Exploration speed runners.
These focus on direct insertion to make a key product within the range of a single wide area beacon.

You have a lot of flexibility in how you build within the beaconed area so it can be nice for direct insertion builds. In the big picture, it puts all of the design freedom on building within the beacon space but the placement options of the beacons themselves gets pretty boring, it's just another grid.

An example of wide area beacons in a grid by Xylokite.
A fairly typical wide area beacon setup in Space Exploration.
This build by Xylokite has 3 wide area beacons in a line and is designed to stack vertically so that the beacons form a grid.

Hidden beacons from Built in beacons mod

An experiment which tries to simulate "what if beacons did not exist in the game", and increased the crafting speed of the machines instead.

Beacons
A standard but just faster layout with built in beacons

The result of this is that factories never need to transition into improving production rates by layout changes other than routing in more belts, which can be seen both as a negative and a positive.
On one hand you still have all the possibilities as in the earlier stages and snaking more belts through is great, but at the same time it doesn't introduce anything new.

Beacons
A direct insertion layout with built in beacons

The one new thing it does introduce is that it becomes viable to directly insert items between machines without losing out on crafting speed. You can create builds that for example craft utility science packs from mostly raw materials, which can obviously be done in a wide variety of ways. Though this gets quite crazy to design, often with excessive use of rate calculators, something I found cool but I wouldn't expect many others to enjoy.


Mod limitationsEarendel

Neither of us imagined that our mods would be the right solution for the base game. We were aware of the shortcomings but mods are very limited in what they can do with beacons in 1.1.

Other mods have experimented with different beacon mechanics too, but anything more interesting than some basic value changes requires a lot of unpleasant workarounds and runtime scripting. There are some creative approaches out there, but none of those mechanics are right for the base game either.

Even within the context of Space Exploration, Beacon Overload wasn't the solution that I wanted. It was the best solution I could find with the options I had and some light scripting. I looked at a lot of options, but gradually ruled most of them out as impossible or impractical with the engine limitations and ended up with Beacon Overload.

Obviously these limitations aren't a problem if we can "just change the game engine", but we can't change the game engine for every idea we have or everything would get slowed down. Ideally, if we have a good idea, we rapidly prototype it as a mod to test it. An interactable demo makes it easier for other people to evaluate the idea too. The problem in this case is that we knew that "the solution" would be so far outside of what the game engine can do that whipping up a mod for it wouldn't be practical. Instead we'd need to go through all our ideas in detail, find the best one, and be pretty sure it's the right one before we make a prototype version.


The solutionV453000

Our dreams were always in the idea of diminishing returns. The more beacons you would surround a machine with, the less effect each of them would have.

However counter-questions and doubts were in place:

  • Are we sure this is really strictly better or are we just trading one flawed system for another?
  • At least we know the flaws of the current system and it is not that bad.
  • Wouldn't it be worse that it's more difficult to calculate the result effect in your head if it's not linear?
  • We don't have time to implement something we're unsure about.

And until 1.0 the negatives seemed to outweigh the potential positives, but the dream was always in the back of our minds (primarily me and Earendel). In fact, we were so notorious with it that when boskid was refactoring some parts of the beacon effect code, he did it in a way which would allow something like this, just in case it was desired eventually...

And desired it was! Earendel whipped out his proposal:

  • The effect transmission being the square root of the beacon count.
  • Buffing the base transmission effect from 50% (0.5).
  • Adding in Quality scaling for effect transmission

I have tested it and finalized the values.

Story behind the numbers

Earendel's original idea included the square root calculation, but we imagined buffing beacons from 0.5 transmission to 1.0, in part because it's a nice number.

On top of that, by making beacons get less crazy in high counts we could allow them to scale with increasing quality as well.

In an earlier FFF we stated that beacons only decrease their energy consumption with higher quality because we thought quality makes things crazy enough already and we don't want to push it any further. But since then we have buffed belts 4x with the item stacking, so it sounds a lot more appealing now.

Playing with it, I quickly came to the conclusion that a 2x buff is insufficient and low beacon amounts still feel weak while higher numbers are also nerfed. I figured I'd try to double it again and went with a 4x buff - when I spoke to Earendel about this later he noted that's also the value he picked for the beacon overload, and I was happy to get the reinforcement that if we independently arrived to the same value it probably confirms it is good.

When I was wrapping up the changes and preparing to present it to the final boss (kovarex), I made sheets and a graph.
I felt silly that I haven't realized that square root of 16 beacons is 4, so if we buff beacons by 4x it means all builds with less than 16 beacons get buffed. This felt like it's obviously too much, so I settled on 3x which results in transmission power of 1.5.

With either 4x or 3x buff, the quality scaling needed to be brought back down a bit, so instead of 1 to 2.5 like on most other things, the transmission strength scales from 1.5 to 2.5 for beacons, which is still great. They still do reduce their power draw too after all.

I was almost in tears to see how beautiful the values turn out:

Beacons

The change is surprisingly minor for existing factories. Machines affected by 8 beacons will in fact perform 6% faster, while machines with 12 beacons get 13% slower.

That's amazing because it means base game remains almost the same, we get the buffs we have always wanted, and quality allows even more progression.


The results

Using beacons feels actually impactful even if you place just a few of them. In Space Age this is especially important as that's typically when you want to increase your production to launch a lot of rockets.

As productivity modules decrease the machine speed, with the old system the first two beacons only get the machine back above 100% crafting speed. At that point you consciously know that you made an upgrade thanks to the increased productivity but it doesn't really feel as exciting when the perceived speed is roughly the same.

Now because a single beacon has 3 times the effect, that is more than enough to break through the negative effect of productivity, which feels much better.


A basic electronic circuits build, now with +24% productivity and +50% speed just with a few beacons.

In some situations it's not just about being to afford beacons but the building space is limited, so high effect beacons are a natural fit for places like space platforms.


Space platform with a beacon

As a complete novelty, a single beacon with green modules can actually drop the energy of a machine significantly. This gets especially crazy with higher qualities as the beacon effect transmission increases, the efficiency module gets more powerful, and the beacon reduces its power draw with higher quality so it's worth it even more. All of the machines in the above screenshot have -80% energy consumption.

Space platforms can then choose to balance between crafting speed, power efficiency, and productivity; all of which are actually significant in the limited space so it's an interesting choice to make and think about.

Larger structures like the Foundry typically have a high crafting speed in order to feel powerful and be reasonably space efficient compared to smaller entities. Due to the size they can be reached by more beacons (16 for the 5x5 tile Foundry), which increases their already crazy crafting speed a bit too much. The diminishing returns make these differences more reasonable.
Don't worry, the Foundry still gets insane, especially with all the quality bonuses by the end game.

Trading a few beacons for a machine next to one another is probably going to result in some new possibilities for some UPS optimized builds.


I don't dare to make any kind of claim that this is an UPS efficient build, but you get the idea and I'm thrilled to see what kind of designs you come up with.

With quality you will be able to make even better use of the few expensive modules you got by putting them in the best quality beacons you can get.
Another thing quality adds to consider is that maybe you don't quite have many legendary speed modules but plentiful productivity modules or vice versa, which could majorly impact what kind of a build is more affordable for you at the time, and it could even influence the long term strategy of which planet you visit first.


Conclusion

I've been annoying all of my surroundings including kovarex by constantly talking about the beacon mechanics on and off for about 7 years now. It got to the point where if I brought it up I'd get the reactions of "oh you with your beacons again", and frankly I couldn't blame them.

In the last months I had already abandoned hope that we would ever implement this as the expansion seemed to be getting feature complete...

But one day we were having a discussion with Earendel and I asked him what would be the last features he'd like to happen. Earendel replied with just a single word, in a very excited, and to me surprisingly very confident voice: "Beacons!".

The information I was missing was that he already did some research with boskid earlier and told me the code is basically ready for it.
I was shocked in the most positive manner.

It only took us a few days to have the working version and finding the right values took only a few weeks which is great considering the scope of the change. The resulting values were better than I ever imagined making the change really appealing, so convincing kovarex about it wasn't difficult in the end either.

In 2.0, maximizing beacon count will still generally be a good practice to have things produce quickly and save on computer performance. However, there will now be a lot more room for creativity, and with quality return on investment comes into question more.
In general this can be regarded as a buff to beacons, which should help you progress quicker especially in the earlier stages of the game, which again improves Space Age being less tedious and more interesting.

A detail that makes boskid's implementation unreasonably exciting is that this behavior is defined by a very simple so-called "profile" table in Lua.

Beacons

This means mods can revert beacons to work like in 1.1.x, trivially implement beacon overload, make a beacon overload which allows overlapping, make beacon effect increase with beacon count, or just about anything else they can think of.

I'm incredibly happy to have Earendel by my side. As you can probably tell by both of us writing this blog post too, together we're able to make so many dreams become reality. A huge thank you also goes to boskid who listened to us and took regard when cleaning up the code to be ready for what we would want.
We're all extremely proud to have finally found a way to make a change that many of you have called for over the years as well.

We've heard you, all things just have their time and place.


Let us know if you're as thrilled by the effect this change is about to transmit as we are.