Dyson Forest everywhere [7434]
Moderator: Oberlus
Dyson Forest everywhere [7434]
On turn 245, every system with a planet spawned a new Dyson Forest.
Unfortunately, this was not repeatable.
I went to a saved game from a few turns earlier, and this time turn 245 passed without incident.
I figured I should document this anyways, in case it happens again in the future.
I was using the Mac 0.4.4 RC1 build.
Unfortunately, this was not repeatable.
I went to a saved game from a few turns earlier, and this time turn 245 passed without incident.
I figured I should document this anyways, in case it happens again in the future.
I was using the Mac 0.4.4 RC1 build.
- Attachments
-
- With 350 systems on low planet density, that is a lot of trees.
- dyson_everywhere.jpg (60.76 KiB) Viewed 2027 times
- Geoff the Medio
- Programming, Design, Admin
- Posts: 13587
- Joined: Wed Oct 08, 2003 1:33 am
- Location: Munich
Re: Dyson Forest everywhere [7434]
The activation for that effect is a 10% random chance, so if you replay it ~20 times, there's a good chance you'll see it repeated. Or you could edit the script to make it happen 100% of the time...
The floater tree-creation effect is scripted a bit oddly, so this might be quite plausible... To select systems where to create trees, this scope condition is used:
If the floater is not in a system, then Source.SystemID is INVALID_OBJECT_ID. If INVALID_OBJECT_ID is passed to InSystem, then it just checks that candidate objects are in a (any) system. The star type condition is eliminating the empty "deep space" systems from getting monsters added.
The fix is probably to add an InSystem condition to the activation.
I'd also replace the "InSystem Source.SystemID" with "Object Source.SystemID" to match the system that contains the source object more clearly / explicitly.
The other thing to consider is the "Not Number low = 2" condition... What it does isn't immediately apparent int his case. Normally it'd check that there does not exist at least two monsters in the source object's system. If the source's system is no system, this would, I think, check that there does not exist at least two monsters total in the universe. Would that be consistent with the situation in the game before this happens? ie. There only exists a single floater monster, and no other monsters, in the universe? Would explain why this happens so infrequently as to not have been seen before...
The floater tree-creation effect is scripted a bit oddly, so this might be quite plausible... To select systems where to create trees, this scope condition is used:
Code: Select all
scope = And [
System
Star type = [Blue White Yellow Orange Red]
InSystem Source.SystemID
Not Number low = 2 condition = And [
Ship
Monster
InSystem Source.SystemID
]
]
The fix is probably to add an InSystem condition to the activation.
I'd also replace the "InSystem Source.SystemID" with "Object Source.SystemID" to match the system that contains the source object more clearly / explicitly.
The other thing to consider is the "Not Number low = 2" condition... What it does isn't immediately apparent int his case. Normally it'd check that there does not exist at least two monsters in the source object's system. If the source's system is no system, this would, I think, check that there does not exist at least two monsters total in the universe. Would that be consistent with the situation in the game before this happens? ie. There only exists a single floater monster, and no other monsters, in the universe? Would explain why this happens so infrequently as to not have been seen before...
Re: Dyson Forest everywhere [7434]
I think we are talking about different things.
(And this might be due to a memory leak glitch or something, which would make it difficult to diagnose.)
The case I am describing is late game (turn 245), where there are no Floaters or Dyson Forests anywhere in my empire (although there are a handful in AI territory), and on this particular turn a new Dyson Forest spawned in every system in the galaxy (except the ones with no stars). This was spontaneous generation; there were not any Floaters or DF around these systems.
(Edit: I read Geoff's comment more carefully. Since this was a RC1 build, I can't turn on the Super-Tester to see how many monsters were in the galaxy on turn 244. And there were still 50-100 systems outside visual range. When I went to the save game on turn 240, by turn 244 there were 3 Floaters at the edge of sight.)
(And this might be due to a memory leak glitch or something, which would make it difficult to diagnose.)
The case I am describing is late game (turn 245), where there are no Floaters or Dyson Forests anywhere in my empire (although there are a handful in AI territory), and on this particular turn a new Dyson Forest spawned in every system in the galaxy (except the ones with no stars). This was spontaneous generation; there were not any Floaters or DF around these systems.
(Edit: I read Geoff's comment more carefully. Since this was a RC1 build, I can't turn on the Super-Tester to see how many monsters were in the galaxy on turn 244. And there were still 50-100 systems outside visual range. When I went to the save game on turn 240, by turn 244 there were 3 Floaters at the edge of sight.)
- Geoff the Medio
- Programming, Design, Admin
- Posts: 13587
- Joined: Wed Oct 08, 2003 1:33 am
- Location: Munich
Re: Dyson Forest everywhere [7434]
Yes... that's the scenario I'm attempting to explain. If a monster is moving between systems, it's in system -1. If you pass system ID -1 to InSystem, it matches things in any system. Systems are considered to be in themselves for that condition. So, the effect that's supposed to create a forest in one system would instead create a forest in almost every system.mem359 wrote:...on this particular turn a new Dyson Forest spawned in every system in the galaxy (except the ones with no stars). This was spontaneous generation; there were not any Floaters or DF around these systems.
Species.txt is easily editable to re-enabled them.Since this was a RC1 build, I can't turn on the Super-Tester...
Is that before or after all the Dyson Forests appeared? Dyson Forests spawn floaters, so I'd expect a few to have appeared if almost every system had a forest....by turn 244 there were 3 Floaters at the edge of sight.)
Re: Dyson Forest everywhere [7434]
I edited "preunlocked_items.txt" and "buildings.txt". If I start a new game, SuperTesters is build able, but if I load the saved game, it still doesn't show up in the menu.Geoff the Medio wrote:Species.txt is easily editable to re-enabled them.
However...
Every game that I started with the same seed / settings (and then built SuperTesters on turn 1) had Experimentors in the galaxy.
(Although their home world location was random.)
Thanks for the explanation.Geoff the Medio wrote:Yes... that's the scenario I'm attempting to explain. If a monster is moving between systems, it's in system -1. If you pass system ID -1 to InSystem, it matches things in any system. Systems are considered to be in themselves for that condition. So, the effect that's supposed to create a forest in one system would instead create a forest in almost every system.
I had never seen Floaters/DF spawn while moving, only when they stopped in a system, so what you describe hadn't occurred to me.
But since Experimentors are almost certainly in my game (although not in sight yet), I could imagine a Floater getting caught traveling on a star lane that the Experimentors made disappear. (It is turn 245.)
In the other thread where the Experimentors were discussed, I wondered what happened to monsters that are in mid-travel on a disappearing star lane. This situation might be what happens to Floaters (stationary in "system -1").
That might explain why I wasn't able to replicate the problem, if the Floater didn't travel on that particular star lane (or the Experimentors didn't make it appear/disappear) when I replayed turns 240-245.
Last edited by mem359 on Tue Aug 12, 2014 5:52 pm, edited 1 time in total.
- Geoff the Medio
- Programming, Design, Admin
- Posts: 13587
- Joined: Wed Oct 08, 2003 1:33 am
- Location: Munich
Re: Dyson Forest everywhere [7434]
It might take a turn update to appear.mem359 wrote:I edited "preunlocked_items.txt" and "buildings.txt". If I start a new game, SuperTesters is build able, but if I load the saved game, it still doesn't show up in the menu.
Re: Dyson Forest everywhere [7434]
Not showing up, even after a few turns.Geoff the Medio wrote:It might take a turn update to appear.mem359 wrote:I edited "preunlocked_items.txt" and "buildings.txt". If I start a new game, SuperTesters is build able, but if I load the saved game, it still doesn't show up in the menu.
It is unavailable due to "(FAILED) building unlocked for empire".
How does "preunlocked_items.txt" work?
If that is only read when the game is first created, then I wouldn't be able to activate Super Testers in a game that didn't start that way.
In any case, my guess is that the Experimentors made a star lane disappear while a Floater was traveling on it.
Re: Dyson Forest everywhere [7434]
This. "preunlocked_items.txt" is only processed during universe generation.mem359 wrote:How does "preunlocked_items.txt" work?
If that is only read when the game is first created, then I wouldn't be able to activate Super Testers in a game that didn't start that way.
- Geoff the Medio
- Programming, Design, Admin
- Posts: 13587
- Joined: Wed Oct 08, 2003 1:33 am
- Location: Munich
Re: Dyson Forest everywhere [7434]
You could add a tech (that has no prereqs) that unlocks it and that takes 1 turn and 1 RP to research.
Re: Dyson Forest everywhere [7434]
I figured out how to do that, and the work-around was effective.Geoff the Medio wrote:You could add a tech (that has no prereqs) that unlocks it and that takes 1 turn and 1 RP to research.
My last save was turn 240 (the DF explosion happened on turn 245), so things might have changed a bit...
On turn 243 (one turn for the fake tech, one turn for the Super-Test building, one turn to reveal the map), I discover that this game does NOT have Experimentors. So my pet theory was not appropriate.
The game had one DF (with 100 structure), one Behemoth of the Void, and four Floaters (including one named "Geoff the Medio"!!).
So there would have been at least two monsters (DF, BotV) in the universe.
- Geoff the Medio
- Programming, Design, Admin
- Posts: 13587
- Joined: Wed Oct 08, 2003 1:33 am
- Location: Munich
Re: Dyson Forest everywhere [7434]
I suppose, if the floater was moving, so had a system id of -1, the InSystem condition in the Number condition would actually be matching monsters that are also not in systems, so it wouldn't necessarily need to be the only monster in the universe... Just the only monster not in a system. Given the relatively small number of monsters you describe, it's still plausible.
Not sure why you were fixated on the Experimentors... They aren't needed for a floater to be not in a system... Almost any time they move, they'll be not in a system for a turn or more.
Not sure why you were fixated on the Experimentors... They aren't needed for a floater to be not in a system... Almost any time they move, they'll be not in a system for a turn or more.
Re: Dyson Forest everywhere [7434]
I was fixated on Experimentors, because that could create a case where a Floater was stationary, but outside a system.
I thought the spawning had to occur when the Floater was stationary in a system (but I guess I didn't have a reason to think that).
------
I don't know enough about the code to have an informed opinion, but I noticed this comment by Dilvish in the thread on monster spawning:
I thought the spawning had to occur when the Floater was stationary in a system (but I guess I didn't have a reason to think that).
------
I don't know enough about the code to have an informed opinion, but I noticed this comment by Dilvish in the thread on monster spawning:
Is it possible for the "second check" to get bypassed when the game was spawning Dyson Forests?If one gave up the second check, and just spawned the fleetplans at all 60 and 140 respectively, then we would have maintained our 3:7 relative distribution, but we would have spawned monster fleets at every single system, which is not really desired.
- Geoff the Medio
- Programming, Design, Admin
- Posts: 13587
- Joined: Wed Oct 08, 2003 1:33 am
- Location: Munich
Re: Dyson Forest everywhere [7434]
I think that discussion was about monster generation at the start of a game. This is mid-game effects evaluation creating monsters, which is completely unrelated.mem359 wrote:Is it possible for the "second check" to get bypassed when the game was spawning Dyson Forests?
Re: Dyson Forest everywhere [7434]
Besides turning on Super-Tester, I wiped out all (red) monsters except for 1 Floater, exited, hacked "ship_hulls.txt" activation to 0.9999, then loaded the saved game. The Floater was in transit for several turns. It did not create a DF until it reached a system (with a star), and only in that system.Geoff the Medio wrote:The other thing to consider is the "Not Number low = 2" condition... What it does isn't immediately apparent int his case. Normally it'd check that there does not exist at least two monsters in the source object's system. If the source's system is no system, this would, I think, check that there does not exist at least two monsters total in the universe. Would that be consistent with the situation in the game before this happens? ie. There only exists a single floater monster, and no other monsters, in the universe? Would explain why this happens so infrequently as to not have been seen before...
I repeated this two more times, to make sure I wasn't just getting poor random numbers.
Not able to reproduce the DF-everywhere effect.
I'll assume this was a random glitch (not worth pursuing), unless I see this happen again in the future.
- Geoff the Medio
- Programming, Design, Admin
- Posts: 13587
- Joined: Wed Oct 08, 2003 1:33 am
- Location: Munich
Re: Dyson Forest everywhere [7434]
I was able to reproduce it just now in a moderator + 1 AI empire game. Only happened after I deleted all the other monsters in the universe, except one floater moving between systems. The same floater moved around for several turns without creating anything while there were two dyson forests elsewhere.
So probably the test is actually that there are not two or more monsters in any systems (as opposed to my previous interpretations of monsters total, or monsters not in system). Fix should be the same, and is already committed.
So probably the test is actually that there are not two or more monsters in any systems (as opposed to my previous interpretations of monsters total, or monsters not in system). Fix should be the same, and is already committed.