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.
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.
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 »
As usual, after a major release there’s some time to polish up some things that there just hasn’t been time for up to that point. In fact, a lot of the upcoming 0.7.2a is turning out to be about “paying off” technical and design debt – things that are “good enough for now”, but do have to be addressed at some point.
One such is phase cloaking. There’s a post from a while back on how the current mechanics came to be if you’re interested in the details, but let’s summarize:
Way, way back, the original idea for phase ships was something submarine-like, being able to hide on the battlefield and deliver surprise attacks. That sounds like fun but didn’t turn out to be practical, so phase cloaking changed to become a way to avoid damage instead – shift to another dimension, let enemy fire pass through/over your ship, uncloak, and fire back. That essential concept remains unchanged in this new iteration; the changes are looking to address some specific issues with the implementation.
What, then, are the issues? Read the rest of this entry »
Or, if you like, “A Charged Subject”.
Or “David gets Alex to basically write half the blog post by quoting his emails”.
Right, so let’s take a peek into the process of back and forth commentary and iteration Alex and I go through when adding a new weapon to Starsector. I think this may give some insight into how this game gets made and how working on one small piece of it rolls odds and ends off into other areas of development.
Our story begins with a simple request for a new weapon asset.
Just spray & pray!
Read the rest of this entry »
First, a brief summary of what this post is about – a new campaign feature that allows nearby fleets – naturally, including yours – to join ongoing battles.
If you’ve been following the development of this release, you’re probably aware that things are in the “polish things and make it fun to play” phase more so than in the “add more features” phase. Why, then, add a significant new feature at this stage? The answer is that it’s a direct response to playtesting, rather than a specifically planned-for feature on the roadmap – it’s meant to help address several important gameplay issues, some quite long-standing. Now was a good opportunity to do it, and here we are. Looking back, I’m glad I ended up taking this on now rather than later – with how many different pieces of the code this change touches, it would only get more difficult with time.
Let’s take a brief look at what the design goals are, and then we’ll dive into the specifics of how it works. Read the rest of this entry »
In an earlier post, I’d talked about terrain. An astute observer might have noticed that the terrain discussed there is all more or less normal stuff – nebluas, asteroids, etc. Nothing that’s a good fit for hyperspace, which has more of a “weird” feel.
The first question is, what’s the goal of adding terrain to hyperspace? Obviously not having any terrain there would be a bit boring; spicing things up with some variety is not a bad goal, but something more specific would help guide the design better. So: “make hyperspace travel something that can be done well or poorly by the player”. This fits with the overarching goal of terrain making travel more interesting. Unlike normal terrain – which generally makes things interesting by impacting your interactions with other fleets, i.e. hiding from someone inside a nebula – the goal for hyperspace terrain is to be interesting by itself. This fits nicely with the primary role of hyperspace as a travel medium. Read the rest of this entry »