Optimoinnin hyötyjen havainnoiminen yksinkertaisen moninpelin avulla
Huhtamäki, Kia (2025)
Huhtamäki, Kia
2025
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2025121134983
https://urn.fi/URN:NBN:fi:amk-2025121134983
Tiivistelmä
Tässä opinnäytetyössä käsiteltiin pelien optimoinnin hyötyjä yksinkertaisen moninpelin kehityksen kautta. Työssä esiteltiin projektin kehitysvaiheita sekä vertailtiin optimoinnin vaikutusta pelin toimivuuteen ja pelattavuuteen. Tekstissä käsiteltiin myös optimoinnin teoriaa, työkaluja sekä esimerkkitapoja pelien optimoinnin toteuttamisesta. Tavoitteena oli havainnollistaa käytännössä optimoinnin vaikutusta pelien toimintaan ja antaa esimerkkejä mahdollisista optimointitavoista tehdä peleistä saavutettavampia.
Työn teoriaosuudessa keskityttiin käsittelemään moninpelin kehittämiseen käytettäviä työkaluja sekä tapaa optimoida useiden objektien luomista ja poistamista pelin aikana. Millaisia haasteita pelien optimoinnissa esiintyy yleisesti ja mitä moninpelejä optimoidessa tulee ottaa huomioon erilaisten optimointitapojen esittelyn lisäksi? Tekstissä käsiteltiin lyhyesti myös projektin lokalisaatio. Lopussa moninpelin kehittymäisen alustamiseksi käytiin läpi myös tarpeellisten työkalujen, kuten Unity Netcode for GameObjects-kirjaston ja Unity Relayn taustaa ja yhteyttä projektiin, mutta myös niiden toimintaa yleisesti. Ennen työn lopputulosten vertailua käsiteltiin myös Profiler-työkalun toimintaa.
Projektin toteutuksessa kehitettiin pienen skaalan moninpeli, jossa ensimmäisen persoonan pelaajat voivat liittyä toistensa peleihin liittymisavaimen avulla. Peliä työstettiin Unity-pelimoottorilla hyödyntäen NetCode for GameObjects -kirjastoa moninpelin toimintojen luomiseen Unity Relay -palvelun kanssa.
Lisäksi hyödynnettiin Profiler-työkalua, jonka tarkoituksena oli kerätä tietoa ohjelman suorituskyvystä, antaen suuntaa optimointia vaativien osa-alueiden parantamiseen. Tuloksena oli toimiva kahden pelaajan moninpeli, johon lisättiin ”Object Pooling” -optimointitapa peliobjektien poistamisen ja luomisen aikana tapahtuvan kuormituksen vähentämiseksi.
Toteutuksen jälkeen siirryttiin tulosten vertailuun, jossa pelin optimoidusta ja optimoimattomasta versiosta kerättyä tietoa sovellettiin optimoinnin hyötyjen esittämiseen. Vertailun tuloksissa huomattiin pieniä, mutta positiivisia muutoksia pelin muistinkäytössä ja roskankeruussa. Pelien ongelmat eivät välttämättä ole aina optimointikysymys, mutta erilaisten optimointitapojen tuntemisen lisääminen voi parantaa pelien saavutettavuutta. Parempi saavutettavuus mahdollistaa suuremman pelaajakunnan, ja hyvin optimoitu peli on myös nautinnollisempi kokemus pelata.
Työn teoriaosuudessa keskityttiin käsittelemään moninpelin kehittämiseen käytettäviä työkaluja sekä tapaa optimoida useiden objektien luomista ja poistamista pelin aikana. Millaisia haasteita pelien optimoinnissa esiintyy yleisesti ja mitä moninpelejä optimoidessa tulee ottaa huomioon erilaisten optimointitapojen esittelyn lisäksi? Tekstissä käsiteltiin lyhyesti myös projektin lokalisaatio. Lopussa moninpelin kehittymäisen alustamiseksi käytiin läpi myös tarpeellisten työkalujen, kuten Unity Netcode for GameObjects-kirjaston ja Unity Relayn taustaa ja yhteyttä projektiin, mutta myös niiden toimintaa yleisesti. Ennen työn lopputulosten vertailua käsiteltiin myös Profiler-työkalun toimintaa.
Projektin toteutuksessa kehitettiin pienen skaalan moninpeli, jossa ensimmäisen persoonan pelaajat voivat liittyä toistensa peleihin liittymisavaimen avulla. Peliä työstettiin Unity-pelimoottorilla hyödyntäen NetCode for GameObjects -kirjastoa moninpelin toimintojen luomiseen Unity Relay -palvelun kanssa.
Lisäksi hyödynnettiin Profiler-työkalua, jonka tarkoituksena oli kerätä tietoa ohjelman suorituskyvystä, antaen suuntaa optimointia vaativien osa-alueiden parantamiseen. Tuloksena oli toimiva kahden pelaajan moninpeli, johon lisättiin ”Object Pooling” -optimointitapa peliobjektien poistamisen ja luomisen aikana tapahtuvan kuormituksen vähentämiseksi.
Toteutuksen jälkeen siirryttiin tulosten vertailuun, jossa pelin optimoidusta ja optimoimattomasta versiosta kerättyä tietoa sovellettiin optimoinnin hyötyjen esittämiseen. Vertailun tuloksissa huomattiin pieniä, mutta positiivisia muutoksia pelin muistinkäytössä ja roskankeruussa. Pelien ongelmat eivät välttämättä ole aina optimointikysymys, mutta erilaisten optimointitapojen tuntemisen lisääminen voi parantaa pelien saavutettavuutta. Parempi saavutettavuus mahdollistaa suuremman pelaajakunnan, ja hyvin optimoitu peli on myös nautinnollisempi kokemus pelata.
