Document - TimiSillman/Neon-City GitHub Wiki

Neon City

Latauslinkki pelille

http://student.labranet.jamk.fi/~K8861/NeonCity.rar

Johdanto

Lopputyön tavoitteena oli oppia uusia menetelmiä Unity pelimoottorissa. Molemmilla meillä pohjana oli jo kokemusta unity pelimoottorista. Lähdimme toteuttamaan arena multiplayer shooteria. Multiplayer osio oli molemmille meille uutta, joten lähdimme tutkimaan asiaa tarkemmin. Tässä dokumentissa käymme läpi asioita jotka ei käy ilmi koodissa tai itse pelissä.

Toteutus

Tutkittuamme monenlaisia vaihtoehtoja multiplayer toteutukseen päädyimme Photon Networkin järjestelmään. Tutkimme Unityn, Forge Networking, steamin ja Photon Networking tarjoamaa verkkopeli ominaisuutta. Päädyimme Photon Networking toteutukseen suosittellujen myötä.

Unity

Kamera blur tausta

Käytimme saavuttaksemme blur efektin taustalle kahta kameraa jotka renderöi eri osia mitkä olemme määrittäneet. Käytimme tässä osiossa unityn tarjoamaa post processing työkalua. Molemmille kameroille asetimme omat post processing asetukset.

Täällä Saavutamme kyseisen tuloksen. Samme taustan sumeaksi jahalutun näkymän tarkaksi

Photon Networking

Pystytimme oman palvelimen kyseiselle verkko toteutukselle. Tämä onnistui yksinkertaisesti asentamalla Windows server koneelle ja asentamalla Photon Network Server Photonin sivuilta. Tämä serveri linsenssi mahdollistaa 100 yhdenaikaisen pelaajan. Ostamalla paremman lisenssin voimme nostaa tätä rajaa.

Käytimme tätä tutoriaalia photon networking toteuksessa: https://www.youtube.com/watch?v=MF5yhBkeiTU

Unity

Unity vaati asennuksen Photon Unitu Networking(PUN) asset storesta tämän jälkeen meillä oli käytettävissä kaikki photonin komennot ja komponentit.

Photon komponentit

Kyseisessä kuvassa näemme Vaaditut komponentit tiedon välittämiseksi palvelimen ja pelaajan välillä. Tärkein komponentti on Photon View. Tämä komponentti lähettää kaiken tiedon mitä haluttaan lähetettävän. Tässä tapauksessa lähetämme sijainti tiedon x, y, z ja kierto tiedon toiselle pelaajalle, mutta emme kuitenkaan lähetä tieto aivan suoraan kyseisenä tietona. Viemme tiedon Photon Transform View komponentin kautta. Tämä komponentti käsittelee sijainti tiedon sopivaksi lähetettäväksi verkon ylitse.

Haasteet

Verkkopeli ominaisuus aiheuttaa monia haasteita esim. Joudumme käsittelemään monen pelaajan kameroita, mitkä muuttujat on lokaalisia ja mitkä globaaleja. Monen kameran käsittel joudutaan käsittelemään Photonin omalla komennolla PhotonNetwork.IsMine Tällä voimme saada tiedon onko kyseinen objekti oma vai toisen. Tällä määritämme mitkä kamerat ovat päällä ja mitkä ei. Määrittelemme myös pelaaja ohjaukset tämän myötä. Suljemme toisten pelaajien ohjaukset, joten toiset pelajaat eivät pysty ohjaamaan toisia pelaajia.

itsearviointi

Olli: 5

Timi: 5

Käytimme vaadittuja ominaisuuksia unitystä ja teimme paljon asioita aihe alueen ulkopuolelta. Molemmat käytimme tähän arviolta ~45h/pää