Dumb Galaxy Forge AI Question

I recently started using my own Galaxy Forge maps but I have noticed that when I play with AI, the AI seem to just sit there or do very little. I even tried setting the AI to Unfair and it still did very little. By the time I had my fleet up and running (Titan and a few capital ships) the enemy had 1 capital ship and only 2 planets. Is there something I need to do in Galaxy Forge to ensure that the AI works properly? Thanks for anyone that can help with this issue!

6,809 views 9 replies
Reply #1 Top

No, though it has been observed the AI does less well in multistar maps, especially ones where they spawn in a system without other players.

Reply #2 Top

That might be the issue then. Thank you for the reply!

Reply #3 Top

As Goafan said, the AI doesn't play well on maps with large distances between colonizable gravity wells; multistar maps are the most common case, but the AI will display the same problems on a single-star map if you, for example, place a very good planet incredibly far away from all other gravity wells. It is important to note that the AI cares about distance only: for example, even if you have a wormhole next to said incredibly far away planet so that players could travel to instantaneously with wormhole tech, the AI will ignore the wormhole, as it sees the large distance between the two wormholes, not the instantaneous travel time between them; quite an odd oversight by the developers, if you ask me. If you still want multi-star maps, you can make sure the systems are as close to each other as possible (overlap causes displacement in the z direction, which actually makes trips longer, since gravity wells are cylinders, not spheres).

One possible work-around is to make gravity wells essentially touch each other, but reduce interstellar travel time via modding. The AI will see the gravity wells that are extremely close to each other and will be less picky about what planets it visits, but the actual travel time between gravity wells remains the same as it was in vanilla.

 
Reply #4 Top

Quoting Delnar_Ersike, reply 3
One possible work-around is to make gravity wells essentially touch each other, but reduce interstellar travel time via modding.
End of Delnar_Ersike's quote

I feel like you mean make the gravity wells touch but make a mod to increase the time required to travel. This would allow gameplay to occur the same as it currently does because jumps between gravity wells would take longer but the distance would be reduced, thus helping the AI.

In mathematical terms, assume we currently have a planet spacing of 1 unit and our ships travel through phase space at 0.1 units per second, this means it takes ten seconds to travel. Suppose we modify the planets distance to be 0.1 units (nearly touching) but make travel time 0.01 units per second. This would still take 10 seconds to travel but it would be a shorter distance thus helping the AI with its distance calculations.

Please correct me if I'm wrong.

Reply #5 Top

Be careful about putting planets so close together so as to make grav. wells touching.  The game engine loads all resources at each planet that is physically visible by the camera.  You can induce alot of load on the game if it is loading more than one or two planets' gravity wells worth of stuff at a single time.

 

This may or may not apply, but in 7ds we use very large planets and had to space our planets/galaxies far apart such that when you zoom inon a planet, only that one planet is visible (the adjacent ones are visible as icons).

 

To change the distance between planets/galaxies in general, the easiest way to to go into each galaxy file and increase or reduce the "meterspergalaxyunit" value. increasing it spreads things further out, decreasing it beings planets/galaxies closer together.  As others have said, be sure to adjust base warp speed (found in each player entity file) accordingly so you don't get super instantaneous travel or incredibly long travel times.

Reply #6 Top

Quoting WOEaintME, reply 4
I feel like you mean make the gravity wells touch but make a mod to increase the time required to travel. This would allow gameplay to occur the same as it currently does because jumps between gravity wells would take longer but the distance would be reduced, thus helping the AI.

In mathematical terms, assume we currently have a planet spacing of 1 unit and our ships travel through phase space at 0.1 units per second, this means it takes ten seconds to travel. Suppose we modify the planets distance to be 0.1 units (nearly touching) but make travel time 0.01 units per second. This would still take 10 seconds to travel but it would be a shorter distance thus helping the AI with its distance calculations.
End of WOEaintME's quote

Correct; however, it's probably easier to just add a phase jump speed increase effect to the base effects of ship supply tech 0, since that means it gets applied by default. That method also lets you control interstellar jump speed independently from "ordinary" phase jump speed.

Quoting Makon86, reply 5
Be careful about putting planets so close together so as to make grav. wells touching.  The game engine loads all resources at each planet that is physically visible by the camera.  You can induce alot of load on the game if it is loading more than one or two planets' gravity wells worth of stuff at a single time.
End of Makon86's quote

Ooh, I totally forgot about the game loading and displaying both gravity wells if both are visible at the minimum zoom level; I've had it occur to me a bunch of times, and the effect is especially noticeable when one of the loaded gravity wells is an asteroid field. I don't know if this still applies to z-stacked gravity wells though that are simply close in (x, y). Is the minimum zoom level for gravity well rendering hardcoded or moddable?

 
Reply #7 Top

No i think the distance to render is hardcoded.

Reply #8 Top

Quoting Makon86, reply 7
No i think the distance to render is hardcoded.
End of Makon86's quote

Stumbled across this while mucking around with Gameplay.constants:

    zoomDistanceLevel0ScalarForPlanets 1.5
    zoomDistanceLevel0ScalarForNonPlanets 5.0
    zoomDistanceLevel0 1000
    zoomDistanceLevel1 65000
    zoomDistanceLevel2 4000000
    nearFarThreshold 180000
    baseHyperspaceRange 1000000.0
End of quote

I'm guessing zoomDistanceLevel0 is gravity well render, zoomDistanceLevel1 is icon render, and zoomDistanceLevel2 is "blob render" (where planets are simply gray spheres that are colored based on owner).
 
Reply #9 Top

Ahh, interesting I never noticed those in the gameplay constants file!   You could try messing with those and seeing what happens, ive never modified those.