Unity Netcoden Toimivuus 3D-Moninpeleissä
Björkman, Tero (2022)
Björkman, Tero
2022
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2022052311257
https://urn.fi/URN:NBN:fi:amk-2022052311257
Tiivistelmä
Tehtävänä oli tutkia Unityn moninpelien kehitystyökalun, Netcoden, soveltuvuutta 3D-moninpelin tekemiseen pelinkehittäjän näkökulmasta. Tehtävä oli määrä ratkaista kehittämällä yksinkertainen kolmiulotteinen moninpeli, hyödyntäen mahdollisimman paljon internetistä löytyviä opetusohjelmia ja -videoita. Pelin tyyliksi valittiin ensimmäisen persoonan räiskintäpeli.
Aiempia tutkimustuloksia moninpelien suorituskyvystä löydettiin todella vähän. Siitä pääteltiin niiden olevan tärkeä lisäys pelinkehittäjän työkalupakkiin.
Moninpeli oli suhteellisen helppo kehittää Netcodea hyödyntäen. Joitakin ongelmia ilmeni peliä valmistaessa. Enimmät ongelmista johtuivat opetusohjelmien ja -videoiden vanhuudesta tai kokonaisuutena yhteensopimattomuudesta. Kaikki ongelmat olivat kuitenkin joko pääteltävissä aikaisemman Unity-kokemuksen pohjalta, tai ratkaistavissa Netcoden dokumentaatiota käyttäen. Muihin ratkaisemattomiin ongelmiin apua sai eri henkilöiltä internetin kautta.
Ensimmäinen tavoite oli selvittää, kuinka paljon yksinkertainen moninpeli vaatii resursseja palvelimeltaan. Toiseksi haluttiin selvittää, kuinka monta pelaajaa pystyvät yhtäaikaisesti pelaamaan palvelimella.
Tutkimusmenetelmäksi valittiin määrällinen tutkimus, sillä palvelimen kuormituksen mittaaminen tuottaa luonnollisesti numeroita, joilla tutkimuskohdetta voitiin helposti kuvailla. Mittaustulosten käsittely oli helppoa, sillä tulokset pystyttiin lataamaan sellaisenaan Microsoft Exceliin.
Tulokseksi saatiin tieto, että Netcode on oiva vaihtoehto moninpelin kehittämiseen. Yksinkertainen moninpeli ei kuormittanut palvelinta liiallisesti. Mittauksista kuitenkin huomattiin, että tietoliikenne palvelimella kasvoi enemmän, kuin palvelimen muu kuormitus pelaajamäärän kasvaessa.
Huomattiin myös, että todella suuren pelaajamäärän moninpeleissä tulee hyödyntää tietoliikenteen optimointia huomioimalla se pelin koodissa. Näin tietoliikenne ei kasva liialliseksi suurilla pelaajamäärillä. The objectives were to research Unity’s multiplayer game development tool Netcode’s suitability for developing a 3D multiplayer game, from a game developer’s perspective. The objective was to be completed by developing a simple 3D multiplayer game utilizing as many online tutorials and tutorial videos as possible. The game was decided to be made in the style of a first-person shooter.
Very little prior research was found regarding multiplayer games’ performance. Due to this, it was decided that such research would be an important addition to a game developer’s toolbox.
A multiplayer game was relatively easy to develop using Netcode. Some problems arose while making the game. Most of the problems were caused by the old age, or incompatibility with one another, of the tutorials and tutorial videos. All the problems were solvable with some prior Unity experience, or by using Netcode’s documentation. Help for all other unsolved problems was available online from various persons.
The first goal was to find out what quantity of resources a simple multiplayer game demands from its server. The second goal was to find out how many players could play on the server simultaneously.
Quantitative research was chosen as the research method, since measuring the server naturally produced numbers with which to easily describe the researched issue. The measurements were also easy to process since they could be opened directly with Microsoft Excel.
As a result, it was discovered that Netcode is a good choice for developing a multiplayer game. A simple multiplayer game did not burden the server excessively. However, it was discovered from the measurements that data transfer on the server increased significantly as the number of players increased.
It was also discovered that multiplayer games with many players should utilize some form of code optimization for reducing data transfer. This way the data transfer will not grow to be too large.
Aiempia tutkimustuloksia moninpelien suorituskyvystä löydettiin todella vähän. Siitä pääteltiin niiden olevan tärkeä lisäys pelinkehittäjän työkalupakkiin.
Moninpeli oli suhteellisen helppo kehittää Netcodea hyödyntäen. Joitakin ongelmia ilmeni peliä valmistaessa. Enimmät ongelmista johtuivat opetusohjelmien ja -videoiden vanhuudesta tai kokonaisuutena yhteensopimattomuudesta. Kaikki ongelmat olivat kuitenkin joko pääteltävissä aikaisemman Unity-kokemuksen pohjalta, tai ratkaistavissa Netcoden dokumentaatiota käyttäen. Muihin ratkaisemattomiin ongelmiin apua sai eri henkilöiltä internetin kautta.
Ensimmäinen tavoite oli selvittää, kuinka paljon yksinkertainen moninpeli vaatii resursseja palvelimeltaan. Toiseksi haluttiin selvittää, kuinka monta pelaajaa pystyvät yhtäaikaisesti pelaamaan palvelimella.
Tutkimusmenetelmäksi valittiin määrällinen tutkimus, sillä palvelimen kuormituksen mittaaminen tuottaa luonnollisesti numeroita, joilla tutkimuskohdetta voitiin helposti kuvailla. Mittaustulosten käsittely oli helppoa, sillä tulokset pystyttiin lataamaan sellaisenaan Microsoft Exceliin.
Tulokseksi saatiin tieto, että Netcode on oiva vaihtoehto moninpelin kehittämiseen. Yksinkertainen moninpeli ei kuormittanut palvelinta liiallisesti. Mittauksista kuitenkin huomattiin, että tietoliikenne palvelimella kasvoi enemmän, kuin palvelimen muu kuormitus pelaajamäärän kasvaessa.
Huomattiin myös, että todella suuren pelaajamäärän moninpeleissä tulee hyödyntää tietoliikenteen optimointia huomioimalla se pelin koodissa. Näin tietoliikenne ei kasva liialliseksi suurilla pelaajamäärillä.
Very little prior research was found regarding multiplayer games’ performance. Due to this, it was decided that such research would be an important addition to a game developer’s toolbox.
A multiplayer game was relatively easy to develop using Netcode. Some problems arose while making the game. Most of the problems were caused by the old age, or incompatibility with one another, of the tutorials and tutorial videos. All the problems were solvable with some prior Unity experience, or by using Netcode’s documentation. Help for all other unsolved problems was available online from various persons.
The first goal was to find out what quantity of resources a simple multiplayer game demands from its server. The second goal was to find out how many players could play on the server simultaneously.
Quantitative research was chosen as the research method, since measuring the server naturally produced numbers with which to easily describe the researched issue. The measurements were also easy to process since they could be opened directly with Microsoft Excel.
As a result, it was discovered that Netcode is a good choice for developing a multiplayer game. A simple multiplayer game did not burden the server excessively. However, it was discovered from the measurements that data transfer on the server increased significantly as the number of players increased.
It was also discovered that multiplayer games with many players should utilize some form of code optimization for reducing data transfer. This way the data transfer will not grow to be too large.