Rollback netcode ja sen käyttö
Lehmusvuori, Leevi (2024)
Lehmusvuori, Leevi
2024
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2024052415485
https://urn.fi/URN:NBN:fi:amk-2024052415485
Tiivistelmä
Opinnäytetyön tavoitteena oli tutustua taistelupeleissä suosittuun rollback netcodeen ja selvittä, mistä johtuu sen kasvanut suosio. Työ haluttiin toteuttaa suomeksi, koska aiheesta löytyy vain vähän tietoa suomeksi ja koska aihe kiinnostaa. Työssä pyrittiin selvittämään yleiset syyt rollbackin suosioon ja käytiin myös läpi vaikutusta taistelupeleihin.
Työssä tutustuttiin aluksi taistelupelien historiaan ja verkkotoimintatapoihin, joita käytettiin niissä. Käytiin myös läpi muita yleisiä verkkotoimintatapoja. Tämän jälkeen tutustuttiin rollback netcoden historiaan, käyttöön ja GGPO-Järjestelmään. Hyödyntämällä näitä tietoja pystytiin tutustumaan rollbackin toimintaan taistelupeleissä. Selvitettiin myös yleistä käsitystä tärkeistä elementeistä frameissa taistelupelien yhteydessä, jotta pystyttiin ymmärtämään rollbackin vaikutusta niissä.
Käytännön osuudessa rakennettiin järjestelmä, joka vastaisi hyvin yksinkertaista rollback netcodea ja kykenisi simuloimaan sitä. Hyödyntämällä Unity-pelimoottoria rakennettiin alkeellinen taistelupeli, joka kykenee seuraamaan, miten rollback toimii ja simuloimaan erilaisia viiveitä ja luomaan vastaavia vaikutuksia järjestelmään. Nämä vaikutukset liittyvät hahmon erilaisten tilojen vaihtelemiseen ja sijainnin siirtelyyn. Työn oleellisiin osiin kuulu järjestelmään rakennettu arvausjärjestelmä.
Arvausjärjestelmä rakennettiin vastaamaan pelaajan viiveessä tuleviin syötteisiin ja arvaamaan ne. Järjestelmässä hyödynnettiin pelaajan vanhoja syötteitä, jotka olivat saapuneet ja niiden avulla luotiin arvaus. Tämän avulla pystyttiin testaamaan myös rollbackin sisäistä arvausjärjestelmää kevyessä rakennusmuodossa.
Työn valmistuttua pystyttiin toteamaan rollbackin toteutuksen olevan haastavaa ja aikaa vievää ilman laajoja esitietoja. Tästä huolimatta verraten saatuja tietoja pystytiin toteamaan tämän oleva tietyissä määrin paras mahdollinen verkkotoimintajärjestelmä taistelupeleille. Selkeästi GGPO-järjestelmä pystytiin todeta olevan myös hyvä vaihtoehto monelle vastaavalle järjestelmän pohjaksi ja hyödyntämään sitä. Se on myös hyvä vaihtoehto pienemmälle ryhmälle, jolla ei ole tarpeeksi resursseja rakentaa kokonaan omaa rollbackiä. In thesis, the goal was to familiarize with the rollback netcode system and find the reason for its recent popularity rise. This thesis was created for reason of small amount of information about rollback netcode available in Finnish and out of a personal interest towards the topic. The main topic is the popularity of rollback netcode in fighting games and how it affects them.
The thesis starts by going through a bit of fighting game history, and investigates different online programming parts and how they are used. A couple of different protocols and netcode are examined more closely. After this, the history and usage of rollback netcode, and GGPO are examined. By using this information, one can become familiar with the usage of rollback in fighting games. Furthermore, important game element frame data directed to fighting games is examined to better understand rollback’s effects.
In the practical part, a simplified version of rollback netcode was created and used to simulate it. By using Unity Engine, a barebones fighting game was built, so it’s possible to view how rollback netcode works and simulate different delays while affecting the system in the correct way. Some of these effects were moving characters to their correct positions and states. Also, an important part of the work was the predictions system of rollback.
The predictions system was created to use previous player inputs received in different messages. With these messages, a simple prediction of what the player was most likely to do next was created. With this, the predictions system could be tested in a rough form.
With this thesis, it can be stated that rollback is difficult to create especially without prior knowledge. However, the system is currently possibly the best option of working on a network in fighting games. GGPO is also a great way to start working on the system as a base and using it can help a lot, especially for a smaller group that may not have time or resources for creating a complete rollback themself.
Työssä tutustuttiin aluksi taistelupelien historiaan ja verkkotoimintatapoihin, joita käytettiin niissä. Käytiin myös läpi muita yleisiä verkkotoimintatapoja. Tämän jälkeen tutustuttiin rollback netcoden historiaan, käyttöön ja GGPO-Järjestelmään. Hyödyntämällä näitä tietoja pystytiin tutustumaan rollbackin toimintaan taistelupeleissä. Selvitettiin myös yleistä käsitystä tärkeistä elementeistä frameissa taistelupelien yhteydessä, jotta pystyttiin ymmärtämään rollbackin vaikutusta niissä.
Käytännön osuudessa rakennettiin järjestelmä, joka vastaisi hyvin yksinkertaista rollback netcodea ja kykenisi simuloimaan sitä. Hyödyntämällä Unity-pelimoottoria rakennettiin alkeellinen taistelupeli, joka kykenee seuraamaan, miten rollback toimii ja simuloimaan erilaisia viiveitä ja luomaan vastaavia vaikutuksia järjestelmään. Nämä vaikutukset liittyvät hahmon erilaisten tilojen vaihtelemiseen ja sijainnin siirtelyyn. Työn oleellisiin osiin kuulu järjestelmään rakennettu arvausjärjestelmä.
Arvausjärjestelmä rakennettiin vastaamaan pelaajan viiveessä tuleviin syötteisiin ja arvaamaan ne. Järjestelmässä hyödynnettiin pelaajan vanhoja syötteitä, jotka olivat saapuneet ja niiden avulla luotiin arvaus. Tämän avulla pystyttiin testaamaan myös rollbackin sisäistä arvausjärjestelmää kevyessä rakennusmuodossa.
Työn valmistuttua pystyttiin toteamaan rollbackin toteutuksen olevan haastavaa ja aikaa vievää ilman laajoja esitietoja. Tästä huolimatta verraten saatuja tietoja pystytiin toteamaan tämän oleva tietyissä määrin paras mahdollinen verkkotoimintajärjestelmä taistelupeleille. Selkeästi GGPO-järjestelmä pystytiin todeta olevan myös hyvä vaihtoehto monelle vastaavalle järjestelmän pohjaksi ja hyödyntämään sitä. Se on myös hyvä vaihtoehto pienemmälle ryhmälle, jolla ei ole tarpeeksi resursseja rakentaa kokonaan omaa rollbackiä.
The thesis starts by going through a bit of fighting game history, and investigates different online programming parts and how they are used. A couple of different protocols and netcode are examined more closely. After this, the history and usage of rollback netcode, and GGPO are examined. By using this information, one can become familiar with the usage of rollback in fighting games. Furthermore, important game element frame data directed to fighting games is examined to better understand rollback’s effects.
In the practical part, a simplified version of rollback netcode was created and used to simulate it. By using Unity Engine, a barebones fighting game was built, so it’s possible to view how rollback netcode works and simulate different delays while affecting the system in the correct way. Some of these effects were moving characters to their correct positions and states. Also, an important part of the work was the predictions system of rollback.
The predictions system was created to use previous player inputs received in different messages. With these messages, a simple prediction of what the player was most likely to do next was created. With this, the predictions system could be tested in a rough form.
With this thesis, it can be stated that rollback is difficult to create especially without prior knowledge. However, the system is currently possibly the best option of working on a network in fighting games. GGPO is also a great way to start working on the system as a base and using it can help a lot, especially for a smaller group that may not have time or resources for creating a complete rollback themself.