Unity-Technologies / multiplayer
On 16 joulukuun, 2021 by adminTervetuloa Unity Real-time Multiplayer Alpha repositoryyn!
Täältä löydät kaikki resurssit, joita tarvitset aloittaaksesi omien reaaliaikaisten moninpelien prototyyppien rakentamisen.
NetCode Manual
Transport Manual
Klikkaa tästä vierailemaan foorumilla
Sisältyvä sisältö
-
sampleproject/
– Unity-projekti, joka sisältää kaikki moninpelinäytteet. -
sampleproject/Assets/Samples/Asteroids
– Asteroids-klooni, joka demonstroi keskeisimmät nettiohjelmakoodin konseptit. -
sampleproject/Assets/Samples/LagCompensation
– Näyte, jossa näytetään viiveen kompensointi Unityn fyysikoilla. -
sampleproject/Assets/Samples/NetCube
– Näyte, jossa näytetään verkkokoodin peruskäyttöä. -
sampleproject/Assets/Samples/Ping
– Näyte, jossa näytetään kuljetuksen peruskäyttöä. -
sampleproject/Assets/Samples/Soaker
– Kuljetuksen soak-testeri, jolla voidaan testata tyypillistä tuotantokuormitusta. -
sampleproject/Assets/Samples/CustomNetworkInterface
– Näyte, jossa näytetään, miten pelikohtaista socket-toteutusta voidaan käyttää Unity Transportissa.
Unity Transport Package
Uusi Unity Transport Package, joka korvaa UNetin matalan tason API:n. Kuljetuspaketin esikatselu tukee yhteyksien muodostamista ja viestien lähettämistä aremote-isännälle. Se sisältää myös apuohjelmia tietovirtojen sarjallistamiseen verkon kautta lähetettäväksi.Lisätietoja kuljetuspaketista on Unity Transport Documentation
Unity NetCode Package
Verkkokoodipaketti tarjoaa moninpeliominaisuudet, joita tarvitaan moninpelin synkronoinnin toteuttamiseen. Se käyttää kuljetuspakettia socket-tason toiminnallisuuteen ja on tehty Entity Component Systemiä varten.joitain korkeamman tason asioita, joita se tarjoaa ovat
- Palvelimen auktoritatiivinen synkronointimalli.
- RPC-tuki, joka on hyödyllinen ohjausvirtaa tai verkkotapahtumia varten.
- Clientti-/palvelinmaailman käynnistyspakkaus, jotta sinulla on selkeä logiikkalajittelun erottelu ja voit ajaa palvelinta, jossa on useita asiakkaita, yhdessä ainoassa prosessissa, kuten editori testauksen aikana.
- Synkronoi entiteetit, joissa interpolointi ja asiakaspuolen ennustaminen toimivat oletusarvoisesti.
- Verkkoliikenteen virheenkorjaustyökalut
- GameObject-muunnosvirran tuki, joten voit käyttää hybridimallia lisätäksesi moninpelin GameObject/MonoBehaviour-pohjaiseen projektiin.
Lisätietoa verkkokoodipaketista saat Unityn verkkokoodidokumentaatiosta
Näytteet
Ping
Ping-näyte on hyvä lähtökohta tutustua kaikkiin liikennepaketin sisältämiin osiin. Ping-asiakas luo yhteyden ping-palvelimeen,lähettää ping-viestin ja vastaanottaa ping-vastauksen. Kun pong on vastaanotettu, asiakas katkaisee yhteyden.Kyseessä on yksinkertainen esimerkki, jossa näytetään, miten uutta Unityn kuljetuspakettia käytetään.ping koostuu useista kohtauksista, jotka kaikki löytyvät osoitteesta sampleproject/Assets/Scenes/
.
-
PingMainThread.unity
– Pelkkä main-thread-toteutus pingistä. -
Ping.unity
– Täysin jobified versio pingin asiakkaasta ja palvelimesta. -
PingClient.unity
– Sama jobified asiakaskoodi kuinPing.unity
, mutta ilman palvelinta. -
PingServer.unity
– Jobified pingin oma palvelinversio. Headless (tai Server Build 2019.1:ssä) Linux 64-bittinen build tästä kohtauksesta on se, mikä tulisi ottaa käyttöön Multiplayyn. -
PingECS.unity
– ECS-versio jobified ping -esimerkistä.
Soaker
Stressitesti, jossa luodaan tietty määrä asiakkaita ja palvelin samassa prosessissa. Jokainen asiakas lähettää viestejä määrätyllä nopeudella määrätyn kokoisina ja mittaa tilastoja.
Asteroids
Pieni peli, jossa käytetään Unityn NetCode-paketin ominaisuuksia.
LagCompensation
Näyte, jossa näytetään tapa toteuttaa viiveen kompensointi Unity Physicsin pohjalta. Unityn NetCode-pakettiin perustuvassa pelissä asiakas näyttää vanhan maailman tilan, viiveen kompensoinnin avulla palvelin voi ottaa tämän huomioon suorittaessaan raycastia, jotta pelaaja voi tähdätä siihen, mitä todellisuudessa näytetään asiakkaalla.
NetCube
Pieni näyte, jossa esitellään Unityn NetCode-paketin ominaisuuksia. Tätä koodia käytetään Unite-esityksessä NetCodesta
Asennus
Kokeillaksesi näytteitä tässä arkistossa sinun tarvitsee vain avatasampleprojects/
Unityssä.Jos haluat luoda uuden Unity-projektin käyttämällä näitä paketteja, se on myös mahdollista.
- Varmista, että käytössäsi on tuettu Unityn versio (2019.3 tai uudempi)
- Luo uusi Unity-projekti
- Jos haluat käyttää NetCodea, lisää
Unity NetCode
pakettihallinnasta. - Jos haluat käyttää kuljetusta, mutta et NetCodea, lisää
Unity Transport
pakettihallinnasta. - Pakettien riippuvuudet vedetään automaattisesti projektiin
Vastaa