Cartography

The map UI in Starsector hasn’t changed much since it was first introduced, back when Corvus was the only star system and there was no hyperspace. It’s been tweaked here and there to support new features along the way – terrain, for example – but the core functionality has remained the same.

map_fixed

With the upcoming update drastically increasing the number of star systems the map has to handle, and its focus on exploration, it was finally time for an overhaul.
Read the rest of this entry »

Planetary Surveys

To begin, some context: a planetary survey is something you do to figure out whether a planet is worth establishing an outpost on. There might be other reasons to do it – for example, thinking about whether gathering survey data could be a good way to earn some early-game credits, and/or influence faction behavior – but those things aren’t central to the mechanic. The main path is: find a planet, survey it, and then establish an outpost.

This implies some level of procedural generation, so that the planets and star systems you’re exploring differ from game to game. I don’t want to go into the details here – it might be worth it’s own blog post, and I’m not sure how much I want to dive into how it works in the first place, to avoid spoiling the experience – but will say that yes, procedural generation is now officially a feature.

neutron_star

Read the rest of this entry »

Economy Revamp

To start off, I’d like to clarify what I mean by “economy” here – just the underlying simulation that moves around commodities and is responsible for matching up supply and demand across the Sector. This does not include things like trade disruptions, which are events that cause price changes. These are certainly part of a more expansive and player-centric definition of “economy”, but for this post, I’d like to focus purely on the commodity distribution algorithm.

Overview
So, what does the algorithm need to do? We’ve got markets and commodities, and each market has a supply (i.e. production) and a demand (i.e. consumption) for each. What we need to do is figure out where commodities will end up, given the supply/demand situation. For example, if one market is producing food, its output should be distributed among food-consuming markets according to their demand.

mi_eventide_main

There are some further complications, but the above is the gist of it – fairly straightforward supply and demand stuff, though getting it to actually work out is anything but.
Read the rest of this entry »

Revisiting the Command UI

The command UI – the interface you use to give orders to your fleet, while also piloting your flagship – has always been tricky to get right, and has gone through a few incarnations since the first release. The combat gameplay merges a top-down shooter with some RTS elements, and both place high demands on your attention. You have to be able to control your fleet, while still participating directly in the combat  - this is the goal the UI has to achieve.

The very first version of the UI used the standard RTS model – control groups, right-click to order ships around, etc. It didn’t work very well – there’s a strong incentive  to keep checking on how your ships are doing, so that you can adjust if they’re doing something you don’t like. Optimal gameplay was, then, constantly interrupting the flow of combat to open up the map, check on your fleet, and tweak their orders.

The next version – the one that’s in the current release – solved that problem by limiting how many orders can be given to ships (via “command points”) and adding the concept of “assignments”. Instead of ordering ships about, you’d create tasks – capture this, defend that, rally a carrier here. The ships would then work out the details on their own. You could also give a few direct orders if you saw the ships doing something undesirable.

This worked much better – you could create an initial set of assignments at the start of the battle, and then just focus on the combat, only occasionally adjusting them. Because you couldn’t give unlimited orders, you were freed from the burden of having to constantly give orders to feel like you’re playing optimally.

The new approach had some issues, though. When it worked (the AI doing the right thing in “working out the details”), it worked well. When it didn’t, it could be frustrating trying to fix it using the limited direct orders.

The bigger problem was (and, I suppose, still is) accessibility. RTS-like controls are the go-to assumption when one sees a map with units on it – but they didn’t work. If you clicked on a ship, hoping to tell it to do something – you couldn’t!  You’d be presented with a context menu that let you create assignments that target that ship – i.e., you could tell your fleet to escort the ship you just clicked. You couldn’t tell that ship to escort something else, not without creating that assignment first (and then using a direct order from the context menu to assign the selected ship to it – a somewhat clunky process).

Telling the game what you want done – i.e. creating an assignment – is reasonable, in the context of commanding a fleet. An admiral wouldn’t tell every frigate in the fleet exactly what to do – that’s the job of his subordinates. But being reasonable, as it turns out, doesn’t get you far when going against UI convention. Games don’t typically ask “what do you want done”, they ask “how do you want to do… eh, whatever it is, I don’t actually know/care.”

The new version – that’ll be in the next release – aims to combine the best aspects of the two approaches.
Read the rest of this entry »

Forum Blog Media FAQ Features Digg it! Del.icio.us! Share this on Facebook Reddit Stumbleupon it! Technorati Tweet it! Download Starsector for Linux Download Starsector for Mac Download Starsector for Windows