netcode
{{short description|Networking in online games}}
Netcode is a blanket term most commonly used by gamers relating to networking in online games, often referring to synchronization issues between clients and servers.
Players often blame "bad netcode" when they experience lag or reverse state transitions when synchronization between players is lost. Although these events are sometimes caused by bugs, other networking-related causes include high latency between server and client, packet loss, or network congestion. Depending on the game implementation, these issues can also be caused by non-network factors such as frame rendering time or inconsistent frame rate.{{Cite book|last1=Huynh|first1=Martin|url=http://urn.kb.se/resolve?urn=urn:nbn:se:hkr:diva-19404|title=An analysis of continuous consistency models in real time peer-to-peer fighting games|last2=Valarino|first2=Fernando|date=2019}}{{cite web
| url=http://battlelog.battlefield.com/bf4/news/view/addressing-netcode-in-bf4/
| title=Addressing "Netcode" in Battlefield 4
| date=March 2014
| publisher=EA Digital Illusions CE
| accessdate=2014-03-30}} Netcode is often designed to mask networking irregularities and create a synchronous and smooth gamestate across multiple users.
Netcode types
Unlike a local game where the inputs of all players are executed instantly in the same simulation or instance of the game, in an online game there are several parallel simulations (one for each player) where the inputs from their respective players are received instantly, while the inputs for the same frame from other players arrive with a certain delay (greater or lesser depending on the physical distance between the players, the quality and speed of the players' network connections, etc.).{{Cite web|last=|first=|date=|title=Netcode [p1]: Fightin' Words|url=https://ki.infil.net/w02-netcode.html|access-date=2020-12-07|website=ki.infil.net}} During an online match, games must receive and process players' input within a certain time for each frame (roughly 17 ms per frame at 60 FPS), and if a remote player's input of a particular frame (for example, of frame number 10) arrives when another one is already running (for example, in frame number 20, roughly 170 ms later), desynchronization between player simulations is produced. There are two main resolutions to this conflict implemented in modern games: delay-based and rollback-based resolution.
=Delay-based=
File:Delay-based Netcode Flowchart.png between them) in an online game that uses delay-based netcode in a peer-to-peer model.]]
The classic solution to this problem is the use of a delay-based netcode. When the inputs of a remote player arrive late, the game delays the inputs of the local player accordingly to synchronize the two inputs and run them simultaneously. This added delay can be disruptive for players (especially when latency is high), but overall the change is not very noticeable. However, these delays can be inconsistent due to sudden fluctuations in current latency. Should the latency between players exceed an established buffer window for the remote player, the game must wait, causing the screens to "freeze". This occurs because a delay-based netcode does not allow the simulation to continue until it receives the inputs from all the players in the frame in question.{{Cite web|last=Staff|first=Ars|date=2019-10-18|title=Explaining how fighting games use delay-based and rollback netcode|url=https://arstechnica.com/gaming/2019/10/explaining-how-fighting-games-use-delay-based-and-rollback-netcode/|access-date=2020-12-07|website=Ars Technica|language=en-us}} This variable delay causes an inconsistent and unresponsive experience compared to offline play (or to a LAN game), and can negatively affect player performance in timing-sensitive and fast-paced genres such as fighting games.{{Cite web|last=Pinnacle|date=|title=The difference between LAN and Online esports|url=http://www.pinnacle.com/en/esports-old/betting-articles|access-date=2020-12-01|website=Pinnacle|language=en}}
=Rollback=
File:Rollback Netcode Flowchart.png
An alternative system to the previous netcode is rollback netcode. This system immediately runs the inputs of the local player (so that they are not delayed as with delay-based netcode), as if it were an offline game, and predicts the inputs of the remote player or players instead of waiting for them (assuming they will make the same input as the one in the previous tick). Once these remote inputs arrive (suppose, e.g., 45 ms later), the game can act in two ways: if the prediction is correct, the game continues as-is, in a totally continuous way; if the prediction was incorrect, the game state is reverted and gameplay continues from the corrected state, seen as a "jump" to the other player or players (equivalent to 45 ms, following the example). Some games utilize a hybrid solution in order to disguise these "jumps" (which can become problematic as latency between players grows, as there is less and less time to react to other players' actions) with a fixed input delay and then rollback being used. Rollback is quite effective at concealing lag spikes or other issues related to inconsistencies in the users' connections, as predictions are often correct and players do not even notice. Nevertheless, this system can be troublesome whenever a client's game slows down (usually due to overheating), since rift problems can be caused leading to an exchange of tickets between machines at unequal rates. This generates visual glitches that interrupt the gameplay of those players that receive inputs at a slower pace, while the player whose game is slowed down will have an advantage over the rest by receiving inputs from others at a normal rate (this is known as one-sided rollback).{{Cite AV media|url=https://www.youtube.com/watch?v=0NLe4IpdS1w&ab_channel=Core-AGaming|title=Analysis: Why Rollback Netcode Is Better|date=2020-04-08|last=Lee|first=Gerald|type=Youtube|language=}} To address this uneven input flow (and consequently, an uneven frame flow as well), there are standard solutions such as waiting for the late entries to arrive to all machines (similar to the delay-based netcode model) or more ingenious{{Citation needed|date=July 2023}} solutions as the one currently used in Skullgirls, which consists of the systematic omission of one frame every seven so that when the game encounters the problem in question it can recover the skipped frames in order to gradually synchronize the instances of the games on the various machines.{{Cite web|last=Hills|first=Dakota 'DarkHorse'|date=2020-04-29|title=Skullgirls receives an improved netcode update initially created by a fan of the game|url=https://www.eventhubs.com/news/2020/apr/29/skullgirls-receives-improved-netcode-update-initially-created-fan-game/|access-date=2020-12-11|website=EventHubs|language=en}}
Rollback netcode requires the game engine to be able to turn back its state, which requires modifications to many existing engines, and therefore, the implementation of this system can be problematic and expensive in AAA type games (which usually have a solid engine and a high-traffic network), as commented by Dragon Ball FighterZ producer Tomoko Hiroki, among others.{{Cite web|last=Hills|first=Dakota 'DarkHorse'|date=2020-12-10|title=The era of delay-based netcode may finally be over for good in fighting games depending on what SNK does with The King of Fighters 15|url=https://www.eventhubs.com/news/2020/dec/10/delay-netcode-ending-kof-future/|access-date=2020-12-10|website=EventHubs|language=en}}
Although this system is often associated with a peer-to-peer architecture and fighting games, there are forms of rollback networking that are also commonly used in client-server architectures (for instance, aggressive schedulers found in database management systems include rollback functionality) and in other video game genres.
There is a popular MIT-licensed library named GGPO designed to help implement rollback networking to games (mainly fighting games).{{Cite web|last=Pusch|first=Ricky|date=2019-10-18|title=Explaining how fighting games use delay-based and rollback netcode|url=https://arstechnica.com/gaming/2019/10/explaining-how-fighting-games-use-delay-based-and-rollback-netcode/|access-date=2020-12-14|website=Ars Technica|language=en-us}}
==Games using rollback netcode==
{{Dynamic list}}
{{collist|colwidth=25em|
- Super Street Fighter II Turbo HD Remix{{cite web |url=http://www.sirlin.net/sf-hdr/street-fighter-hd-remix-features |title=Street Fighter HD Remix Features |last=Sirlin |first=David |website=Sirlin.Net |date=18 August 2014 |access-date=2020-02-06 |quote=Note that the networking uses Tony Cannon's ggpo technique, and he consulted to ensure it was done correctly.}} (2008)
- Marvel vs. Capcom 2: New Age of Heroes{{cite web |url=https://www.capcom-unity.com/sven/blog/2009/04/27/wheres_yo_curleh_mustache_yes_mvc2_is_real | title=Where's Yo Curleh Mustache? Yes, MVC2 is Real! |last=Svensson |first=Christian |website=capcom-unity.com|access-date=2020-02-20 |quote=With the game being developed by Backbone, we are using largely the same, critically acclaimed net code that we used in Super Street Fighter 2 Turbo HD Remix and with that will come our player match quarter mode/lobby system that has proven so popular.}} (2009)
- Touhou Suimusou: Immaterial and Missing Power{{efn|name=Fanmade}} (2009)
- Street Fighter X Tekken{{cite web |url=https://www.eurogamer.net/articles/2012-03-09-capcom-looking-to-improve-street-fighter-x-tekken-online-sound-problems |title=Capcom looking to improve Street Fighter x Tekken online sound problems |last=Yin-Poole |first=Wesley |date=2012-03-09
|website=Eurogamer |access-date=2019-10-22 }} (2012)
- PlayStation All-Stars Battle Royale{{cite web |url=https://www.cheatcc.com/ps3/rev/playstationalstarsbattleroyalereview2.html |title=PlayStation All-Stars Battle Royale Review|last=D'Argenio|first=Angelo|date=2012-11-20|website=Cheat Code Central}} (2012)
- Touhou Hisoutensoku{{efn|name=Fanmade}}{{cite web |url=https://hisouten.wordpress.com/2012/12/25/touhou-hisoutensoku-rollcaster-official-release/ |title=Touhou Hisoutensoku Rollcaster Official Release | date=2012-12-25 | access-date=2020-07-18 |quote=Thanks to Fireseal, Touhou Hisoutensoku can now be played with rollback enabled; long story short, intercontinental play with low delay is now possible. |website=#hisouten@irc.rizon.net}} (2012)
- Killer Instinct (2013){{cite web |url=http://www.killerinstinctcentral.com/exclusive-everything-we-know-about-killer-instinct-for-xbox-one/ |title=EXCLUSIVE: Everything We Know About Killer Instinct For Xbox One |publisher=Killer Instinct Central |date=September 9, 2013 |access-date=March 1, 2016}}
- Killer Instinct Classic{{efn|name=Patch}}{{cite web |url=https://www.siliconera.com/2014/12/23/killer-instinct-classic-getting-online-multiplayer/ |title=Killer Instinct Classic Getting Online Multiplayer |last=Sahdev |first=Ishaan |date=2014-12-23 |website=Siliconera |access-date=2019-10-22}}{{cite tweet |user=CodeMystics |number=806737673184419840 |date=December 8, 2016 |title=FWIW, we do have rollback netcode (e.g. it's an option in KI Classic), which is what GGPO is, but not used in SNK products.}} (2013)
- Killer Instinct 2 Classic (2014)
- Eternal Fighter Zero{{efn|name=Fanmade}} (2014)
- Melty Blood Actress Again Current Code{{efn|name=Fanmade}}{{cite web |url=https://www.rpgsite.net/feature/4802-branching-path-melty-blood-actress-again-current-code-s-steam-version |title=Branching Path: Melty Blood Actress Again Current Code's Steam Version |last=Torres |first=Josh |date=2016-04-22 |website=RPG Site |access-date=2020-05-18 |quote=As a matter of fact, two very talented individuals from the Melty Blood community, Mauve and Madscientist, built custom online multiplayer clients for the PC versions of Act Cadenza Ver. B and Actress Again Current Code respectively. While they were easy to use after spending a little bit of time understanding their interface, it still required a separate program. These clients are still impressive to this day because they minimized input lag by incorporating rollback netcode (now seen in Street Fighter V) and kept frame stuttering or "laggy matches" to a minimum.}}{{cite tweet |user=MadscientistCC |number=562006925756211200 |date=Feb 1, 2015 |title=Rollback is out}} (2015)
- Brawlhalla (2015)
- Street Fighter V{{cite web |url=https://www.gamasutra.com/view/news/269805/Sponsored_Meet_the_company_behind_the_P2P_networking_of_Street_Fighter_V.php |archive-url=https://web.archive.org/web/20160410024540/http://www.gamasutra.com/view/news/269805/Sponsored_Meet_the_company_behind_the_P2P_networking_of_Street_Fighter_V.php |url-status=dead |archive-date=April 10, 2016 |title=Sponsored: Meet the company behind the P2P networking of Street Fighter V |author=Nettention |date=2016-04-06 |website=Gamasutra |access-date=2019-10-22 }} (2016)
- Mortal Kombat XL (2016)
- For Honor (2017)
- River City Ransom: Underground{{cite web |url=https://www.vice.com/en/article/reviving-river-city-ransom-and-reinventing-the-brawler/ |title=Reviving 'River City Ransom' and Reinventing the Brawler |last=Wright |first=Steven T. |date=2017-03-31 |website=VICE |access-date=2020-01-29 |quote=Crenna and co. even coded the online multiplayer around a "rollback driver," a challenging technical feature usually reserved for popular fighting games like Street Fighter.}} (2017)
- Injustice 2{{cite web |url=https://www.gamespot.com/articles/injustice-2-multiplayer-will-use-popular-fighting-/1100-6440904/ |title=E3 2016: Injustice 2 Multiplayer Will Use Popular Fighting Game Netcode |last=Paget |first=Mat |date=2016-07-14 |website=GameSpot |access-date=2019-10-04 |quote=He talked about the game's loot drops and gear system, but he also revealed that Injustice 2 will use GGPO netcode for its multiplayer.}} (2017)
- Marvel vs. Capcom: Infinite{{cite web |url=https://kotaku.com/marvel-vs-capcom-infinite-wants-even-newbies-to-have-a-1794685310 |title=Marvel vs. Capcom Infinite Wants Even Newbies To Have A Blast |last=Walker |first=Ian |date=2017-04-27 |website=Kotaku |access-date=2020-01-11 |quote=Once players have a firm grasp on the fundamentals, they can hop online and test their burgeoning skills against worldwide opponents, one-on-one or in lobbies, using Capcom’s proprietary rollback netcode.}} (2017)
- Umineko: Golden Fantasia{{cite web |url=http://blog.mangagamer.org/2017/12/07/golden-fantasia-rollback-netplay/ |title=Golden Fantasia & Rollback Netplay |author= |date=2017-12-07 |website=MangaGamer Staff Blog |access-date=2019-10-22 |quote=Of course, once a game goes worldwide, this no longer holds true, and something has to be done to account for network issues, which is why we made a point of implementing rollback netplay into our version of Umineko: Golden Fantasia.}} (2017)
- Acceleration of Suguri 2{{cite web |url=https://store.steampowered.com/app/390710/Acceleration_of_SUGURI_2/ |title=Acceleration of SUGURI 2 |author= |website=Steam |access-date=2020-01-28 |quote=Online and Split-screen Multiplayer with rollback netcode}} (2018)
- The King of Fighters '97 Global Match{{efn|name=Patch}}{{cite web |url=https://steamcommunity.com/games/702120/announcements/detail/3808235299525528256 |title=Rollback Netcode and Chinese UI localization! |author= |date=2018-05-10 |website=Steam Community |access-date=2019-10-22 }} (2018)
- Street Fighter 30th Anniversary Collection{{cite web |url=https://blog.us.playstation.com/2018/03/20/street-fighter-30th-anniversary-collection-arrives-on-may-29-2018/ |title=Street Fighter 30th Anniversary Collection Arrives on May 29, 2018 |last=Wong |first=Andy |date=2018-03-20 |website=PlayStation.Blog |access-date=2019-10-22 |quote=Online play also features rollback technology that provides low-latency matches with the ability to adjust your own input buffer speed via the in-game menu to keep your online experience smooth.}} (2018)
- Lethal League Blaze (2018)
- Mortal Kombat 11 (2019)
- Fight of Gods{{efn|name=Patch}}{{cite web |url=https://steamcommunity.com/games/612930/announcements/detail/1625148260770416175 |title = Jesus is back!! Balance adjustment and new netcode tech (Roll back) online! |author=Digital Crafter Team | date=May 8, 2019 |website=Steam Community |access-date=February 26, 2020 |quote=On Net code, we were using delay base before this update. And this time we changed to (Roll Back) method, it should bring you better input experience. Please give it a try!}} (2019)
- Samurai Shodown V Special{{efn|name=Patch}}{{cite tweet |user=CodeMystics |number=1141043370111819776 |date=June 18, 2019 |title=We're thrilled to team up with @SNKPofficial and @SamuraiShodown to offer you an "aperitif" as you wait to #EmbraceDeath. Play the UNCENSORED SamSho V Special on Windows (Steam or GOG) now with all the features of the PS4 version of SSVS, even online play!}} (2019)
- Power Rangers: Battle for the Grid (2019)
- Fight of Animals{{cite tweet |user=FightofAnimals |number=1207815574652248065 |date=19 December 2019 |title=Rollback }} (2019)
- Garou: Mark of the Wolves{{efn|name=Patch}}{{cite tweet |user=CodeMystics |number=1220137581662240768 |date=January 22, 2020 |title=Thanks @SNKPofficial SNK for letting us bring #Garou: Mark of the Wolves into the Code Mystics rollback netcode family! :) PS4/Vita's patched & Steam/GOG versions are updated to our code too. (Fans of the Steam/GOG DotEmu version can still access it via beta code "dotemuversion"))}} (2020)
- Maiden & Spell{{cite web |url=https://www.maidenspellgame.com/ |title=Maiden & Spell |access-date=2020-01-28 |quote=And yes, the online battles have rollback netcode.}} (2020)
- Mighty Fight Federation{{cite tweet |user=FightMighty |number=1228425828750331904 |date=February 14, 2020 |title=In addition to our single player and local VS modes, Mighty Fight Federation features both Online Quickplay and Lobby matches for up to 4 players built on a rollback netcode system! Steam Early Access is available now!}} (2020)
- The Last Blade 2{{efn|name=Patch}}{{cite tweet |user=krispykaiser |number=1253489135379025920 |date=April 23, 2020 |title=Before a release, we normally QC to make sure a game is running smoothly, but these are unusual times so we'd like to offer you a chance to beta test Code Mystics' newest rollback update on Steam: THE LAST BLADE 2.}} (2020)
- Samurai Shodown NeoGeo Collection{{cite tweet |user=MikeJMika |number=1184588680654151680 |date=October 16, 2019 |title=It does have rollback. Switch suffers from how many simulations you can do for rollback due to CPU speed.}} (2020)
- Super Smash Bros. Melee{{efn|name=Fanmade}}{{cite web |url=https://www.engadget.com/online-super-smash-bros-melee-slippi-004724839.html |title=Fan mod adds modern online features to 'Super Smash Bros. Melee' |last=Smajstrla |first=Ann |date=2020-06-23 |website=Engadget |access-date=2020-08-02}} (2020)
- Fighting EX Layer{{efn|name=Patch}}{{cite web |url=https://www.siliconera.com/fighting-ex-layer-patch-includes-rollback-netcode/ |title=Fighting EX Layer Patched to Rollback Netcode in Latest Update |last=Wong |first=Alistair |date=2020-08-01 |website=Siliconera |access-date=2020-08-06 }} (2020)
- Spelunky 2{{cite tweet |user=mossmouth |number=1305944381321437184 |date=September 15, 2020 |title=FYI, Spelunky 2's online multiplayer uses rollback netcode and was designed for it from the beginning. }} (2020)
- The King of Fighters 2002: Unlimited Match{{efn|name=Patch}}{{cite tweet |user=SNKPofficial |number=1310481015685537793 |date=September 28, 2020 |title=Get ready because KOF 2002 UM is releasing an open community beta test for its upcoming rollback netcode patch on Steam! }} (2020)
- Dual Souls: The Last Bearer{{efn|name=Patch}}{{Cite tweet |user=GamesStun |number=1326264388806987781 |title=The new update for Dual Souls will include advanced training options to study complex scenarios as well as the #Rollback netcode!}} (2020)
- Tough Love Arena{{Cite tweet |user=ToughLoveArena |number=1345083214101159936 |date=1 January 2021 |title=We want feedback on the rollback netcode, tutorials, and gameplay in general.}} (2021)
- Guilty Gear -Strive-{{cite press release |author= |title=[PRESS RELEASE] Guilty Gear -Strive- Closed Beta Test Sign-ups Start Today! |url=https://arcsystemworks.com/press-release-guilty-gear-strive-closed-beta-test-sign-ups-start-today/ |location=Rolling Hills Estates, California |publisher=Arc System Works |date=2020-03-18 |access-date=2020-03-19}} (2021)
- Dengeki Bunko: Fighting Climax Ignition{{efn|name=Fanmade}}{{Cite tweet |user=DFCIACR |number=1363533948333281288 |title=The Open Beta Test (PC) for Dengeki Bunko Fighting Climax Ignition (DFCI) Unofficial Rollback has started.}} (2021)
- The King of Fighters All Star{{efn|name=Patch}}{{cite AV media |people=넷마블 TV |date=2021-03-24 |title=[킹오파올스타] 실시간 PVP 개선 상황 최초 공개! |trans-title=[King of Fighters All Star] First look at real-time PVP improvements! |via=YouTube |language=ko |url=https://www.youtube.com/watch?v=QfheDyPar9Q |access-date=2024-05-21 |publisher=Netmarble}} (2021)
- Rivals of Aether{{efn|name=Patch}}{{Cite tweet |user=StudiosofAether |number=1377674197590106112 |date=April 1, 2021 |title=Rivals of Aether Rollback Open Beta arrives Summer 2021!}} (2021)
- Petal Crash Online{{efn|name=Patch}}{{Cite tweet |user=PetalCrash |number=1447971008078487556 |title=Puzzle battle with your friends around the world with lobbies, rollback netcode, and tons of customization for players and gameplay!}} (2021)
- Nickelodeon All-Star Brawl{{Cite web|url=https://www.shacknews.com/article/125575/nickelodeon-all-star-brawl-is-from-slap-city-devs-and-may-have-rollback-netcode|title=Nickelodeon All-Star Brawl is from Slap City devs and may have rollback netcode|website=Shacknews|first=Chris|last=Jarrard|date=July 13, 2021|access-date=July 13, 2021}} (2021)
- The King of Fighters '98: Ultimate Match Final Edition{{efn|name=Patch}}{{cite tweet |user=SNKPofficial |number=1443441727134572550 |date=September 30, 2021 |title=Strap in tight because a major update (which includes rollback netcode) is coming to KOF '98 UM FINAL EDITION this winter for Steam! }} (2021)
- Windjammers 2{{cite web |url= https://www.pcgamer.com/windjammers-2-is-delayed-until-2021-so-developers-can-add-rollback-netcode/ |title=Windjammers 2 is delayed until 2021 so developers can add rollback netcode |author= Andy Chalk |date= 2020-12-10 |access-date= 2020-12-18 |website= PC Gamer}} (2022)
- BlazBlue: Central Fiction{{efn|name=Patch}}{{Cite tweet |user=ArcSystemWorksU |number=1467701564689297416 |date=December 6, 2021 |title=We are proud to announce Rollback Netcode for #BlazBlueCentralfiction and #BlazBlueCrossTagBattle !}} (2022)
- BlazBlue: Cross Tag Battle{{efn|name=Patch}} (2022)
- DNF Duel{{Cite tweet |user=DNFDuel |number=1471797331003539461 |title=DNF Duel supports rollback netcode.}} (2022)
- MultiVersus{{cite magazine |last1=Leblanc |first1=Wesley |title=MultiVersus Announced, Will Feature Batman, Shaggy, Bugs Bunny, Arya Stark, Steven Universe, And More |url=https://www.gameinformer.com/2021/11/18/multiversus-announced-will-feature-batman-shaggy-bugs-bunny-arya-stark-steven-universe |magazine=Game Informer |access-date=19 November 2021 |archive-date=19 November 2021 |archive-url=https://web.archive.org/web/20211119170328/https://www.gameinformer.com/2021/11/18/multiversus-announced-will-feature-batman-shaggy-bugs-bunny-arya-stark-steven-universe |url-status=live }} (2022)
- Persona 4 Arena Ultimax{{efn|name=Patch}}{{Cite tweet |user=Atlus_west |number=1498133354016755712 |title=Rollback Netcode comes to Persona 4 Arena Ultimax this summer for Steam and PS4}} (2022)
- Mega Man Battle Network{{efn|name=Fanmade}} (2022)
- Mega Man Battle Network 2{{efn|name=Fanmade}} (2022)
- Mega Man Battle Network 3{{efn|name=Fanmade}}{{cite web |url=https://www.n1gp.dev/bbn3/changelog |author=mars |website=n1gp.dev |title=MMBN3 PvP Balance Patch |quote=Lots of changes have been made under the hood in order to make BBN3 work with rollback netcode. |access-date=2021-09-26 |archive-date=2021-10-08 |archive-url=https://web.archive.org/web/20211008182935/https://www.n1gp.dev/bbn3/changelog |url-status=dead }}{{cite web |url=https://tango.n1gp.net/ |website=Tango |title=Tango |quote=Works with every English and Japanese Battle Network game.
|access-date=2022-06-19}} (2022)
- Mega Man Battle Network 4{{efn|name=Fanmade}} (2022)
- Rockman EXE 4.5 Real Operation{{efn|name=Fanmade}} (2022)
- Mega Man Battle Network 5{{efn|name=Fanmade}} (2022)
- Mega Man Battle Network 6{{efn|name=Fanmade}} (2022)
- Capcom Fighting Collection (2022)
- Teenage Mutant Ninja Turtles: Tournament Fighters SNES ver via Teenage Mutant Ninja Turtles: The Cowabunga Collection (2022)
- The Rumble Fish 2{{Cite web |last1=Romano |first1=Sal |title=The Rumble Fish 2 launches this winter for PS5, Xbox Series, PS4, Xbox One, Switch, and PC |url=https://www.gematsu.com/2022/08/the-rumble-fish-2-launches-this-winter-for-ps5-xbox-series-ps4-xbox-one-switch-and-pc |website=Gematsu |date=4 August 2022 |quote=Now with widescreen support, rollback netcode, and more.}} (2022)
- Guilty Gear Xrd REV 2{{efn|name=Patch}} (2023)
- IKEMEN-Go{{Cite tweet |user=intandemwith |number=1607433268059865090|title=Sorry for announcing rollback on Christmas and delaying it, but I still have a present for you IKEMEN-Go fans! Here's pre-alpha footage of rollback: US - UK!}} (2023)
- Street Fighter 6{{cite web|url=https://www.gematsu.com/2022/06/street-fighter-6-supports-rollback-netcode-cross-play|title=Street Fighter 6 supports rollback netcode, cross-play|last=Romano|first=Sal|website=Gematsu|date=June 10, 2022|access-date=June 10, 2022}} (2023)
- Mortal Kombat 1{{cite web |url=https://www.mortalkombat.com/en-us/faq |title= Q: Will Mortal Kombat 1 have rollback netcode? A: Yes, Mortal Kombat 1 will have rollback netcode to support online gameplay.}} (2023)
- Nickelodeon All-Star Brawl 2 (2023)
- The King of Fighters XIII: Global Match{{Cite tweet |user=SNKPofficial |number=1642135974636560384 |title=Get ready for KOF XIII GLOBAL MATCH! Features rollback netcode and improved online functionality. OBT set for early summer 2023, so stay tuned for more updates! }} (2023)
- Granblue Fantasy Versus: Rising{{Cite tweet |user=gbvs_official |number=1616703260261486592 |title=GBVSR features: Rollback Netcode and Crossplay}} (2023)
- Tekken 8{{cite web |url=https://www.escapistmagazine.com/does-tekken-8-have-rollback-netcode/ |title=Does Tekken 8 Have Rollback Netcode? |last=Jones |first=Anthony |date=2023-12-27 |website=The Escapist |publisher= |access-date=2024-01-23 |quote=}}
(2024)
- Dragon Ball FighterZ{{efn|name=Patch}}(2024)
- SNK vs. Capcom: SVC Chaos (2024)
- Marvel vs. Capcom Fighting Collection: Arcade Classics (2024)
- Virtua Fighter 5 R.E.V.O.{{cite tweet |user=SEGA |number=1859960222493671731 |date=November 22, 2024 |title=Virtua Fighter 5 R.E.V.O. arrives this winter on Steam! Featuring: Rollback Netcode, 60fps/4K support, Gameplay balance adjustments and more.}} (2025)
- Iron Saga VS (2025){{cite web |last=Parker |first=Jason |date=March 28, 2025 |title=Iron Saga VS review: Super Robot Wars, but make it for the FGC |url=https://www.sportskeeda.com/esports/iron-saga-vs-review |website=Sportskeeda |location= |publisher= |access-date=2025-04-03}}
- Capcom Fighting Collection 2 (2025)
- Daemon Bride: Additional Gain{{Cite web |url=https://www.gematsu.com/2025/02/team-arcana-fighting-game-daemon-bride-additional-gain-coming-to-pc-in-2025 |title=Team ARCANA fighting game Daemon Bride: Additional Gain coming to PC in 2025 |last=Romano |first=Sal |date=February 6, 2025 |website=Gematsu |publisher= |access-date=February 6, 2025}} (2025)
- Slayers for Hire (TBA)
- Fly Punch Boom!{{cite tweet |user=JollypunchGames |number=1213895107637850113 |date=January 5, 2020 |title=I got good rollback netcode! We've been playing #FlyPunchBoom tournaments across continents, and it still feels good.Still in beta though. Coming this year! Fire}} (TBA)
- Rushdown Revolt{{cite web |url=https://store.steampowered.com/app/1376070/Rushdown_Revolt__PreBeta_Testing/ |author=Vortex Games |website=Steam |title=Rushdown Revolt - Pre-Beta Testing |quote=Vortex Rollback been in development for four years to fully embed it into every aspect of our game engine in order to minimize delay and rollback impacts. |access-date=2020-08-08}} (TBA)
- MerFight: Curse of the Arctic Prince{{Cite tweet |user=mattrified |number=1366170827327209472 |title=Physical" test and demo of #MerFight's rollback/online.}} (TBA)
- Stormgate{{cite web |url=https://www.pcgamer.com/an-upcoming-rts-will-incorporate-the-rollback-tech-that-took-fighting-games-by-storm/ |title=An upcoming RTS will incorporate the rollback tech that took Fighting games by storm |last=Bolding |first=Jonathan |date=2022-12-10 |website=PC Gamer |access-date=2023-02-07 }} (TBA)
- Animation VERSUS{{cite web |url=https://bsky.app/profile/bymuno.com/post/3lndcij6ofe2r |title=Rollback Netcode Explanation |author=@Muno| date=2025-04-22 |website=BlueSky |access-date=2025-04-22 }} (TBA)
- Metal Revolution{{cite tweet |user=Mtl_Revolution |number=1088265667319455744 |date=January 24, 2019 |title=Sorry, if we missed your question previously. It's gonna be a rollback netcode technique as same as in GGPO.}} (Cancelled)}}
Potential causes of netcode issues
=Latency=
Latency is unavoidable in online games, and the quality of the player's experience is strictly tied to this (the more latency there is between players, the greater the feeling that the game is not responsive to their inputs). The latency of the players' network (which is largely out of a game's control) is not the only factor in question, but also the latency inherent in the way the game simulations are run. There are several lag compensation methods used to disguise or cope with latency (especially with high latency values).{{Cite web|last=|first=|date=|title=Latency Compensating Methods in Client/Server In-game Protocol Design and Optimization|url=https://developer.valvesoftware.com/wiki/Latency_Compensating_Methods_in_Client/Server_In-game_Protocol_Design_and_Optimization#Lag_Compensation|access-date=2020-12-11|website=Valve Developer Community}}
= Tick rate =
A single update of a game simulation is known as a tick. The rate at which the simulation is run on a server is often referred to as the server's tickrate; this is essentially the server equivalent of a client's frame rate, absent any rendering system.{{cite web
| url=https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking
| title=Source Multiplayer Networking
| publisher=Valve
| accessdate=2014-03-30}} Tickrate is limited by the length of time it takes to run the simulation, and is often intentionally limited further to reduce instability introduced by a fluctuating tickrate, and to reduce CPU and data transmission costs. A lower tickrate increases latency in the synchronization of the game simulation between the server and clients.{{cite web
| url=http://www.gamekult.com/actu/titanfall-de-limportance-dun-bon-tickrate-A130413.html
| title=Titanfall, de l'importance d'un bon tickrate
| publisher=gamekult.com
| date=2014-03-29
| accessdate=2014-03-30}} Tickrate for games like first-person shooters is often between 128 ticks per second (such is Valorant's case), 64 ticks per second (in games like Counter-Strike: Global Offensive and Overwatch), 30 ticks per second (like in Fortnite and Battlefield V's console edition){{Cite web|title=Battlefield V Server Tick Rate Revealed & Why It Matters|url=https://www.glitched.online/battlefield-v-server-tick-rate/|access-date=2020-12-05|website=www.glitched.online|language=en-ZA}}{{Dead link|date=March 2023 |bot=InternetArchiveBot |fix-attempted=yes }} and 20 ticks per second (such are the controversial cases of Call of Duty: Modern Warfare, Call of Duty: Warzone and Apex Legends).{{Cite news|last=Davison|first=Ethan|title=Valorant's super-fast servers are attracting streamers and pros in droves. Here's why.|language=en-US|newspaper=Washington Post|url=https://www.washingtonpost.com/video-games/esports/2020/04/14/valorant-tick-rate-servers-pros-streamers/|access-date=2020-12-05|issn=0190-8286}}{{Cite web|date=2019-11-23|title=How bad is Apex Legends netcode compared to Fortnite and PUBG?|url=https://www.dexerto.com/apex-legends/how-bad-is-apex-legends-netcode-compared-to-fortnite-pubg-1290489/|access-date=2020-12-05|website=Dexerto|language=en}} A lower tickrate also naturally reduces the precision of the simulation, which itself might cause problems if taken too far, or if the client and server simulations are running at significantly different rates.
Because of limitations in the amount of available bandwidth and the CPU time that's taken by network communication, some games prioritize certain vital communications while limiting the frequency and priority of less important information. As with tickrate, this effectively increases synchronization latency. Game engines may limit the number of times that updates (of a simulation) are sent to a particular client and/or particular objects in the game's world in addition to reducing the precision of some values sent over the network to help with bandwidth use. This lack of precision may in some instances be noticeable.{{cite web
| url=http://udn.epicgames.com/Three/NetworkingOverview.html
| title=Unreal Networking Architecture
| publisher=Epic Games
| date=
| accessdate=2014-09-07}}
= Software bugs =
Various simulation synchronization errors between machines can also fall under the "netcode issues" blanket. These may include bugs which cause the simulation to proceed differently on one machine than on another, or which cause some things to not be communicated when the user perceives that they ought to be. Traditionally, real-time strategy games (such as Age of Empires) have used lockstep protocol peer-to-peer networking models where it is assumed the simulation will run exactly the same on all clients; if, however, one client falls out of step for any reason, the desynchronization may compound and be unrecoverable.{{cite web
| url=http://gafferongames.com/networking-for-game-programmers/what-every-programmer-needs-to-know-about-game-networking/
| title=What every programmer needs to know about game networking
| author=Glenn Fiedler
| date=24 February 2010
| accessdate=2014-09-08}}
=Transport layer protocol and communication code: TCP and UDP=
{{see also|User Datagram Protocol#Comparison of UDP and TCP}}
A game's choice of transport layer protocol (and its management and coding) can also affect perceived networking issues.
If a game uses a Transmission Control Protocol (TCP), there will be increased latency between players. This protocol is based on the connection between two machines, in which they can exchange data and read it. These types of connections are very reliable, stable, ordered and easy to implement. These connections, however, are not quite suited to the network speeds that fast-action games require, as this type of protocol (Real Time Streaming Protocols) automatically groups data into packets (which will not be sent until a certain volume of information is reached, unless this algorithm {{emdash}} Nagle's algorithm {{emdash}} is disabled) which will be sent through the connection established between the machines, rather than directly (sacrificing speed for security). This type of protocol also tends to respond very slowly whenever they lose a packet, or when packets arrive in an incorrect order or duplicated, which can be very detrimental to a real-time online game (this protocol was not designed for this type of software).
If the game instead uses a User Datagram Protocol (UDP), the connection between machines will be very fast, because instead of establishing a connection between them the data will be sent and received directly. This protocol is much simpler than the previous one, but it lacks its reliability and stability and requires the implementation of own code to handle indispensable functions for the communication between machines that are handled by TCP (such as data division through packets, automatic packet loss detection, etc.); this increases the engine's complexity and might itself lead to issues.{{Cite web|last=Fiedler|first=Glenn|date=2008-10-01|title=UDP vs. TCP|url=https://gafferongames.com/post/udp_vs_tcp/|access-date=2020-12-14|website=Gaffer On Games|language=en-us}}
See also
Notes
{{notelist|refs=
{{efn|name=Patch|Rollback netcode added after release via patch.}}
{{efn|name=Fanmade|Rollback netcode added via fan-made patch.}}
}}