View Issue Details

IDProjectCategoryLast Update
0024556AI War 2[All Projects] Balance IssueMay 4, 2021 7:15 pm
ReporterzeusalmightyAssigned ToBadgerBadger 
Severityminor 
Status closedResolutionno change required 
Product VersionBeta 2.757 Super Mega Exciting Sidebar 
Fixed in Version 
Summary0024556: Dark Zenith -- Zombies become "hostile to all"
DescriptionDZ units with zombification are creating hostile-to-all zombies (including hostile to the DZ)

This is undesirable -- these zombies should be allied to the DZ (dark alliance)

TagsNo tags attached.

Activities

zeusalmighty

Mar 14, 2021 9:45 pm

developer  

DZ zombies hostil to all.save (355,539 bytes)

BadgerBadger

Mar 15, 2021 2:55 am

manager   ~0060772

Last edited: Mar 15, 2021 2:57 am

View 2 revisions

We need to define a new zombie faction allied to the DZ, then a new code path for the zombification on-death effect to give the new zombie to the DZ-allied zombie faction.

Chris, this is wholly moddable but requires some expertise, so making it easier for minor factions to make their own friendly zombies might be a nice long term modding improvement

x4000Bughunter

Mar 15, 2021 6:20 pm

administrator   ~0060786

I wonder about this a bit...

Should zombies really be whole other factions, at least in cases like this?

I wonder if it would be possible to have a zombie flag on certain units, that overrides their color, excludes them from normal fire teams, makes them behave like whatever the zombies should do (defensive or offensive turned on, etc), and the allegiances would already all be set up.

The number of extra factions and planetfactions we could wind up with otherwise is kind of intense.

x4000Bughunter

Mar 15, 2021 6:21 pm

administrator   ~0060787

I guess another alternative would be to have a way to override allegieances on specific units, to say "act like I belong to this other faction for allegiance purposes." That might be the most simple thing for me to code.

BadgerBadger

Mar 15, 2021 8:00 pm

manager   ~0060795

Being able to override allegiances on a per-unit basis actually opens up a ton of possibilities.

x4000Bughunter

Mar 16, 2021 11:06 am

administrator   ~0060796

Okay, that sounds like the most useful thing for me to do, then. It's the easiest out of the various code options (in terms of keeping it performant and having the fewest bugs). There may be some gotchas with that, but I'll look and see.

Targeting might be tough, because that filters by faction first, and then by other things.

THAT said, if just some units had special secondary flags that caused them to be extra-processed in those cases, and certain loops were re-written, I think I could make that happen.

x4000Bughunter

Mar 16, 2021 11:54 am

administrator   ~0060798

So, I have been thinking about this and looking into this more, and I think that what I can do is basically a subset of certain things, and they will have more narrow utility, but still be very useful.

I'd like for basically certain units from factions to be able to "hate less than their wider faction," which would kind of defacto make them neutral units (immune to being shot or shooting) those new groups that they hate less. I can't make anyone hate MORE, I don't think, but this has a number of different applications and I've figured out a way I can serialize it, etc.

1. The most obvious application is this, with the zombifying. Technically what we could do with zombies in general is make it so that they normally ALL hate everyone except other zombies, and then they copy the friendlyto from their originating factions. That way, if the dark zenith create zombies, then those are friendly to them and their allies, but nobody else. If humans create zombies, they are friendly to them and their allies, but no one else. And so on.

Possibly applying that too widely (as in to humans, for instance) would make it problematic. But for minor factions, this would work really well, I think. It also would work if the AI wants to generate some zombies that hate a specific minor faction, but not the player.

2. When it comes to the waves against specific factions, and the hunter units that result, and even exo war units... right now that's all being controlled by fireteams, and I think that doesn't always work 100% of the time right now for some reason. Sometimes we're winding up with these blockades of units that will kill you if you come near, but they're just camping out for whatever faction.

What I could do with them is basically make it so that any of the normal hates of their faction are blanked out EXCEPT for the one specific faction they are actually after. Possibly I would have a second data structure for "hate only this subset" that makes this more visible, particularly if they are just hating a single faction out of the normal groups they hate.

With a tool like this, then we would absolutely never see mysterious hunter threat against the player, or hunter threat that is not actually hunter threat. I could also make an additional border color setting in the lobby that lets us control the border for these "AI thing that hate somebody who is not you."

