Yes. It’s been known since the beta, but Cliff claims it can’t be changed without rebuilding the whole game (I’m still skeptical - I feel like there must be an unintended glitch that’s causing the dramatic shift in fighter survivability, possible around turret retargeting speed or missile displacement, but I’m not a programmer).
Its because they arent using fixed time-step physics, which always ends up being a mistake.
If it were a console game (PS3, Xbox360) I’d agree with you: fixed time-step is clearly the way to go. But when trying to make a game run smoothly and look right on low-end PC hardware there is a serious temptation to go to the dark side - forget the model-view-controller pattern and make a single code-path which does all three since it will run faster that way.
Once you start down the dark path, forever will it prevent your game from being deterministic at 4x playback! But I know all of us who are running the game in Wine on 4-year old Macs are grateful to Cliffski for taking a couple dark-side points.
Oh, wow, that’s news. So battles are not deterministic but actually can change depending on how you toggle the speed?
That would be a bad thing in terms of the ability to record and “playback” a battle (which should just involve knowing the starting conditions and the random number seed). If you can’t do that, then my hopes of one day seeing GSB as the centerpiece to a multiplayer Master of Orion type game would be dashed – both players would have to see the same outcome to each battle.
Correct. The result of battles will vary. Changing the speed can have a dramatic effect. Even just re-running a battle at the same speed can lead to different results.
Keep your hopes up though, and keep encouraging people to buy GSB. If it’s big enough, we’ll see a GSB 2… And I’m pretty sure I read cliffski say something like that making it deterministic at this point would be too major a rewrite, so he’d have to save that for GSB 2…
–I forgot that game speed dramatically hoses antifighter weapons though.–
Does this just include fighter weapons (when firing at opposing fighters), or does it go for cruiser and frigate anti-fighter weapons as well (frigate aa missiles, cruiser defense laser, etc.)? It sounds basically as though fighters survive for a longer period of time at 4x?..
I nearly always run at 4x, and was not aware of this anomaly.
On my understanding of how it works… It probably won’t effect the cruiser defence laser at all. I think it should have a dramatic effect on the ‘slower’ weapons, probably massive effect on the antifighter missile. If you use tractor beams, the effect should be minimised, since it’s only really a problem for small stuff that is moving fast. I have not tested this, I’m just going by what I’ve read, and how it looks.
Basically, at 4x speed everything is ‘jumping around’ a lot more… I originally assumed this was just the visual, with the physics all being done unseen, but sadly not. When we set the game to 4x, the physics is stepping at 4x too… Which means stuff can miss fighters simply because it ‘teleported’ from one side of the fighter, to the other side, without actually colliding. I think it also means the antifighter missile is getting less chances to correct it’s path (notice how their exhaust is very ‘jagged’ when at 4x speed.)
EDIT: A post cliffski made in another thread suggests my guesswork is false… He stated that whether a weapon would hit or miss is decided when it is fired - including missiles. So it’s not a physics problem as such, with turning circles etc
I usually run my battles at 2x, which keeps the pace up, but without the worst of this effect. I tend to switch to 4x once a battle is clearly decided, or if it’s a bit of a boring fight AND all the fighters are dead.
I suspect this effect is why I’ve come to favour tractor beams over antifighter missiles, since I rarely play at 1x speed…
The determinism issue might be something that could be worked around in the short term by just disabling the game speed adjustment?
For events where we need to be able to set up a match and have it play out the same every time, the game could just fix the speed to, say, x2. It would be unfortunate to not be able to adjust it up or down but if it lets battles be deterministic then it’s better than nothing.
This is what we thought was happening, but it’s never been confirmed. If you’ve figured out how to test this, we’d love to know.
And yes, the workaround that the Grand Challenge Quest group agreed on was to run each battle at a pre-agreed speed. But there was only one further Grand Challenge Quest after that discovery.
I did say in my post, the line right before the bit you quoted, that I hadn’t tested. It was just an explanation of what we think is happening, thought I made that clear.
I thought cliffski confirmed this in a blog post, anyway?
ahh, it was just the not-deterministic nature of the game he confirmed there: positech.co.uk/cliffsblog/?p=359
Well… Sounds like there’s some testing to do then, if no one has actually bothered to confirm that fighters really are harder to kill at high game speed… Has no one actually tested this yet? Really???
Well… That was ridiculously obvious in testing.
40 Rebel frigates with no engines, and 6 antifighter missiles each, versus 300 Rebel fighters with 2 rockets and speed 2.99. I ran the battle 3 times at speed 4x, three times at 1x, three times at 0.2x
At 4x rate, the fighters won with 95%, 97%, 97% remaining
At 1x rate, the fighters won with 81%, 85%, 83% remaining
At 0.2x rate, the fighters won with 78%, 78%, 76% remaining
Then I got a bit curious, about a comment I’d seen regarding frame rate… So I ran some more battles again with the action off screen…
4x: 91%, 87%, 89% remaining.
1x: 83%, 83%, 75% remaining.
0.2x: 76% remaining
Sooooo… Running fast speeds seems to substantially increase high speed fighter’s performance against antifighter missile frigates. Frame rate seems to have an impact too, with lower frame rates increasing fighter performance, but really only noticable at 4x speed on my laptop (T7250@2.0Ghz, 8600M GT)
Now trying some slower fighters… 2.58 speed rebel rocket fighters.
4x, off screen, 29%, 48%, 27%
4x, on screen, 71%, 71%, 73%
1x, on screen, 10%, 12%, 23%
1x, off screen -20%, -43%, -28% (lost all three battles)
So… The 2.58 speed fighters get a major victory if you watch the battle at 4x… And get a minor defeat if you cam away and play at 1x…
OK, now 2.58 speed rocket fighters attacking cruiser defence lasers (30 immobile cruisers with 7 cruiser defence lasers each. No shields.)
4x, on screen, 48%, 51%, 54%
4x, off screen, 75%, 64%, 60%
1x, on screen 66%, 59%, 63%
1x, off screen 55%, 57%, 68%
0.2x, off screen, 57%, 58%, 58%
Not at all sure what to make of those figures.
EDIT5: Reposting this into the bug thread that Corbeau linked to in his next post. The discussion is more relevant there, so I’d suggest any further commentary on this digression goes there.
Well, the next testing question is whether it’s exclusive to antifighter missiles. I don’t think that’s the case, but I don’t think that anyone bothered to test the other antifighter weapons after Cliff declared it was impossible to solve without re-writing the game.
Interesting that panning away from the action also has an effect. I never expected that, though in retrospect it makes sense. It also implies that different hardware, that generates different framerates, might also have an effect (which we initially thought, but couldn’t back up with any substantial trends - at least not compared to the huge difference that game speed makes).
Hilariously ignorant armchair handwaving solution to a simulation problem like that might be an option to somehow force frames for determinism. It’d cause slower computers to play 1x games in slow motion, but if the simulation has to tick the same on multiple machines, what else you gonna do?
I wonder if this effects beam weapons too? I’d bet not.
Maybe a quick fix would be to create a mod that simply turns everything into a beam weapon. e.g., keep the stats of the cruiser laser exactly as-is but change it from a bolt to a beam. That way there’s no physics of needing to see whether or not the shot intersects the target. It either hits or misses based on one role of the dice.
…granted that would pretty well screw up missile defense and would probably make plasma even deadlier, but it’s easier than rewriting the game engine.
See above. Turns out it affects everything. If you check out the threads that Corbeau linked, cliffski states that whether or not shots will hit is decided when they are fired. Rather than ‘if the shot intersects, check for a hit’ it is actually ‘if the shot hits, make sure it intersects’. After reading that, I watched carefully… And wow, I swear I saw a shot from an ion cannon curve in the air to hit a turning fighter, haha. It was a blessed shot, pre ordained to hit from the moment it left the cannon’s barrel.
I’m a bit bemused why the effect appears to have a much greater impact on antifighter missiles than it does on cruiser defence lasers (it did seem to have an effect, in my tests above, just nowhere near as dramatic.)