I invented roll-back netcode in the late nineties when I worked making sports games (peer to peer). I prepared an article for the Games Gems book series in the network section but they rejected my article because they didn't think it was a good idea. I feel vindicated 20 years later by the comeback of this idea!
@dakedres
2 жыл бұрын
I might need some proof of this haha
@davidpontius7031
2 жыл бұрын
Wow that sounds cool, you got any record of the article or the response? I'd like to see it.
@djmips
2 жыл бұрын
I think the idea is fairly obvious once you really sit down and try to solve this problem but it did take a long time for it to become more mainstream.
@mikiex
2 жыл бұрын
Duke Nukem had client side prediction in the mid 90s
@DiThi
2 жыл бұрын
@@mikiex When client side prediction is used, you don't really need to save the state of the whole world nor replay player inputs to achieve consistency. Many shooters of the time instead just trust the client: You saw the other player being killed by you and the server honors that experience even if the other player was just getting behind a wall and from their perspective you would have shot through the wall. The illusion usually works with first person shooters because people run forwards where they can't look sideways.
@DiThi
2 жыл бұрын
The main hole punching technique was not explained here. It works as follows: - A and B gather the public IP and port of each other through a third party server. - A and B start sending packets to each other. Let's say A went first. - Packet from A to B is blocked by B's NAT because it was not a response. - Packet from B to A was sent to A because its NAT identified it as a response to the above packet. - Packet from A to B is also identified as a response. Hole punching is achieved. This only works in cone NATs, when the external port doesn't change for different destinations. This is typical of home internet connections. It doesn't work with symmetrical NATs, where external ports are different for different destinations, or with port restricted NATs that just block incoming traffic. Both are typical of some corporate environments.
@LaPoule1
2 жыл бұрын
Well explained 👏
@riccardoiacob4560
2 жыл бұрын
> Start video > Turn brightness up > Get flashbanged > Become blind
@seth_deegan
2 жыл бұрын
This should be called "how WebRTC works" not "WebRTC Pong". This was an extreamly good explaination and people who want to know how it works are missing out!
@bytesabre
2 жыл бұрын
Nintendo will probably C&D this just for mentioning Slippi
@archivushka
2 жыл бұрын
When Mitxela posts a new video, you know it's aesthetical explanation of something unique
@magneticflux-
2 жыл бұрын
"aesthetical" lol
@TheR971
2 жыл бұрын
I took a pause from making my board game implementation of Roads & Boats with webrtc support and saw this in my sub feed. Nice. (though since it doesn't need to be as hard realtime as pong it is easier, though there is simultaneous play as long as there are no resource conflicts but lambert clocks are good enough)) .
@Encysted
2 жыл бұрын
I've always wondered about this. Thanks for making such an easy to follow explanation and tutorial!
@SakiandCo
2 жыл бұрын
Excellent as always!
@hikingpete
2 жыл бұрын
I don't remember where I first encountered this. I had thought it was with AoE, but rereading "1500 Archers on a 28.8: Network Programming in Age of Empires and Beyond" reveals the first approach - delayed input processing. I guess that makes sense given how demanding the simulation would have been at the time. Maybe it was an FPS? Anyhow, this was a very nice presentation of the topic. Clear and concise.
@BattousaiHBr
Жыл бұрын
if i had to guess I'd say the first commercially successful implementation of rollback netcode was in some FPS game in the early 2000's.
@oleksiifisher8175
2 жыл бұрын
This video made me subscribe. Prime explanation, very entertaining. Thank you!
@parmsib
2 жыл бұрын
I started laughing when he mentioned Smash Bros. I KNEW this was heading to Slippi-ville when he started explaining the cons of delay based netcode and mentioned combos :D
@Hack3900
2 жыл бұрын
Fizzi is cool
@Kriszzzful
2 жыл бұрын
great explanation. I wish you showcased a side by side comparison of p2p pong with and without rollback, maybe in slowmotion. It‘s really fascinating, I remember when project slippi hit the smash scene with rollback it felt like magic how all of a sudden the game ran as smooth as you were playong with someone on the couch right next to you
@Owl90
2 жыл бұрын
Incredibly interesting and educating video. Thank you!
@a52productions
2 жыл бұрын
This is insane!! Rollback netcode is one of those ideas that really feels like it absolutely should not work at all, let alone as well as it does. Also, thanks for the explanation of NAT and port-forwarding! I always wondered why setting up a Minecraft server was such a confusing and anxiety-inducing pain, and now I know the reason, it's that the web is a confusing mess.
@TheBaldr
2 жыл бұрын
A minecraft server setup is easy mode. About two months ago I setup a dedicated linux server for Satisfactory without much documentation the day dedicated servers were released.
@logandunlap9156
2 жыл бұрын
you’d have to be really lazy or really dumb to think a minecraft server is difficult to set up
@a52productions
2 жыл бұрын
@@logandunlap9156 bruh i was 13 years old when i tried to do so, i didnt know what port forwarding was and i didnt have access to my router
@mariocamspam72
2 жыл бұрын
@@a52productions how did you set port forwarding up without access to router administration panel
@BattousaiHBr
Жыл бұрын
as someone that had to go through these tutorials years before working with networking, i can safely say the fault lies in the people writing these guides as they themselves barely know anything of what they're talking about.
@Masterball777
2 жыл бұрын
Love this channel but man would "Rollback Netcode Pong" be a more eye-catching title.
@thomasaustin8477
2 жыл бұрын
or rollback netpong
@silent-science
2 жыл бұрын
what a genuinely beautiful video. Thank you for this contribution to human history
@lord_danku3844
2 жыл бұрын
I shall play Pong post haste
@Meikulish
2 жыл бұрын
I'm really getting called out as a samus main in a mitxela video. I thought I was safe here!!
@TMinusRecords
2 жыл бұрын
Would be a great feature having a list of available games to join
@polecat3
2 жыл бұрын
0:50 That's my favorite pen!
@whynotanyting
2 жыл бұрын
mitlexa: uploads neurons: fired
@AlexApol
2 жыл бұрын
I work for a small isp. the internet is indeed a bunch of tubes held together by duct tape 😔
@illford6921
2 жыл бұрын
We have Rollback Pong yet some fighting games still ain't got it
@hexane360
2 жыл бұрын
I know you're being funny, but rollback code is one of those things that's very easy to add up front, by treating your game state immutably or making state updates through a consistent interface. It's almost impossible to retrofit to code designed in other styles
@enricuhl
2 жыл бұрын
The GameCube smash bros mod slippi would like a word
@logandunlap9156
2 жыл бұрын
@@hexane360 Guilty Gear XX AC+R, Blazblue Centralfiction, and Blazblue Cross Tag all now have rollback. If it was “impossible” as you say to upgrade games from delay to rollback, ArcSys wouldn’t have done it 3 times. Rivals of Aether is another game that was delay-based for a long time and eventually received rollback (iirc, i think it was upgraded to rollback with definitive edition, i could be wrong and it may not have it yet). And that’s with an indie team. As another commenter mentioned, Slippi is a fan made tool for Smash Bros Melee, that added rollback to a game that didn’t even have online, let alone design with online in mind. idk man seems pretty possible to me, the future seems quite bright for rollback retrofits
@sunglow9835
2 жыл бұрын
WOW I never thought I'd hear someone quote "the internet is a series of tubes" in 2021, what a throwback!!
@ryandikdan
2 жыл бұрын
Project Slippi is an incredible achievement
@omegasalmonfish
2 жыл бұрын
Interesting! I want to see a game played with a really bad connection now. Will the ball suddenly change trajectory in the middle of the court?
@LuisHansenNH
2 жыл бұрын
With rollback implemented, yes, but the input lag will be reduced. With its current implementation, no, every motion, including the ball, will be perfectly smooth and synced among the players, but the input lag will take a big hit. So you'll move your cursor and the pad will move a couple hundred milliseconds later.
@BattousaiHBr
Жыл бұрын
yes. one of the disadvantages of rollback is this rubberbanding effect. however, it must be stated that the disadvantages are massively better than the delay-based alternative for anything that is latency sensitive.
@chakflying1
2 жыл бұрын
Unfortunately it doesn't look smooth on my 100Hz monitor. I guess the reason is that the physics tick rate is slower than the render tick rate, hence creating a lot of jitter.
@lorenzoporciani
2 жыл бұрын
What's the minimum spec to run that? :P Maybe I could play it from my 8088 xD
@tituslafrombois1164
2 жыл бұрын
Nintendo should watch this video.
@falxie_
2 жыл бұрын
I think this is both how Rocket League and Overwatch do rollback from what I've seen of their GDC talks
@spaceshipable
2 жыл бұрын
It's interesting that port forwarding was always necessary for setting up minecraft servers. That's at least where I first heard of it
@TheJamesM
2 жыл бұрын
Given that it's not only a game, but also a server, it's to be expected that you'd need to do port forwarding to run a Minecraft server. You need to be able to advertise your server on a particular port so that clients - with whom your computer might never have communicated before - can connect to it. Your router needs to know not to throw away traffic coming in at that port, and which device to route it to (the machine running the server). That's what port forwarding is. It's been necessary for some games in some set-ups ever since people have had routers in their homes (which is ever since they've had more than one Internet-connected device in their homes), but if you're running a home server (of any sort, but particularly a game) you're pretty much guaranteed to have to forward some ports.
@blattoid
2 жыл бұрын
Neat!
@t0biascze644
Жыл бұрын
15:55 idk smash Bros just slows down to like 5fps when there is bad lag... So you have even more time to react
@capability-snob
2 жыл бұрын
Wow, that sounds easy to exploit. Presumably there's a threshold past which you just go "nope, no takesies-backsies"? Especially in the case of pong where it's fairly easy to declare that the side the ball is on is the authoritative side.
@ff4enjoyer
2 жыл бұрын
Here's the extreme example of rollback failure. The only "fair" netcode is the local VS mode kzitem.info/news/bejne/yIifyJdomKihn6A&ab_channel=brawlpro P.S. For non-Tekken people: you have to confirm the hit that got "rolled-back". On hit there's a guaranteed combo. On block the opponent gets free combo on you.
@BattousaiHBr
Жыл бұрын
not to nitpick but delay-based with artificial latency on the host is perfectly fair as well. fairness is not the only metric to care about if the game is unresponsive.
@mathgeniuszach
2 жыл бұрын
This is cool, but what happens if a packet is dropped? Do you repeatedly send packets of the same type until you get a response to guarantee that the packet is received? Also, what happens if the rollback deficit becomes too large, do you just get buffers that continue to get bigger until rollback successfully occurs? I honestly don't understand how you could possibly sync something like that accurately.
@kivylius
2 жыл бұрын
can we get one with 3 plays, e.g high card, low card.
@gljames24
2 жыл бұрын
I'm having some issues creating a match on the website.
@rokushou
2 жыл бұрын
Is rollback netcode what lag switches exploit? Depending on the game, a player "occasionally stuttering" may be more unfair than everyone having increased input lag. I know certain games where having a bad connection, whether intentionally or not, gives you an advantage.
@logandunlap9156
2 жыл бұрын
a lag switch is more annoying in delay-based netcode because everyone loses control of their characters a lag switch could be unfair in rollback because you’ll see it in the form of rubberbanding on the characters which will make it hard to keep track of them
@rokushou
2 жыл бұрын
@@logandunlap9156 Yup, the rubberbanding is what I'm referring to. It can be super unfair playing against those people because hit detection gets messed up from the perspective of your screen and they can instantly do huge bursts of damage to you when the game syncs.
@RST_Omega
2 жыл бұрын
every single fighting game dev needs to watch this, how can people make browser games that are passion project and give them rollback netcode but capcom can't put GGPO into SFV because it's "too expensive", they also had someone put out a fix for their netcode on PC and they actively went out of their way to stop it from working
@kayezero703
2 жыл бұрын
جميل
@h2_
2 жыл бұрын
How much do things change, rollback-wise, when more than two players are involved?
@BattousaiHBr
Жыл бұрын
if there's a central server, nothing at all. if one of the players is the host, I'd imagine the host to be perceived differently than other players. and thinking about it now, it is technically possible to run a mp2mp full-mesh topology, but as far as i know nobody ever implemented anything like this likely due to exponential bandwidth requirements.
@sobertillnoon
2 жыл бұрын
Wouldn't that rollback net code result in projectiles appearing mid-flight?
@Blustride
5 ай бұрын
With enough rollback and low enough startup, yeah. If you have that much rollback you have other problems
@m4rt_
2 жыл бұрын
I haven't watched everything yet, but from what I've seen, it might leak players ip address.
@WesYarber
2 жыл бұрын
Why do I have a feeling this whole project was born out of hurt derived from smash ultimate Edit: Finished the video. Yup
@TheBaldr
2 жыл бұрын
"...mix of characters that are perfectly balanced..." Just so I am on the same page, you are talking about Smash Bros????
@jaedenvanderberg3890
2 жыл бұрын
.
@ArnaudMEURET
2 жыл бұрын
Nice presentation! It’s a shame though that Pong gets the honors again. It was stolen from from the Odyssey console by Atari (namely Nolan Bushnell) and should really be in the hall of shame of our industry. The credits for “Table Tennis” goes to Ralph Baer, the creator of the Odyssey. Bushnell even tried to deny it and downplay the importance of the Odyssey. Even after losing multiple lawsuits. A despicable human being in my book.
@logandunlap9156
2 жыл бұрын
cool fact but honestly i feel like you’re splitting hairs here. we all know “Pong”, not “Table Tennis”.
@ArnaudMEURET
2 жыл бұрын
@@logandunlap9156 Exactly! Pong is the one that got all the light despite being basically plagiarism. I don’t condone patenting. But Bushnell’s pathetic attempt at rewriting history for his personal fame is abhorrent.
@Subroutine2
2 жыл бұрын
random comment
@Subroutine2
2 жыл бұрын
I have to
@xnc2t283
2 жыл бұрын
As a player, rollback is way worse - it's the culprit in rubberbanding. Also it allows lag switches to be useful (this is bad). Let me give an example, using Pong; Player 1 is heading the wrong way, away from the ball. They begin lagging. Player 2 sees player 1 _miss the save,_ continuing along their current trajectory based on previous inputs or random inputs. Player 2 returns to center to wait for the next save. Lag ends - Player 1 dodged towards, and caught the ball. The game state is reset to pretend that that always happened; _player 1 rubberbanded._ And now, suddenly the ball is zipping along an unpredictable trajectory, deep in Player 2's territory, nowhere near them. In essence, rollback netcode; * Allows rubberbanding * Makes lagswitches useful * Punishes higher-ping players in favor of lower-ping players. *This* is why it's not used in quality titles.
@Blustride
5 ай бұрын
Are these quality titles not using rollback in the room with us right now? If you have so much rollback that it’s affecting your decision making that dramatically, no netcode is going to make that connection playable.
@babylonfive
2 жыл бұрын
I LOVE YOU SO MUCH, but that was a lame NAT explanation, for sure. 8 (
@dave-im9hi
2 жыл бұрын
I love mitxela but I can’t respect him now that I know he plays bowser. Sadly I must unsub :(
Пікірлер: 91