Revisiting the Economy

Part of the design process, it seems, is going back and changing things that seemed like they would work well on paper, but didn’t quite pan out in practice. Putting several systems together can be an especially challenging process, and the one you start with will likely need the most changing as the other pieces settle in around it.

For this release, I started by revamping the economy system. Largely, the redesign has met its goals – it has good performance, and it can represent a flexible set of events in terms of “what’s happening in the game world”. However, working on the UI for colony management has exposed a few areas for improvement. (Pictured below: not one of them.)


Game system and UI design

In general, I think it’s critical to keep the UI in mind while designing the backend mechanics. Sometimes there’s a tendency to think that whatever the mechanics, you’ll be able to cook up a good UI later if you just try hard enough, but that just doesn’t work. It’s entirely possible for mechanically sound game systems – that is, systems that produce a good experience provided the player understands them – to be unreasonably difficult to convey to said player via the UI.

So, ideally, the UI needs to be considered as part of game system design, and not separate from it, at least if “having a good UI” is a design goal. Which it legitimately might not be! A few games come to mind here, and it’s no knock on them, just a different set of priorities.

Back to the economy – I did keep the UI in mind during the overhaul, but imagining what the UI is going to look like, or even mocking it up, is not a fool-proof substitute for actually putting it together.

(Side note: I’m starting to think that mocking up tooltips early on might be a very good use of time. They’re easy to mock up, not having a lot of custom visual elements – it can even be done in a text file! And going through the process forces you to see things from the player’s point of view, in a way that’s easy to lose track of when trying to design the systems to just do the right things.)

Alright, really back to the economy this time! One of the core features is the idea of colonies having “reach” – if two markets are “within reach” of each other – i.e. their distance, in light-years, is less than their combined reach value – then they can trade with each other. The point is that distance makes trade more difficult (or, rather, impossible). Setting up a colony on the fringe of the Sector should have some downsides in terms of being able to trade with the core worlds, it’d just feel weird if this wasn’t the case. There’s also the concept of “waystations” that the player can build to essentially extend the reach of their colonies – fun strategic possibilities in these being weak points, and something you can build up to effectively colonize the fringes.

To make a long story short, what happened here is I underestimated how important it would be to convey reach-related information to the player, and in great detail. Thus, a very important binary result – whether two markets can or can not trade with each other – depended on factors that were hard for the player to properly evaluate.

Here’s a failed attempt to display market reach:


The idea here is simple – draw a circle around each market, with a radius equal to its reach. Then when two circles overlap, the markets are in reach. The sort of thing that sounds good in theory, but has several massive problems:

  • There are often multiple markets per star system, meaning the same origin for multiple circles, sometimes of the same radius
  • There are over 50 markets in a relatively small space

It might even work for a much smaller number of markets, or if they’re a lot more spread out. But as things stand – or in any reasonable neighborhood of that – it’s a total non-starter. The fundamental issue is the number of market to market connections is roughly a square of the number of markets, and that’s, to use a technical term, a whole lot of stuff to display.

At least this attempt at it looked pretty.

Uh Oh
So, ok, this sounds bad. The “reach” mechanic is not entirely unworkable – the player can figure out what to do – it’s just not well-supported by the UI, and the consequences for a mistake are harsh.

Worst-case scenario, I could see leaving something like this in the game, but at this point I felt there was enough reason to take a step back and see about replacing it with something better. Given the amount of effort it was taking to provide this mechanic with ultimately sub-par UI support, the effort to change would be a net benefit, provided the new system was good.

What I think is interesting here is that the “reach” system isn’t complicated. It’s super simple – are the markets within a certain distance? If so, they can trade. That’s it! (Ok, fine, waystations are a complication on that, but the basic principle is simple.) The point is, it was a simple system that was still hard to create a UI for.

However, going back to change a mechanic is a great opportunity to simplify, especially after having more time to experience the whole of it from a player perspective.

Alright, so reach is hard to display. Let’s nuke it – all markets can trade with each other now. What’s actually bad about this? As I mentioned earlier, it feels odd if a fringe colony is economically as well off as if it were in the core worlds. But the problem about reach is really its binary nature – so how about replacing it with something gradual, where a difference of a couple of light-years won’t be make-or-break, but which still adds up over long distances?

Enter “accessibility” – a measure of how easily a pair of markets can trade with each other.

What does it do?
When a market has demand – let’s say for food, or fuel – it will pick a supplier with the highest accessibility.

A market has a combined “supply accessibility” rating, based on how accessible the stuff it’s importing is. This gives a bonus to stability, an important market stat. A fringe market that gets its necessities from the core will have a low stability bonus, and may even have a penalty.

Income from exports is modified by the accessibility of the destination market, capped to 100%. (Can’t be negative.)

Accessibility below 0% results in a shipping penalty – i.e. if a market needs 5 food, but the best food provider’s accessibility is low, it might not be able to get 5 units of food, despite it being available.

