[edit] One question though: What about chain missions? Is there anything here that by default would make a mission available only after completing a previous one? That would be the last building block missing to start some serious quest writing.
Time to crash the new server through intense reading
Just as the Hype Train was starting to slow down, Alex tosses another carload of fuel into the fires!
ALL ABOARD!!
Fortunately, we can leverage story points (talked about at length here) as a soft limiting mechanism. The rules are simple:If the colony the contact lived in was destroyed or decivilized, is the contact dead and removed automatically, or does he become a waste of a slot until you dismiss him yourself?
Up to 5 concurrent contacts are “free”; deleting a contact is also free
Contacts beyond 5 require a story point to develop
Am I correct in assuming that since contacts show up in the intel screen, their display in said screen shouldn't be set in stone? For example, making the icon/name change dynamically (for an obvious example, someone who hides their identity until more trust is earned) or showing a "fake" importance that doesn't confirm to the 1-5 scale? Just making sure since having those displays completely set in stone on the coding side would make the system quite rigid and hard to use for mods.
Are contacts forcing you to choose one of the factions in the long term, or are there other mechanisms for that, or nothing at all? Currently you can amass quite some wealth without crossing any factions, at least until you plant a flag on some rock that flies faster than it falls.
Speaking of that — wouldn't it make sense if hits on faction fleets were ordered by other factions, too? They have both more reasons and more money to make it happen.
Is there any cost to making new contracts? Credits, special items, relationship?
Will multi tag contacts offer special missions?
Also, I don't think I got that — does this system entirely replace other intel missions/bounties/etc. stuff, or is it meant to cover everything that isn't run of the mill basic stuff? System that entirely relies on contacts might not be easily noticed by newcomers.
Do you get contacts at your own colonies? Say, my first colony developed into a nice size 6+ world that is as big as a major faction's capital world. Player can get bar missions from his own worlds.
This looks great! I wonder, are there any mechanics for contacts reaching out to contact the player if they've done something exceptional? I'm thinking if they are below their 5 contact limit and complete a "hard" general bounty there is some chance of this attracting the attention of a contact. Similarly for smuggling to someplace with demand, or trading in survey data.
If I have one wish on the modding side of things, its that those very convenient looking functions be in the autogenerated API somewhere, so modders have a complete list of them. Short descriptions of what they do would also be great, though I know that can turn into a lot of work.
If the colony the contact lived in was destroyed or decivilized, is the contact dead and removed automatically, or does he become a waste of a slot until you dismiss him yourself?
Do you get contacts at your own colonies? Say, my first colony developed into a nice size 6+ world that is as big as a major faction's capital world. Player can get bar missions from his own worlds.
You might get underworld contacts there, but not player-faction contacts. Those would be too weird - the default interaction writing doesn't work, etc.
class MidgameQuestBeginning : BarEventDefinition<MidgameQuestBeginning>(
shouldShowEvent = { Midgame.shouldOfferQuest(it) },
interactionPrompt = {
addPara {
"You spot a familiar tattoo; a grey circle around the eye of a $manOrWoman" +
" in the corner of the bar, glowing a faint white. " +
"You realize that it looks a bit like a ${mark("Gate")}."
}
},
textToStartInteraction = {
"Move in for a closer look at the tattooed $manOrWoman's tripad screen."
},
onInteractionStarted = {
planetWithCache = Midgame.planetWithCache!! // Must exist for quest to be offered
}
.......
beginWithTrigger(
new HyperspaceRangeTrigger(planet, 1f, false, Stage.GO_TO_RUINS, new TriggerConditions() {
triggerCreateFleet(FleetSize.MEDIUM, FleetQuality.DEFAULT, Factions.PIRATES);
triggerSetStandardAggroPirateFlags();
triggerFleetAllowLongPursuit();
triggerPickLocationAtInSystemJumpPoint(planet.getStarSystem());
triggerSpawnFleetAtPickedLocation(“$gada_pirate”, null);
triggerOrderFleetPatrol(planet);
}
);
It could be interesting if sometimes you could find other faction contacts on your worlds - a Tri-Tachyon trader who stays on your world to manage trade routes, or a Hegemony diplomat/military attaché, for example. Holding out for such a contact would be inefficient for a player who wants to improve their standing with a specific faction, but a lucky player could take advantage of those contacts to streamline their core world visits. Those contacts could also have a lower maximum importance, too - after all, if they were really that important why have they been sent to someone else's planet instead of staying at their organization's HQ?
This is awesome! Pumped to see creating quests become more accessible.
It was fun/gratifying to see the specific shift from an imperative to a declarative system for the quests; I wrote my own wrapper to make quests declarative already, although yours is, of course, far more accessible and comprehensive.Spoilerhttps://github.com/davidwhitman/Gates-Awakened/blob/master/src/main/kotlin/org/wisp/gatesawakened/midgame/MidgameQuestBeginning.ktCodeclass MidgameQuestBeginning : BarEventDefinition<MidgameQuestBeginning>(
shouldShowEvent = { Midgame.shouldOfferQuest(it) },
interactionPrompt = {
addPara {
"You spot a familiar tattoo; a grey circle around the eye of a $manOrWoman" +
" in the corner of the bar, glowing a faint white. " +
"You realize that it looks a bit like a ${mark("Gate")}."
}
},
textToStartInteraction = {
"Move in for a closer look at the tattooed $manOrWoman's tripad screen."
},
onInteractionStarted = {
planetWithCache = Midgame.planetWithCache!! // Must exist for quest to be offered
}
.......[close]
Note: Below, I critique some example code from the blog post without full context of the rest of the API. What's more, this is *your* codebase and your project - please feel free to ignore my critique; I have my own baby codebase, I understand and won't be offended.
I do have a question; how much will the order in which you call methods in this new, declarative API matter?
That is, I presume that you must first call beginTrigger(...), then define triggers, and then endTrigger(). Is that the case, and if so, why not add a class to define a trigger so that the order that quest bits are declared doesn't matter (like a Builder pattern)?
egCodebeginWithTrigger(
new HyperspaceRangeTrigger(planet, 1f, false, Stage.GO_TO_RUINS, new TriggerConditions() {
triggerCreateFleet(FleetSize.MEDIUM, FleetQuality.DEFAULT, Factions.PIRATES);
triggerSetStandardAggroPirateFlags();
triggerFleetAllowLongPursuit();
triggerPickLocationAtInSystemJumpPoint(planet.getStarSystem());
triggerSpawnFleetAtPickedLocation(“$gada_pirate”, null);
triggerOrderFleetPatrol(planet);
}
);
Something to steal from that system if you feel so inclined: after you reach a certain trust status with the contact, you can "call" them without physically being in front of them. So in this system, perhaps after level 4(?), you get access to a direct (encrypted!) line with the contact so that you can communicate directly. Perhaps you still have to be near a Comm Relay but you get the idea.
Perhaps you can't say too much yet but will the rewards of these missions be non-standard? Credits, ships, and weapons are fine at first but by end game you're swimming in them. I presume blueprints, AI cores, Nanoforges, etc. will also be offered eventually, as well. But what about useful Intel like a completely surveyed system (with a high-value planet) or the locations of rare derelicts (like the Legion XIV)? I can think of other things more exotic but toward mid-game, I know that rewards that save me time or reduce the tedium factor are precious.
Finally, and I don't know how much espionage you're planning, I think it would be really cool if one contact put a hit out on another existing contact of yours (I could imagine Underworld contacts doing this!) Maybe the (lucrative) reward is worth it, maybe it isn't...but it adds a level of choice.
2. Hope if we're going to give incentives to player colonies to fill orders that we've had some tweaks to the late game economy so that isn't an automatic declaration of galactic war like it is now.
3. I love the changes. As always i enjoy seeing more player decision and depth added. I'm sure it's going to come with some tweaking but the concept is great, and I'm hoping plays into other systems as well (black market cough cough).
The real important revelation in the blog post isthat titanium teeth are a thing in the Sectorwait, a "Coronal Hypershunt"??
Oh, nice, we can draw GUI bars in a TooltipMakerAPI now
Future scenarios I'm having fun imagining:
- Handmade named characters as special contacts, perhaps even the faction leaders themselves. "I get jobs from the Lion of Sindria himself!"
- [REDACTED] contact when
Is this eventually going to tie in with the relationships you build up with random people across the sector (ie. station staff, fleet commanders, etc)? At the moment that is a very much unfinished and placeholder system which I always thought was going to be replaced eventually. Maybe that's in the plans for another update?
This is a little off topic but how's the balancing going so far for story points, by the way? I imagine that since the last blog post about them there has been a lot of playtesting, is the rate in which we acquire them unchanged?
What about a fourth type of contact, Scientific, whose interests revolve around surveys, scannings and Domain-era artifacts of various types?
The question is how to "sell" a real-time conversation over hypercomm. It's all pretty vague about whether that's actually possible or not... and whatever solution there needs to be able to utilize the same exact interaction text; otherwise it's way too much work to be viable.Maybe it's something you can only do if you're at a hypercom? Or only works if you've got an AI core (any grade) in your inventory? I mean, I habitually activate old domain hypercom relays whenever I find them, but there's not actually a lot of reward for doing that right now...
(Actually, that resulted in some combat changes I'm very excited about that make objectives relevant in an "actually fun" way...)Oh, this sounds interesting! I do miss having objectives be relevant - there were flaws with the old objectives = deployment value system, but it did two things very well that the current system can't really do at all: it made objectives important to take and hold, and it made small fast ships have a place even in large fleet battles, since you needed to contest with the enemy's screening forces before you could put your main combat ships on the field.
Any plans for aptitude checks/rolls in dialogue options? Like counting the number of purchased tech skills and setting your chance of successfully hacking an old TT security system during story event dialogue or something like that.
Maybe it's something you can only do if you're at a hypercom? Or only works if you've got an AI core (any grade) in your inventory? I mean, I habitually activate old domain hypercom relays whenever I find them, but there's not actually a lot of reward for doing that right now...
Oh, this sounds interesting! I do miss having objectives be relevant - there were flaws with the old objectives = deployment value system, but it did two things very well that the current system can't really do at all: it made objectives important to take and hold, and it made small fast ships have a place even in large fleet battles, since you needed to contest with the enemy's screening forces before you could put your main combat ships on the field.
Combat against REDACTED will have battle objectives (Nav Buoys etc)
Staton battles and battles against automated defenses of salvageable derelicts still don't
Deployment point distribution between opposing fleets now based primarily on number/level of officers
Is no longer updated as ships are destroyed; only computed once when an engagement round starts
Officer contribution does not depend on what type of ship they're in
But they do have to be on a ship, unassigned officers do not contribute
Battle objectives (Nav Buoys, Sensor Arrays, Comm Relays):
Now grant bonus deployment points equal to a percentage of battle size
5% for Nav Buoys and Sensor Arrays
10% for Comm Relays
Total with bonus can't exceed 60% of battle size (which is the normal cap for the larger fleet)
So: no bonus points for a fleet that already vastly outnumbers the enemy
Goal is to give player means to even out a battle where they're outnumbered through aggressive play/splitting their forces
Adjusted enemy admiral AI to value controlling points more
stuff about objectives letting you deploy moreDunno if it was intentional but I really like how elegant that solution is at also getting the player to think about deployment. It's a neat system that feels completely overlooked as 90% of the playerbase likely just shows up in their initial fleet and begins chucking hulls at the enemy until there's nothing left.
Deployment point distribution between opposing fleets now based primarily on number/level of officersOh yes!
The question is how to "sell" a real-time conversation over hypercomm. It's all pretty vague about whether that's actually possible or not... and whatever solution there needs to be able to utilize the same exact interaction text; otherwise it's way too much work to be viable.
BTW, any chance for a blog post about the deployment system update? To me it's actually more exciting than the personal contacts topic^^"It certainly is more impactful. I was kinda surprised that such a big thing was casually mentioned in a thread dedicated to a completely different topic, not that I mind it tho. Not sure it could be made into an entire blog post, seems pretty straightforward to me.
You should look up Star Traders: Frontiers, Alex. It has a similar contacts system, though it's a lot more complex since the entire game is built around it. The contacts there are faction-based, and are mission dealers, contact providers, service providers, etc, and they interact with each other and other factions.
This looks like it's going to add a great deal of depth to the game!
Is the skill that lets you get extra officers being removed with he skill update? It seems like it would be 100% mandatory if officers also let you deploy more forces.Base number of officers is now 8, but you'll still be able to get to 10 with a skill. So yes, it would seem it's gonna be ridiculously good.
Ah, actually, let me paste the relevant patch notes! Basically, instead of just giving a small buff (which they still do), objectives also let you *do* something - deploy more ships. So that's real, qualitative impact - from playtesting, capturing one actually feels fun, since you're anticipating which ships you get to deploy.
This makes using smaller ships to capture and skirmish over them worthwhile. And there are supporting changes that both don't penalize you for putting officers in small ships, and remove any incentive for lugging around 10-15 "give me more deployment points" Paragons. And, capturing objectives doesn't let you snowball an advantage - it's more about evening out the playing field.
Oh wow, % of battle size. So for those of us playing at 4-500, one of the minor objectives is enough for a cruiser, while a major objective is worth a capital. Thats pretty significant!
Hey Alex, I think it would be cool to spice up the rewards from these missions other than just cash.
Rewards could include a choice of ships, mid-level officers, a temporary (or potentially permanent) exemption from tarriffs from the local port or blueprints.
I would especially like to see blueprints here as its currently harder to get the blueprints of factions you are allied to, as raiding planets is a main way to reliably get blueprints.
obviously these would have to be scaled to fit the difficulty of the mission, but I think it would spice things up a bit from the usual cash and friendship reward.
Something else I think would be nice is to require a contact of the appropriate importance to vouch for you to progress in a faction from commission -> friendly -> cooperative.
I think it would add some barrier to entry and more nuance than just chucking over 50 ai cores to become fully allied to a faction
Very exciting! Can't wait to play around with the new content.
Dunno if it was intentional but I really like how elegant that solution is at also getting the player to think about deployment. It's a neat system that feels completely overlooked as 90% of the playerbase likely just shows up in their initial fleet and begins chucking hulls at the enemy until there's nothing left.
You should look up Star Traders: Frontiers, Alex. It has a similar contacts system, though it's a lot more complex since the entire game is built around it. The contacts there are faction-based, and are mission dealers, contact providers, service providers, etc, and they interact with each other and other factions.
This looks like it's going to add a great deal of depth to the game!
Maybe I missed something in the blog post but what exactly is different with these ''special'' bounties? I see there are potential higher-end enemies that wouldn't show up in normal bounties but it seems you'll get these after you complete a bunch of normal ones. Mind you, I'm completely fine with the way they're gonna work but I'm just confused on the ''special'' part. Or are they just called that because complications may happen? Anyways a great blog post, looking forward to relearning the game.
HUZZAH patch notes! Ok but seriously, those are some fantasstic changes. The officers being what's important in counting DP makes way more sense than ''here's a bunch of capitals''. I'm not too affected by this since I already use mostly cruisers, but I'll guess even faster ships will be useful now.
Well I am confused that if these scripts will affect the current intel codes...
Interesting blog post, I'm looking forward to all the official and modding content that this will make easier to implement:)
It might be cool if some contacts could turn into officers for hire, after you have build a rapport with them.
Maybe you could use an AI core to simulate a quest givers personality for a while. And since the personality copy was uploaded while at dock, it still believes itself to be there and thus gives you the same texts.
BTW, any chance for a blog post about the deployment system update? To me it's actually more exciting than the personal contacts topic^^"It certainly is more impactful. I was kinda surprised that such a big thing was casually mentioned in a thread dedicated to a completely different topic, not that I mind it tho. Not sure it could be made into an entire blog post, seems pretty straightforward to me.
Thanks Alex,
Really excited by the developments, as always.
Do people you interact with when answering distress beacons become contacts when they get back to safety? That would be a cool reward for saving them.
Also, can't wait until some modder uses the new functionality to turn Starsector into an AI core dating sim.
I hope that the mentioned mission difficulty scaling won't solely rely on larger fleets but include things like stealth missions where higher skills as a pilot are required.
Only indirectly related: Are there changes to the problem of random high value drops like nanoforges & alpha cores without challenges, which instantly shoot players into the late game?
I also really like the idea of having to be at a system's hyper comm and potentially using up a Gamma Core. It's a non-trivial expense that saves you some time, especially if you're a well-developed player with your own faction at some distance from the Core Worlds. I guess if you're swimming in Gamma Cores, you can make use of such a system more often but I don't know how much, if any, the AI Cores have changed. Gamma Cores don't do a whole lot for Colonies in the current version and it's not uncommon for me to have 20+ stored up after going into a few Red Beacon [REDACTED] system.
Even if Gamma Cores are unchanged (i.e. relatively useless to me under normal circumstances), the choice I now have is to use them to call my contacts or to turn them in for credits/rep with factions. That they're used as a high-end form of "currency" either way makes them vastly more important to me than present. Heck, if that was the case, I'd like to see more ways AI Cores could be used as currency for other forms of trade/mechanics.
Somewhat off-topic but it's always bugged me that bigger ships don't capture points faster than smaller ships. Something about the opportunity cost of having a capital wait around to capture a point the same length as a frigate just hasn't sat well with me. (The capital being at full speed and passively capturing the point on the way notwithstanding!) I've always felt that there could be modifiers to the capture rate, either by ship size, by deployment point cost of the ship in question, by number of ships within the capture zone, etc. However, there's never been a reason to really dive into it because the objectives were never all that important.
Now, with this new system, capturing/holding will be more important and modifiers to capture rate may be worth looking into. Capture rate could be based on ships size, but perhaps the inverse of my original logic: Frigates capture the fastest to keep them useful later. Or perhaps there's a hull mod that increases capture rate so that you make certain ships in your fleet more specialized in this role. Just a thought.
Good stuff, nice to get an update on what's being worked on.. Thanks for that :)
Also, gamma cores are useful for maintaining or repairing reputation with factions, and to me, they feel a bit too valuable for something as inconsequential as getting a few extra missions while out and about. It feels like it's something you would want to do all the time for convenience, but not something where it's actually necessary so that you feel like you need to use a very limited resource. I just can't imagine a scenario where I'm more desperate than normal to get missions so that I would think about burning AI cores instead of flying home and restocking. I would prefer basic resources like volatiles or supplies instead so that I could actually use the mechanic as a convenience outside of the time in the game where I'm farming red systems (tbh I don't even need missions anymore at that point).
Is the skill that lets you get extra officers being removed with he skill update? It seems like it would be 100% mandatory if officers also let you deploy more forces.Base number of officers is now 8, but you'll still be able to get to 10 with a skill. So yes, it would seem it's gonna be ridiculously good.
Given the new skill system, are all AI officers considered to be Max Level? Not that there's anything wrong with that.
Not in the patch notes, but needs to be dealt with: if objectives are being made more important again, the AI needs some improvements to being able to actually capture a node. For an example, if I give a capture order to a fast cruiser, and a couple of enemy frigates wander over to harass it, it should darned well sit on the node until it's captured it and only then start chasing after things that'll take it a while to catch. (For an example from a recent battle - I set a ship to capture a node... the enemy didn't even contest that node, but some of their ships happened to be going by at maybe 3000su away or so, and my ship wandered off-node towards them. Didn't even manage to get in range of anything, but it also wasn't capturing the node, either.)
Also the declarative approach is good to see, though I have to ask: why not go even further and have declarative statements and maybe basic logic in non-Java files (like .ship files)? So that adding such content could be done without having to deal with Java.
Agree with some comments here, the surprise/understated announcement above of deployment and battle related changes is as much if not more important (at least for existing players), because it touches existing core gameplay. So another blog post with a summary of it could be our next hype raising ticket, ha! :D
... actually, this reminds me of something pretty big I *completely forgot* to talk about in the blog post! Another type of "mission" is a "custom production order" that you're able to give - using a screen that's much the same as the colony ship/weapon/fighter custom production screen. Higher importance/relationship increases the max value of the order, which is delivered to storage at the colony after a time.YES!YES!YES! I remember this being a frequent suggestion, so glad it made it in. Finally some use of early game blueprint hunting.
You can pick either from your own blueprints, or from blueprints the contact has. Trade contacts don't have any, military contacts have their faction blueprints, and underworld arms dealers have the good stuff. The idea here is you can make intermittent use of blueprints you know before you have a colony up and running, and *also* it's a means to reliably get a hold of some stuff that's otherwise, for whatever reason, extremely rare.
... Does this mean that if we get a Hegemony military contact of high enough standing we can custom order XIV ships without having to raid the Hegemony for them?
It doesn't lock you to a faction, though it does make it easier to gain faction rep since completing missions for a contact will also increase your rep with the faction.I feel that it's a missed opportunity, at least in the current state of the game. Any given faction's standing, positive or negative, is mostly an arbitrary choice on the part of the player that doesn't affect anything else. It's mostly a question of how much time are you willing on to spend on buddying up with everyone.
Hmm, yeah, this is... a good point. Perhaps this could be a use for story points, actually, with full bonus XP granted so it's "eventually free, but not in the short term".I hope you won't go overboard with story point sinks, lest they become routine, ordinary. And yeah, gamma cores continue to be fairly worthless, aside from being friendship tokens.
Not necessarily. There's a lot the player can do even without officers, it just demands more skill from the player.Is the skill that lets you get extra officers being removed with he skill update? It seems like it would be 100% mandatory if officers also let you deploy more forces.Base number of officers is now 8, but you'll still be able to get to 10 with a skill. So yes, it would seem it's gonna be ridiculously good.
Also the declarative approach is good to see, though I have to ask: why not go even further and have declarative statements and maybe basic logic in non-Java files (like .ship files)? So that adding such content could be done without having to deal with Java.
I thought about it! Basically, what you're seeing as an upside - getting away from Java - is actually a downside :) There'll always be something custom, even if it's minor like putting together a string or something. And being able to use a Java editor is extremely nice. For example, I can type in "trigger" and hit auto-complete and see the list of possible methods, instead of having to look up what's valid in this particular text file or whatever. And, the documentation for this gets generated automatically, so it's better for modders, too.
(Somewhat tangentially, that's what the "code is data" point is about... that there's not much conceptual difference between a data file and a file with code; what matters is the stuff around it that makes it easier or harder to work with.)
Pure programmers have mostly logic and coding skills (*).
Pure content creators have mostly story-telling and/or art-producing skills (*).
(*) WRT to subject discussed here
Sure, there are people having a mix of skills, but it's not that common.
It doesn't lock you to a faction, though it does make it easier to gain faction rep since completing missions for a contact will also increase your rep with the faction.I feel that it's a missed opportunity, at least in the current state of the game. Any given faction's standing, positive or negative, is mostly an arbitrary choice on the part of the player that doesn't affect anything else. It's mostly a question of how much time are you willing on to spend on buddying up with everyone.
At some point I'd imagine you have to start choosing where your allegiances lie.ME (my colonies)! At some point, the core worlds die and no longer nag at my faction. No more nagging means free to explore or grind Ordos without constant interruptions grinding my activities to a halt just to babysit something.
I have no idea how the story point system will play, so I don't really know how this would feel, but my impression of how calling contacts should be used is "I'm out exploring/flying around the core and want to see if there are any convenient missions nearby to make some extra money" which is sort of a casual interaction/check and not something that feels super consequential or critical enough to warrant spending important resources (that's just my impression). Maybe you could restrict the pool of missions available remotely to be of lower quality, so that you might find a couple basic missions to make more money, but you won't get the really juicy high level missions without meeting in person? You could also restrict remote access based on relationship with the contact (they only give you their number after you become good friends :P). Those seem like more natural ways of avoiding a situation where the player never goes to meet the contact in person, but maybe I'm not thinking about the system in the right way since I haven't played it.Also, gamma cores are useful for maintaining or repairing reputation with factions, and to me, they feel a bit too valuable for something as inconsequential as getting a few extra missions while out and about. It feels like it's something you would want to do all the time for convenience, but not something where it's actually necessary so that you feel like you need to use a very limited resource. I just can't imagine a scenario where I'm more desperate than normal to get missions so that I would think about burning AI cores instead of flying home and restocking. I would prefer basic resources like volatiles or supplies instead so that I could actually use the mechanic as a convenience outside of the time in the game where I'm farming red systems (tbh I don't even need missions anymore at that point).Hmm, yeah, this is... a good point. Perhaps this could be a use for story points, actually, with full bonus XP granted so it's "eventually free, but not in the short term".
Hmm, so no matter which way you go in the tree, you get some extra deployment points and benefits to officers? That seems very reasonable.Is the skill that lets you get extra officers being removed with he skill update? It seems like it would be 100% mandatory if officers also let you deploy more forces.Base number of officers is now 8, but you'll still be able to get to 10 with a skill. So yes, it would seem it's gonna be ridiculously good.
Right! The alternate skill to "+2 officers" gives +1 to offcer level, and since officer level also factors in here, they're... not precisely equivalent, but close. I don't think it'll matter that much, anyway, since you're pretty likely to be at 40% deployment regarldess of which one you take when fighting the highest-tier enemies.
...and taking on some additonal temporary mercenary officers, for anything that's too tough otherwise.:o :o :o :o :o :o :o :o is this a new thing? or just referring to grabbing up a few low level/bad officers for a fight and then firing them immediately?
I 100% agree with SCC on this, I think the game should make you pick sides more/make your decisions more consequential. It would make sense that your hegemony contacts would be *** when you started doing missions for the TT.It doesn't lock you to a faction, though it does make it easier to gain faction rep since completing missions for a contact will also increase your rep with the faction.I feel that it's a missed opportunity, at least in the current state of the game. Any given faction's standing, positive or negative, is mostly an arbitrary choice on the part of the player that doesn't affect anything else. It's mostly a question of how much time are you willing on to spend on buddying up with everyone.
I hope you won't go overboard with story point sinks, lest they become routine, ordinary.
It doesn't lock you to a faction, though it does make it easier to gain faction rep since completing missions for a contact will also increase your rep with the faction.I feel that it's a missed opportunity, at least in the current state of the game. Any given faction's standing, positive or negative, is mostly an arbitrary choice on the part of the player that doesn't affect anything else. It's mostly a question of how much time are you willing on to spend on buddying up with everyone.
I'm kind of in the same boat as SCC here. At some point I'd imagine you have to start choosing where your allegiances lie. If you wanted to progress further up the chain or improve standing with VIPs, you'd have to start forsaking contacts from rival factions. I would find my suspension of disbelief waning if the player character could schmooze with the upper echelon of contacts for two or more rival factions simultaneously. Low-to-mid- level ones, sure, no problem, but at the highest level? I don't know if they should be mutually exclusive or just very difficult (like using Story Points along the way).
Sure, I understand the advantages of the code approach. Let me elaborate.
Pure programmers have mostly logic and coding skills (*).
Pure content creators have mostly story-telling and/or art-producing skills (*).
(*) WRT to subject discussed here
Sure, there are people having a mix of skills, but it's not that common. And there are people with coding skills that won't touch Java.
Who would create tons of missions using the new framework? How? Look further down the road, a few years from now, when Starsector will be million seller.
Ideal answer, IMHO, is content creators without programming skills, using a GUI tool. Even if such a GUI tool do not initially exist, non-code text file are accessible enough to such people and let them contribute using their existing skills. And it's easy to plug a GUI tool on top of non-code text files. Said GUI tool would be better than your IDE's autocomplete feature.
Having the option to write advanced logic in Java code sure is a good option, and I have no doubt that you and a few modding wizards will do great things with it, but IMO it should not be mandatory. There are other places where such a non-code approach could be good: for example star system definition (unless I'm mistaken, those require Java code).
In other words, you could have both the new Java declarative API/format when fine control / advanced logic is required, and a non-Java declarative file front-end for the easy cases.
I have no idea how the story point system will play, so I don't really know how this would feel, but my impression of how calling contacts should be used is "I'm out exploring/flying around the core and want to see if there are any convenient missions nearby to make some extra money" which is sort of a casual interaction/check and not something that feels super consequential or critical enough to warrant spending important resources (that's just my impression). Maybe you could restrict the pool of missions available remotely to be of lower quality, so that you might find a couple basic missions to make more money, but you won't get the really juicy high level missions without meeting in person? You could also restrict remote access based on relationship with the contact (they only give you their number after you become good friends :P). Those seem like more natural ways of avoiding a situation where the player never goes to meet the contact in person, but maybe I'm not thinking about the system in the right way since I haven't played it.
Hmm, so no matter which way you go in the tree, you get some extra deployment points and benefits to officers? That seems very reasonable.
...and taking on some additonal temporary mercenary officers, for anything that's too tough otherwise.:o :o :o :o :o :o :o :o is this a new thing? or just referring to grabbing up a few low level/bad officers for a fight and then firing them immediately?
This is awesome! Pumped to see creating quests become more accessible.
It was fun/gratifying to see the specific shift from an imperative to a declarative system for the quests; I wrote my own wrapper to make quests declarative already, although yours is, of course, far more accessible and comprehensive.Spoilerhttps://github.com/davidwhitman/Gates-Awakened/blob/master/src/main/kotlin/org/wisp/gatesawakened/midgame/MidgameQuestBeginning.ktCodeclass MidgameQuestBeginning : BarEventDefinition<MidgameQuestBeginning>(
shouldShowEvent = { Midgame.shouldOfferQuest(it) },
interactionPrompt = {
addPara {
"You spot a familiar tattoo; a grey circle around the eye of a $manOrWoman" +
" in the corner of the bar, glowing a faint white. " +
"You realize that it looks a bit like a ${mark("Gate")}."
}
},
textToStartInteraction = {
"Move in for a closer look at the tattooed $manOrWoman's tripad screen."
},
onInteractionStarted = {
planetWithCache = Midgame.planetWithCache!! // Must exist for quest to be offered
}
.......[close]
Cool! Yeah, going more declarative seems like very much the way to go. Finding the right balance is tricky, though, but I'm happy with where it's landed. And, yeah, what you've posted looks pretty solid, too. Same general idea, looks like - using a base class with some methods/data members to facilitate a declarative approach.
I'm assuming you're using a language that works on top of a jvm and compiles into Java bytecode? Not identifying offhand what it is - clojure, maybe?
Note: Below, I critique some example code from the blog post without full context of the rest of the API. What's more, this is *your* codebase and your project - please feel free to ignore my critique; I have my own baby codebase, I understand and won't be offended.
I do have a question; how much will the order in which you call methods in this new, declarative API matter?
That is, I presume that you must first call beginTrigger(...), then define triggers, and then endTrigger(). Is that the case, and if so, why not add a class to define a trigger so that the order that quest bits are declared doesn't matter (like a Builder pattern)?
egCodebeginWithTrigger(
new HyperspaceRangeTrigger(planet, 1f, false, Stage.GO_TO_RUINS, new TriggerConditions() {
triggerCreateFleet(FleetSize.MEDIUM, FleetQuality.DEFAULT, Factions.PIRATES);
triggerSetStandardAggroPirateFlags();
triggerFleetAllowLongPursuit();
triggerPickLocationAtInSystemJumpPoint(planet.getStarSystem());
triggerSpawnFleetAtPickedLocation(“$gada_pirate”, null);
triggerOrderFleetPatrol(planet);
}
);
Hmm. Honestly, I'm not sure that syntax is an improvement over having an endTrigger() call. It's an extra line and a bunch of extra syntax that imo reduces clarity - not that there's a *huge* difference.
But I think maybe we're talking about slightly different things. In my approach, you call beginTrigger() and endTrigger() to define a trigger; the various triggerXXXX methods are "what you do within the trigger", not separate triggers, right. The order of those calls may or may not matter depending on what they are, specifically.
Actually - I don't understand what you mean by "so that the order that quest bits are declared [in] doesn't matter". So I think I might just be missing something of what you mean.
connectWithGlobalFlag(Stage.GO_TO_RUINS, Stage.GET_IN_COMMS_RANGE, “$gada_gotData”);
connectWithInRangeOfCommRelay(Stage.GET_IN_COMMS_RANGE, Stage.COMPLETED);
beginWithinHyperspaceRangeTrigger(planet, 1f, false, Stage.GO_TO_RUINS);
triggerCreateFleet(FleetSize.MEDIUM, FleetQuality.DEFAULT, Factions.PIRATES);
triggerOrderFleetPatrol(planet);
endTrigger();
setTimeLimit(Stage.FAILED, MISSION_DAYS);
connectWithGlobalFlag(Stage.GO_TO_RUINS, Stage.GET_IN_COMMS_RANGE, “$gada_gotData”);
triggerCreateFleet(FleetSize.MEDIUM, FleetQuality.DEFAULT, Factions.PIRATES);
beginWithinHyperspaceRangeTrigger(planet, 1f, false, Stage.GO_TO_RUINS);
triggerOrderFleetPatrol(planet);
connectWithInRangeOfCommRelay(Stage.GET_IN_COMMS_RANGE, Stage.COMPLETED);
setTimeLimit(Stage.FAILED, MISSION_DAYS);
endTrigger();
addTrigger(new HyperspaceRangeTriggerBuilder(...)
.triggerCreateFleet(...,
new FleetCommandBuilder()
.orderFleetToPatrol(planet)
)
.triggerCreateFleet(differentFleetParams,
new FleetCommandBuilder()
.orderFleetToPatrol(aDifferentPlanet)
)
.build()
)
.It might be cool if some contacts could turn into officers for hire, after you have build a rapport with them.
Hmm, perhaps! I'm not sure that it's a useful conversion, though - a contact is generally more valuable than an officer. And if a contact would become some kind of super-officer, then that might encourage farming up contacts for that, and that doesn't seem great.
It's Kotlin, a language by JetBrains. You assume correctly; it compiles to java bytecode. It's actually an official language for developing Android apps, quite mature and stable.
SpoilerI hear your point about clarity and that may be enough of an argument on its own, but I'll explain what I meant.
A method might end up looking something like this, right?CodeconnectWithGlobalFlag(Stage.GO_TO_RUINS, Stage.GET_IN_COMMS_RANGE, “$gada_gotData”);
connectWithInRangeOfCommRelay(Stage.GET_IN_COMMS_RANGE, Stage.COMPLETED);
beginWithinHyperspaceRangeTrigger(planet, 1f, false, Stage.GO_TO_RUINS);
triggerCreateFleet(FleetSize.MEDIUM, FleetQuality.DEFAULT, Factions.PIRATES);
triggerOrderFleetPatrol(planet);
endTrigger();
setTimeLimit(Stage.FAILED, MISSION_DAYS);
But it could also look like this, if you are in the mindset of "I just need to declare all of the things for this quest":CodeconnectWithGlobalFlag(Stage.GO_TO_RUINS, Stage.GET_IN_COMMS_RANGE, “$gada_gotData”);
triggerCreateFleet(FleetSize.MEDIUM, FleetQuality.DEFAULT, Factions.PIRATES);
beginWithinHyperspaceRangeTrigger(planet, 1f, false, Stage.GO_TO_RUINS);
triggerOrderFleetPatrol(planet);
connectWithInRangeOfCommRelay(Stage.GET_IN_COMMS_RANGE, Stage.COMPLETED);
setTimeLimit(Stage.FAILED, MISSION_DAYS);
endTrigger();
The lines are the same, but I reordered them. Will this fail, due to having triggerCreateFleet(...) before beginWithinHyperspaceRangeTrigger(...)?
In the example I provided, the Kotlin one, you could swap shouldShowEvent and interactionEvent and it wouldn't matter; the point is declaring them, rather the order in which they are declared.
Another benefit of passing a Trigger object to an addTrigger method is that the trigger-specific methods could be scoped to the Trigger object, rather than available anywhere in the quest definition.
A builder is another possibility;CodeaddTrigger(new HyperspaceRangeTriggerBuilder(...)
.triggerCreateFleet(...,
new FleetCommandBuilder()
.orderFleetToPatrol(planet)
)
.triggerCreateFleet(differentFleetParams,
new FleetCommandBuilder()
.orderFleetToPatrol(aDifferentPlanet)
)
.build()
)
This syntax also allows you to create two fleets with separate order chains (call triggerCreateFleet a second time) from the same trigger event, which I'm not sure how you'd do with the code in the blog post.
Anyway, a good deal of this is personal preference as well. Take what makes sense to you.[close]
You mentioned that, if a contact’s system gets decivilized, the contact moves to another system and lose a point of importance. Maybe if the contact gets pushed around to 0 importance, instead of fading away, they ask to join you as an officer? Then you’re not missing out, and it might be a neat narrative tie-in.
I mean, there's a time-honored tradition of playing both sides against each other, so I feel like it only requires a bit of imagination to make it "make sense"! That said, all of this is to me in the category of "you could also use contacts to do <thing>". Which, sure! And it sounds like it could be cool! But the set of things like this is endless, and there are only so many ways I can say that this particular way of applying them didn't happen, and may or may not happen at some point in the future. Like, this is more in the category of a suggestion for another thing to do, and less a critique (which "missed opportunity" kind of implies), if that makes sense.Then you can take it as a signal that players want commitment to a faction be, well, a commitment, one way or another.
In that situation, that contact would be a free mercenary, temporary officer, until the contact decides to settle elsewhere (as a contact still, or just fading into obscurity) and leaves your "employ". Or you sack 'em.You mentioned that, if a contact’s system gets decivilized, the contact moves to another system and lose a point of importance. Maybe if the contact gets pushed around to 0 importance, instead of fading away, they ask to join you as an officer? Then you’re not missing out, and it might be a neat narrative tie-in.
Yeah, that could be quite fun! Hmm... probably a too-unlikely event for it to come up very often, though, especially at a point where you're not yet maxed on officers.
It's Kotlin, a language by JetBrains. You assume correctly; it compiles to java bytecode. It's actually an official language for developing Android apps, quite mature and stable.
Ah, cool - thanks for explaining!SpoilerI hear your point about clarity and that may be enough of an argument on its own, but I'll explain what I meant.
A method might end up looking something like this, right?CodeconnectWithGlobalFlag(Stage.GO_TO_RUINS, Stage.GET_IN_COMMS_RANGE, “$gada_gotData”);
connectWithInRangeOfCommRelay(Stage.GET_IN_COMMS_RANGE, Stage.COMPLETED);
beginWithinHyperspaceRangeTrigger(planet, 1f, false, Stage.GO_TO_RUINS);
triggerCreateFleet(FleetSize.MEDIUM, FleetQuality.DEFAULT, Factions.PIRATES);
triggerOrderFleetPatrol(planet);
endTrigger();
setTimeLimit(Stage.FAILED, MISSION_DAYS);
But it could also look like this, if you are in the mindset of "I just need to declare all of the things for this quest":CodeconnectWithGlobalFlag(Stage.GO_TO_RUINS, Stage.GET_IN_COMMS_RANGE, “$gada_gotData”);
triggerCreateFleet(FleetSize.MEDIUM, FleetQuality.DEFAULT, Factions.PIRATES);
beginWithinHyperspaceRangeTrigger(planet, 1f, false, Stage.GO_TO_RUINS);
triggerOrderFleetPatrol(planet);
connectWithInRangeOfCommRelay(Stage.GET_IN_COMMS_RANGE, Stage.COMPLETED);
setTimeLimit(Stage.FAILED, MISSION_DAYS);
endTrigger();
The lines are the same, but I reordered them. Will this fail, due to having triggerCreateFleet(...) before beginWithinHyperspaceRangeTrigger(...)?
In the example I provided, the Kotlin one, you could swap shouldShowEvent and interactionEvent and it wouldn't matter; the point is declaring them, rather the order in which they are declared.
Another benefit of passing a Trigger object to an addTrigger method is that the trigger-specific methods could be scoped to the Trigger object, rather than available anywhere in the quest definition.
A builder is another possibility;CodeaddTrigger(new HyperspaceRangeTriggerBuilder(...)
.triggerCreateFleet(...,
new FleetCommandBuilder()
.orderFleetToPatrol(planet)
)
.triggerCreateFleet(differentFleetParams,
new FleetCommandBuilder()
.orderFleetToPatrol(aDifferentPlanet)
)
.build()
)
This syntax also allows you to create two fleets with separate order chains (call triggerCreateFleet a second time) from the same trigger event, which I'm not sure how you'd do with the code in the blog post.
Anyway, a good deal of this is personal preference as well. Take what makes sense to you.[close]
Gotcha. I think we're looking at this differently; the requirement that things can be declared in *any* order I don't think is workable for this. For example, you might want to find a planet, then order a fleet to patrol it, etc. Or, like, you might have several different triggers and mixing up their contents is... not a thing you can do. Each of the individual tasks would be done in a declarative-ish fashion, but the ordering very much matters. This isn't a full-on declarative model, right. It's just being that in places where it's painful to do things in a more imperative way.
The way you're doing things - I think it's (at least, to the extent of my understanding) fine! But I also think that it *definitely* requires a much higher degree of coding proficiency to do. All the extra syntax, the anonymous classes that get created, the method calls from those classes, constructor calls with parameters, etc. And I really wanted to have something that I didn't have to think about too hard when either coming back to it after a while, copy/pasting some baseline, or just switching back and forth between that and working on text or some such.
(Edit: I should say, again, thank you for explaining what you meant! I appreciate you taking the time. It sounds to me like we're doing slightly different things or perhaps with slightly different goals, or some such.)
Part of what is exciting about all of this - at least to me - is that it makes this piece of the content pipeline a lot easier for me to use efficiently. More content made faster = game done faster!
Then you can take it as a signal that players want commitment to a faction be, well, a commitment, one way or another.
Thanks for taking the time to listen! What you said makes a lot of sense. I'm used to a very different type of coding environment and different use cases for said code.
Again, I'm looking forward to seeing the final update. One of my biggest complaints with writing quests today is that I needed to read and understand most of the code in your superclasses before I could properly implement the subclass, and it looks like that's being completed addressed. Great job.
There are other places where such a non-code approach could be good: for example star system definition (unless I'm mistaken, those require Java code).
also, got an idea for an outlaw mission idea, hack a relay so calls are automatically received, then call this person...
...repeatedly.
give plenty of funny dialog options.
Actually Persean League doesn't have Odysseys, it's Tri-Tachyon only.Odyssey does appear in the League faction file, but only as a priority setting. The hull isn't known so it doesn't do anything.
(Side note, "feature most likely to be overlooked", I think, is the ability to add stable locations by interacting with a star...)I do not remember the costs you gave, but if it eats a story point (without bonus XP) or burns out an alpha core, I doubt I would use it unless I find a great system I want to colonize but it does not have a stable location. (I found few such systems in previous playthroughs.)
I'm pretty sure TT sells odysseys, its just that their faction priorities are carriers and phase ships so you almost never seem them.
Odyssey does appear in the League faction file, but only as a priority setting. The hull isn't known so it doesn't do anything.Diktat never uses Odyssey, because it isn't prioritised whereas Conquest is, and since they're both warships, whenever fleet generation asks for a capital warship, it will always (or, at least, so often it's negligible) pick the prioritised ship, Conquest-class.
The Diktat definitely has access to Odyssey though.
It might be cool if some contacts could turn into officers for hire, after you have build a rapport with them.
Hmm, perhaps! I'm not sure that it's a useful conversion, though - a contact is generally more valuable than an officer. And if a contact would become some kind of super-officer, then that might encourage farming up contacts for that, and that doesn't seem great.
Maybe you could use an AI core to simulate a quest givers personality for a while. And since the personality copy was uploaded while at dock, it still believes itself to be there and thus gives you the same texts.
Have you been reading Alastair Reynolds recently? :) The whole "beta personality simulation" thing and so on...
Mh, yeah. I was thinking less in terms of mechanics and more along the lines of storytelling, flavor and having officers with an actual in-game history. So, maybe that's more something that could happen as part of actual story-missions.
Now that I think about it, though, a way that this could work mechanically is if some high level contacts were hireable as officers - but would still remain contacts. Like a liaison officer. Then you'd carry your contact around with you and would always be able to get certain missions. The bar encounter could be replaced with "Have a drink with..." in the officer tab.
Oh, when you said you worried the old approach might flood the player with too many job openings, why don't you put a slider filter on the reward to weed out the small fries once the player fleet gets big enough? Would it matter if the game has multiple job offer mechanics and don't rely on contacts alone?
Will contacts from other factions pop up on player colonies?
What officer levels do Gamma/Beta/Alpha cores have when they're used on player's automated ships (for DP-shifting)?
Will underworld contacts (eventually) reward players with sniffer-less intel gathering? Can they disrupt industries as reward?
Will trade contacts give tariff reductions?
Also, Alex, an aspect of the dev diaries I've always appreciated is you laying out your thought process and why you've decided to make things the way they are. Thanks for sticking with this project. You and the modding scene have made a very, very special thing here.
It doesn't, though I might remove the basic Procurement mission, since it gets pretty much duplicated by the contact stuff. But Analyze/Survey missions and bounties are I think in a good place - the surface-level stuff anyone has access too, and then you can dig into contacts as well.
Mh, yeah. I was thinking less in terms of mechanics and more along the lines of storytelling, flavor and having officers with an actual in-game history. So, maybe that's more something that could happen as part of actual story-missions.
Now that I think about it, though, a way that this could work mechanically is if some high level contacts were hireable as officers - but would still remain contacts. Like a liaison officer. Then you'd carry your contact around with you and would always be able to get certain missions. The bar encounter could be replaced with "Have a drink with..." in the officer tab.
Yeah, officers that are special characters could be interesting. I guess sort of like M&B-style companions?
In addition to tags, a contact also has an “importance” – a measure of how influential they are within the hierarchy of whatever organization they belong to. There are 5 levels of importance, from “very low” to “very high”. For example, a low importance trade contact would offer missions involving smaller quantities of cheaper commodities. A high importance trade contact, on the other hand… let’s just say you might need an Atlas freighter or two. Or even a colony.
This would be a fantastic feature to have and has been on my list of wants for a while. Really, just simply a way to open a rules dialogue plugin through the officer screen would be amazing and this would be the perfect use case for it. Then you could have interesting situations where a mission from a planetside contact has an intermediary encounter with one of your officers. The amount of life that would breathe into the sector would be considerable. It also makes officers feel more like personalities within your crew outside of combat instead of stat bonuses with a portrait.
Contact type tags could be worked into the hire stats like skills so you know which kinds of missions or interactions you are likely to get from that officer.
As a more concrete example, one of your officers has the "science" tag. While investigating a derelict probe, instead of a small text blurb about a nearby planet with decent resources, you could be given an intel item that says "Science Officer X wants to speak with you."
After clicking conversation button in the officer screen, the officer excitedly tells you about his/her find in the nearby system after analyzing the probe's data banks and a new intel item/mission is available - it can either be accepted directly from the dialogue or you can tell them "you'll think about it" or something like that and it remains in the intel.
Now, this example is one where you have an existing feature where you "break one link of the chain" and insert a cool dialogue encounter between the two ends, but the idea is that the plugin would be flexible enough to have a lot of different use cases. It may seem like a small thing to add, but the difference between the two experience from the perspective of the player would be notable, I'd think. It certainly would to me.
Does that mean that in early game I want to make low-importance contacts with relatively easy jobs to offer, but later I have to break up with them to get new high level contacts/jobs?
Never being able to keep friends seems a little sad! Would it not be great if contacts could also advance in importance, at least if you help them out a bunch?
I'd rather have other reasons to break up with contacs, for example some selling me out and sending me into traps...:D
That particular flow... I think it's way too complicated. The issue/main effort with these kinds of things is creating enough content for them to be worthwhile, and having that kind of involved structure makes that task more complicated. You could already to something like this, though - have a new intel item pop up based on whatever events happening, and have that item be a mission offered by your officer or w/e. So what I'm saying is mods can more or less do this already.
Ah, so high importance contacts are straight out better and if possible I only want to befriend those from the start? Does that also mean that having relationship 3 with an importance 2 contact still only gives level 2 missions?
Mhhh, seems like the importance system might be a little... superflous?
Well, except if high level contacts are meant to be this super rare, special thing that you are really happy to find. Maybe I'm just really overestimating contact density/ underestimating time needed for relation level devlopment here.
Btw., can you actually lose status wirh a contact when you fail their missions?
And another thought: imagine how cool it would be if a high relationship contact might show up personally if you send out a distress call^^
You're probably not going to be swimming in "very high" importance contacts, no. That said, you're probably going to want to stick to the higher-importance contacts overall. It's very much something I want to keep an eye on and also see how it feels in more dedicated playtesting. One idea is perhaps that having lower-importance contacts is required to get higher importance ones, or some such... the "how you get contacts" is an area of the system that's probably the most likely to see some changes/additions, though we'll see.
It's very much something I want to keep an eye on and also see how it feels in more dedicated playtesting. One idea is perhaps that having lower-importance contacts is required to get higher importance ones, or some such... the "how you get contacts" is an area of the system that's probably the most likely to see some changes/additions, though we'll see.
How will reputation with a faction influence interactions with contacts from that faction?
I think it only makes sense for Contacts lower on the ladder to introduce you to more important ones up the same chain. In fact, outside of randomly saving a high-importance Contact, why would these higher-ups having anything to do with you without some kind of bridge? I guess your reputation could precede you...
Perhaps that's a way of combining Contact acquisition with faction-wide reputation? The higher your faction rep is, the more likely a more important Contact within that faction will reach out. Since it's possible to raise faction rep outside of Contacts, the player has another avenue of getting decent Contact status if they don't grind Contacts from the start.
You could have a local (per faction) reputation, where the game builds a single score of how you are liked by patrol captains, harbor masters and merchants and such in a system. Explorers you meet could also contribute to the opinion about you back in their home system. Those individual reputations are already in place after all, but don't lead to anything. With a low level system reputation you only meet low level contacts, but their good opinion of you also contributes to a higher score.
Only then, when your local reputation increases, your chance of meeting high level contacts also increases.
So were is the next update in terms of development if I might ask? I know it's kinda taboo to ask for a timeline but knowing how far along stuff is nitty-gritty wise would be nice. Seems to me that features are set, art is (probably?) done, and now comes the coding. Most of what you mentioned in this blog is story and mission stuff, though what about the other stuff? Obviously, if there isn't a good or easy answer then that's fine as well. We appreciate you Alex.
I guess that begs a question: are contacts generated when you go to the bar/see the mission, and deleted if you don't choose to make them a contact? Or is there some underlying list of contacts that already exist that you have a chance of meeting?
I guess that begs a question: are contacts generated when you go to the bar/see the mission, and deleted if you don't choose to make them a contact? Or is there some underlying list of contacts that already exist that you have a chance of meeting?
Yes.
(To clarify: the people you see in the comm directory now, you can end up meeting in a bar, getting a job from them, and them becoming a contact. This depends on the type of job it is/whether its appropriate for that kind of person. If a mission is generated and there's no suitable existing person, then a new one is created/deleted if it's not accepted.)
Deployment point distribution between opposing fleets now based primarily on number/level of officers
Is no longer updated as ships are destroyed; only computed once when an engagement round starts
Officer contribution does not depend on what type of ship they're in
But they do have to be on a ship, unassigned officers do not contribute
...
I'm pretty confident that frigates will be useful in the next release, regardless - it'd be surprising if your 8-10 best ships didn't include one or two of them. Not only do several fleetwide skills have less of an effect when they affect too many deployment points worth of ships, but - why would you have, say, 10 Paragons or some such? It's technically the most power, but you can't deploy that all at the same time anyway, and they don't help for determining deployment points any more than having those officers in other ships would. In fact, if you have those frigates cap something, you'd come out ahead deployment points wise.
And when you consider that frigates/destroyers will provide bonuses to your *other* deployed ships (via some officer skills - Gunnery Implants provides an EW bonus when in a frigate/destroyer - larger bonus in a frigate, and via Coordinated Maneuvers)... And, also, it's possible to boost peak time - both specifically for frigates, in by flat amounts that matter more for frigates. And the EW skill gives a flat bonus instead of it varying by ship size. I think there are *a lot* of different factors working together here - some of them making frigates better, but more importantly, other factors making them into more of a force multiplier.
Stepping back, though - conceptually, I think it's better for officers to generally be assigned to a specific ship, instead of having a fleet of a bunch of different ships for every occasion with officers transferring between them. It's less hassle all around, right - neither transferring officers nor having to figure out what gets auto-assigned how when you deploy. And having officers be associated with a specific ship just feels more right to me.
Reminds me of the mod Starship legends for starsector where the longer u keep a officer in a ship the better the ship performs because the ship is more loyal or whatever the crew likes them more
Edit: Btw cant wait to hire the ISS Black Star as an Mercenary Officer XD Would be epic if they came with their own customized ship too