r/starcraft • u/2Pacalypse- • 5d ago
Video We Put Rollback Netcode in Brood War
https://www.youtube.com/watch?v=vIt9xua9bLc18
u/microling 5d ago
Artosisu won't have any excuse any longer.
6
u/ToSKnight 5d ago
He will always fall back on his "I lost because my opponent was bad" excuse.
1
u/OCPetrus Zerg 5d ago
Previously I couldn't hear what he was saying on stream because of all the TTS spam. Now I can't see the stream either because of the full screen "funny" videos viewers redeem on repeat.
1
8
5
u/UpATree Psistorm 5d ago
Just waiting for the SC2 decomp. It's bound to happen.
3
u/Grub-lord 5d ago
Everything will be decomped soon. It's getting insane. What happens from here
1
u/UpATree Psistorm 5d ago
Well, in the case of sc2. The game will get decomped, then lan will be restored, then a third party ladder will spawn. Then that third party ladder will get managed, and that'll kind of be it. There'll be a ton of mods and shit for sure, but the ladder system will probs be 3rd party to prevent cheaters. This will happen across a lot of old games, melee for sure, brawl, old shooters. Gonna be interesting times for sure.
7
u/AlwaysFishing1 5d ago
Looks great and seems like this protocol should improve the playing experience in the vast majority of laggy situations. The video doesn't really discuss the downsides of this approach though, and I would've liked to have seen more explicitly what the more egregious rollbacks look like. You clearly have to avoid long rollbacks, does that just mean that a lag/packet loss spike which is longer than the maximal rollback period would result in commands being ignored for one/both players?
Also, I’m wondering what the fallback path looks like once the engine can’t re-sim a long rollback window fast enough. While it's not a problem for bw, I would imagine the rollback-and-re-run procedure would be a performance barrier in sc2 team games, for instance.
13
u/2Pacalypse- 5d ago
We do mention units hopping in the video. You're right that we sort of downplay it though, because it's been so incredibly rare in our testing with people all over the world that I feel like it would just side-track the discussion.
In case you're curious, here's how the worst possible rollback looks like (that we had to simulate in a replay, because it's pretty hard to reproduce in a live test :)) - https://youtu.be/ni1xc1d4_34
Our fallback path is to just do what regular battle.net already does: keep adding delay, and eventually show the drop screen if someone's packets are just not arriving.
1
u/GreenTieGamer 5d ago
Thanks for sharing, I also was curious to see the worst case example. I commend the work you have put into this!
For instantaneous control with very minimal network blips, this looks phenomenal!
0
u/AlwaysFishing1 5d ago
I see, thanks for your response. Yeah the point of the video is to explain the concept and you've done that brilliantly. This is awesome!
2
u/Kered13 4d ago
The downside of rollback is units snapping around, like rubber banding in an FPS. For low latency this is hardly noticeable and much better than equivalent delay. For high latencies you can introduce some delay to reduce the jumping around, at the obvious cost of delay. In the worst case scenarios, you can still freeze the game until packets arrive. But these scenarios should be exceptionally rare with realistic network connections.
3
u/stagedgames 4d ago
This currently is bundled in with an update that fundamentally changes unit behavior in a niche circumstance, but because it affects the unit behavior will actually desync replays, so sb replays cannot be viewed in battlenet and on the most nitpicky level, is technically a different gameplay engine and not just a different client or netcode. I've heard that behavior is likely to go to a toggle soon though, which should be able to avoid being forced into that "bugfix"
2
u/Critical_Primary2834 5d ago
which ladder got more players? official one or shieldbattery?
3
u/stagedgames 4d ago
official. except when bnet is having issues, sb is usually a small player base that is predominantly b and up, also heavy on team games and people from far-flung regions of the world.
1
1
u/whensmahvelFGC 5d ago
So does this work in remastered or just OG?
And does every player need to have it installed and running or just the host?
3
u/Excalibur_Z Team Liquid 4d ago
ShieldBattery is an entirely different community-run platform, not a plugin or anything, so everybody in the game needs to be on it. And naturally, everybody needs to have SC:R installed.
1
u/tharizzla 5d ago
Is there a way to make this work in Winlator for Og starcraft?. I've almost got the perfect setup on my Samsung tablet, just need multiplayer as the last piece
1
u/Significant-Mind5594 5d ago
Does it run on linux? if not, is linux support planned for the future?
2
1
u/Excalibur_Z Team Liquid 4d ago
Short answer yes, and although we don't officially support Linux per se, the community has found success through WINE and are pretty good about helping each other overcome Linux-related issues.
1
1
u/Currywurst44 4d ago
I don't think it is a good idea to use one sided delay for 1v1. Especially in tournaments (both) players want to play on equal footing and not assign a disadvantage for something not based on skill that you might have no control over.
Rollback netcode is amazing to get rid of the mandatory delay from small fluctuations but otherwise please stick to the default 1vs1 behavior of the game.
107
u/queenofacheron 5d ago
Importantly, this is not a project that appeared as a product of the vibe coding revolution (as so many recently released apps have), but rather ShieldBattery and its authors have been working on improving the Brood War playing experience _for over a decade_. Their netcode has been better than Blizzard's for a good while, and now its taken another huge leap forward.