What goes into it?

I’ll throw in some numbers here, since I think they’ll make the breakdown more clear, but they’re likely to change.

The first component is range – gradually going from 0% to in-system markets, to negative 100% at 20 light-years distance, to even more on the fringes.

A market without a spaceport gets a 100% accessibility penalty. Since shipping goes down to zero below negative 50% accessibility, that’s quite a blow.

A market with a spaceport gets plus 50%. Two markets with spaceports get a combined 100% bonus. Note that this means some in-system trade is possible with only one spaceport – there’s no range penalty, and the base -50% (+50% spaceport on one, -100% no spaceport on another) can be overcome.

Smuggling – i.e. if a commodity is illegal on one market, or if the factions are at war – incurs a 100% penalty.

Same-faction trade receives a 30% accessibility bonus, meaning all things being equal, having in-faction suppliers leads to higher stability.

How can the player influence it?
It’s shaping up to be a critically important stat for many reasons. Perhaps the main one is that getting income from exports requires the player’s markets to have higher accessibility than other suppliers – a task made more difficult by other suppliers being part of the core worlds, and so only having a small range penalty, unlike the player’s fringe holdings. What can the player do to increase the accessibility of their markets?

Upgrading the Spaceport to a Megaport gives an extra 30%. Trade-off: time and money to build, higher upkeep cost.

An administrator with the Fleet Logistics skill gives another 30%. Trade-off: not having another, more directly beneficial  skill.

A “free port” gives yet another 30%. Trade-off: reduced stability and just general increased lawlessness.

Building a waystation near the midpoint between two markets increases their relative accessibility by a variable amount. This is the main way to counteract the range penalty for a fringe colony. Trade-off: dedicating an entire colony to running a waystation, at what’s probably an otherwise unappealing location.

Destroying a trade fleet will temporarily reduce the accessibility of its port of origin – while not a way to increase the accessibility of your markets, it’s certainly a way to cut a rival supplier down to size.

And finally, a few REDACTED things.

This should give the player a range of options to consider – importantly, all with their particular downsides, so it’s hopefully not just a question of always doing all of them.

Resulting simplifications
I mentioned keeping an eye out for simplifications earlier. Accessibility itself is more complicated than reach, though it doesn’t have the same problems. I wouldn’t say it’s very complicated – several effects, and a bunch of ways to modify the value – but still, it’s certainly not a simplification over reach. However, it also let me do away with a large number of mechanics and special-case rules. Here’s a rundown – keeping in mind that all of these had to be explained to the player in the UI somewhere:

  • Reach (obviously)
  • Shipping! There was a separate mechanic for how much of a commodity could be traded. Now it’s gone, replaced by the “reduced maximum for negative accessibility” rule.
  • Shipping had a special-case rule – a bonus for two markets being in the same star system
  • Shipping had another special-case rule – a limit of 3 units for smuggling. Now handled through the 100% smuggling penalty and going into the negatives.
  • Rules for which exporter gets picked – used to involve stability and there was no clear-cut way to influence the pecking order, or overcome a same-faction supplier. Now much simpler and focused on accessibility, giving the player a clear path to get income from exports.
  • There were separate stability penalties for relying on imports and smuggling, and a stability bonus based on market size. Both of these are now handled by the “supply accessibility” rating.

Another area I could simplify was stand-alone waystations. The idea was that the player could have a bunch of these – not proper colonies, just a waystation and maybe some defenses, with these and colonies counting against separate limits. It was getting painful to maintain – having separate code paths and slightly different UI elements every time you were talking about a “colony” or a “waystation” – and this was a perfect opportunity to get rid of these.

Since with the new mechanics, you don’t need multiple waystations per route – only the best one applies – the player doesn’t need as many to be successful. I also like the idea of the location of a colony being an important consideration, and a decision whether to dedicate a colony to being a waystation – as opposed to, say, picking a planet with optimal resource deposits – is an interesting one.

This also simplified the “management penalty” mechanic – a stability penalty for going over the maximum number of colonies under your personal control. Instead of having two separate penalty values (-1 for waystations, -2 for colonies) it’s just one. In turn, this let me do a little more with the mechanic – it now turns into a “management bonus” when you’re under the maximum number of personally-governed colonies.

I’m a bit surprised by how much I was able to simplify the mechanics without losing anything of value – once accessibility was in place, a lot of things just clicked and it was a cascading sequence of things that weren’t necessary anymore. We’ve now got one strong mechanic in place of a bunch of several lesser ones with multiple special-case rules, and most importantly, there’s so much more clarity in how a player goes about becoming the preferred supplier and makes money from exports.


Comment thread here.





Tags: , , , , , ,

This entry was posted on Wednesday, January 3rd, 2018 at 8:39 pm and is filed under Development. You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.