The challenging bit of this is that, if they were considered fully allied to you, they would never take shots at you, and you could not shoot them, either. I guess I could make a relaxed version where they can still autotarget you, but they can't actually path to your planets or whatever. Aspects of this have been more complicated as I've looked into it, but there are various bits that seem broken in the game right now, so it's probably worth doing in some fashion.

The zombies case is actually the easiest one, but dealing with the hunters and what can accidentally go on there also seems relevant.

BadgerBadger

Mar 16, 2021 12:59 pm

manager   ~0060799

Last edited: Mar 16, 2021 1:00 pm

View 2 revisions

These sort of changes to Hunter would require fireteam modifications I think.

I would actually lean toward "Just define a new zombie type like anti-ai zombies", since there is a time crunch and we know this would work easily. I think you'd get more bang for your buck investing the development time elsewhere. But it's your call of course, and you might see more than I do.

x4000Bughunter

Mar 16, 2021 2:15 pm

administrator   ~0060800

For the hunter ships, aren't you already basically doing this via fireteams? I am assuming that I would just be kind of following up on them.

That said, I suppose what I could do as kind of an interim easier thing is start marking hunter ships by what their initial target faction was, so that if we start seeing anomalies that we can verify, I can deal with that in some way. The problem right now is scattered reports of random hunter ships in too great of numbers suddenly attacking players, and it seems like fire teams that got away, but frankly right now there's no way to know for sure.

BadgerBadger

Mar 16, 2021 3:12 pm

manager   ~0060801

Last edited: Mar 16, 2021 3:30 pm

View 3 revisions

Hmmm. Maybe you're right, the existing set of "This should be against a specific faction" code is good enough?

I'm just concerned that making these changes will cause churn and more bugs to chase. You've suggested some things that would be real improvements, no question, but I feel like right now short-term expediency would be preferable. If there's a cheap and simple approach (which there is) then lets just do that and let you focus on more critical stuff. Lets say your improved mechanisms would take you (say) 2 hours to implement and then generate 3 bug reports each of which takes 30 minutes to track down, test and fix. The quick and dirty approach would take 20 minutes and be bug free. I feel like where things are in the development process, the quick and dirty approach would be preferred, and then you can use that extra time on MP bugfixes or Art or something else.

If we want to track down reports of excess hunter, I suggest we add the ability to track some data on each ship in the hunter fleet like "This ship was threat on Murdoch provoked by X that then converted to hunter at time Y" or "This ship is from generic hunter income"; then when a save is reported you can look at that data (basically like the fireteam history).

All that said, if you feel like your schedule affords you time to make these changes then go for it.

BadgerBadger

May 4, 2021 7:15 pm

manager   ~0061347

We're going to use a different approach for Sinister DZ

Issue History

Date Modified Username Field Change
Mar 14, 2021 9:45 pm zeusalmighty New Issue
Mar 14, 2021 9:45 pm zeusalmighty File Added: DZ zombies hostil to all.save
Mar 15, 2021 2:55 am BadgerBadger Note Added: 0060772
Mar 15, 2021 2:57 am BadgerBadger Note Edited: 0060772 View Revisions
Mar 15, 2021 6:20 pm x4000Bughunter Note Added: 0060786
Mar 15, 2021 6:21 pm x4000Bughunter Note Added: 0060787
Mar 15, 2021 8:00 pm BadgerBadger Note Added: 0060795
Mar 16, 2021 11:06 am x4000Bughunter Note Added: 0060796
Mar 16, 2021 11:54 am x4000Bughunter Note Added: 0060798
Mar 16, 2021 12:59 pm BadgerBadger Note Added: 0060799
Mar 16, 2021 1:00 pm BadgerBadger Note Edited: 0060799 View Revisions
Mar 16, 2021 2:15 pm x4000Bughunter Note Added: 0060800
Mar 16, 2021 3:12 pm BadgerBadger Note Added: 0060801
Mar 16, 2021 3:15 pm BadgerBadger Note Edited: 0060801 View Revisions
Mar 16, 2021 3:30 pm BadgerBadger Note Edited: 0060801 View Revisions
May 4, 2021 12:07 pm BadgerBadger Assigned To => BadgerBadger
May 4, 2021 12:07 pm BadgerBadger Status new => assigned
May 4, 2021 7:15 pm BadgerBadger Status assigned => closed
May 4, 2021 7:15 pm BadgerBadger Resolution open => no change required
May 4, 2021 7:15 pm BadgerBadger Note Added: 0061347