View Issue Details

IDProjectCategoryLast Update
0021557AI War 2Gameplay IssueSep 16, 2019 12:03 pm
ReporterNRSirLimbo Assigned ToChris_McElligottPark  
Status resolvedResolutionfixed 
Product Version0.885 The Audible Bodyguard 
Fixed in Version0.887 Ending Scenes 
Summary0021557: Engineers moving to the bottom-left corner of the map (something is auto-building over there?)
DescriptionSince 0.885 I've noticed that engineers sometimes start moving to the bottom-left corner of the map, their intended coordinates are in the negative 10.000 for X and Y.
Kind of annoying since you want them to build stuff, not try to move way out of bounds.

Screenshot and savegame of this happening appended.
TagsNo tags attached.

Relationships

related to 0021652 resolvedChris_McElligottPark Improved Auto-Build 

Activities

NRSirLimbo

Sep 1, 2019 7:38 am

developer  

20190901004945_1.jpg (601,454 bytes)
s1 constructor bug.save (1,467,157 bytes)

NRSirLimbo

Sep 1, 2019 7:43 am

developer   ~0052724

Edit: They seem to try and build something in that are and sometimes they send constructor beams there.
20190901134155_1.jpg (352,472 bytes)

Chris_McElligottPark

Sep 3, 2019 9:09 pm

administrator   ~0052796

This sounds like the auto-building process for things on a new planet is trying to auto-build some stuff way out of bounds.

I've noticed in at least one of the saves you sent in that 21 different structures had to be moved in-bounds on load. I'm guessing that the auto-construction of factories or something like that is creating things at a wrong location, and the engineers are trying to get over to it.

So probably this has to do with the auto-construction logic and not engineers at all.

NRSirLimbo

Sep 3, 2019 9:11 pm

developer   ~0052797

That is true, factories and energy collectors often get built away from the command station. Just didn't ever notice they got created way out of bounds, and seemingly always in the double-negative coordinates

BadgerBadger

Sep 3, 2019 9:19 pm

manager   ~0052801

Last edited: Sep 3, 2019 9:20 pm

So the game logic for autobuild currently works like this for both factories and energy collectors:
                        int minRadius = ( ExternalConstants.Instance.DistanceScale_GravwellRadius * FInt.FromParts( 0, 030 ) ).IntValue;
                        int maxRadius = ( ExternalConstants.Instance.DistanceScale_GravwellRadius * FInt.FromParts( 0, 040 ) ).IntValue;
...
                        command.RelatedPoints.Add( commandStation.Planet.GetSafePlacementPoint( Context, collectorData, commandStation.WorldLocation, minRadius, maxRadius ) );

However, GetSafePlacementPoint will return ArcenPoint.ZeroZeroPoint if there's no valid place to put things, which could cause things to be placed outside the grav well (which has always made me nervous). It looks like we are trying to put things at zero zero point.

With both autobuild factories and autobuild energy collectors we probably need to bump the safe placement radius up.

Chris_McElligottPark

Sep 3, 2019 9:24 pm

administrator   ~0052803

Ah, okay. I got this one, then, thanks!

BadgerBadger

Sep 3, 2019 9:27 pm

manager   ~0052804

All yours

Chris_McElligottPark

Sep 3, 2019 9:41 pm

administrator   ~0052806

Thanks!

* GetSafePlacementPoint now returns Engine_AIW2.Instance.CombatCenter rather than ArcenPoint.ZeroZeroPoint.
** This means that when there are problems finding a safe placement point, it will now super-stack units at the center of the grav well rather than placing units way the heck out of bounds where nothing can fight them or find them.
** This takes something unplayable and makes it merely annoying.

* The GetSafePlacementPoint code is a lot more sophisticated now, with a multi-tiered process where if it can't find a safe point in the desired radius at first, then it will expand its valid range iteratively for a bit to find a spot that is close to what is desired even if not ideal.
** This uses some more computation on planets that are very crowded, but will prevent issues where things super-stack in the middle (formerly getting placed out of bounds) because the ideal range was too restrictive. This should be quite noticeable with things like factories that auto-build on your planets.
** Note that this is entirely untested and could lead to deadlocks or other major problems for all we know. Iterative code is "fun" like that. So knock on wood, as we do our other internal testing in prior to this next build.

Issue History

Date Modified Username Field Change
Sep 1, 2019 7:38 am NRSirLimbo New Issue
Sep 1, 2019 7:38 am NRSirLimbo File Added: 20190901004945_1.jpg
Sep 1, 2019 7:38 am NRSirLimbo File Added: s1 constructor bug.savemet
Sep 1, 2019 7:38 am NRSirLimbo File Added: s1 constructor bug.save
Sep 1, 2019 7:43 am NRSirLimbo File Added: 20190901134155_1.jpg
Sep 1, 2019 7:43 am NRSirLimbo Note Added: 0052724
Sep 3, 2019 9:09 pm Chris_McElligottPark Note Added: 0052796
Sep 3, 2019 9:09 pm Chris_McElligottPark Summary Engineers moving to the bottom-left corner of the map => Engineers moving to the bottom-left corner of the map (something is auto-building over there?)
Sep 3, 2019 9:09 pm Chris_McElligottPark Description Updated
Sep 3, 2019 9:11 pm NRSirLimbo Note Added: 0052797
Sep 3, 2019 9:19 pm BadgerBadger Note Added: 0052801
Sep 3, 2019 9:20 pm BadgerBadger Note Edited: 0052801
Sep 3, 2019 9:20 pm BadgerBadger Note Edited: 0052801
Sep 3, 2019 9:24 pm Chris_McElligottPark Note Added: 0052803
Sep 3, 2019 9:27 pm BadgerBadger Assigned To => Chris_McElligottPark
Sep 3, 2019 9:27 pm BadgerBadger Status new => assigned
Sep 3, 2019 9:27 pm BadgerBadger Note Added: 0052804
Sep 3, 2019 9:41 pm Chris_McElligottPark Status assigned => resolved
Sep 3, 2019 9:41 pm Chris_McElligottPark Resolution open => fixed
Sep 3, 2019 9:41 pm Chris_McElligottPark Fixed in Version => 0.887 Ending Scenes
Sep 3, 2019 9:41 pm Chris_McElligottPark Note Added: 0052806
Sep 16, 2019 12:03 pm Chris_McElligottPark Relationship added related to 0021652