Unity-Technologies / multiplayer
On december 16, 2021 by adminKöszöntöm a Unity Real-time Multiplayer Alpha repositoryban!
Itt megtalálod az összes erőforrást, amire szükséged van, hogy elkezdhesd a saját valós idejű multiplayer játékod prototípusának elkészítését.
NetCode Manual
Transport Manual
Click here to visit the forum
Included content
-
sampleproject/
– Unity Project containing all the multiplayer samples. -
sampleproject/Assets/Samples/Asteroids
– Asteroids clone demonstrating the core netcode concepts. -
sampleproject/Assets/Samples/LagCompensation
– Sample showing lag compensation based on Unity Physics. -
sampleproject/Assets/Samples/NetCube
– Az alapvető netcode használatot bemutató minta. -
sampleproject/Assets/Samples/Ping
– Az alapvető szállítási használatot bemutató minta. -
sampleproject/Assets/Samples/Soaker
– Egy soak tesztelő a szállításhoz, tipikus termelési terhelés tesztelésére. -
sampleproject/Assets/Samples/CustomNetworkInterface
– A játék specifikus socket implementáció használatát bemutató minta a Unity Transportban.
Unity Transport Package
Az új Unity Transport Package, amely az UNet alacsony szintű API-t fogja helyettesíteni.A közlekedési csomag előnézete támogatja a kapcsolatok létrehozását és az üzenetek küldését aremote hostra. Tartalmaz továbbá segédprogramokat a hálózaton keresztül küldendő adatfolyamok szerializálására.A szállítási csomaggal kapcsolatos további információkért lásd a Unity Transport Documentation
Unity NetCode Package
A netcode csomag biztosítja a multiplayer funkciókat, amelyek egy multiplayer játékban a világszinkronizáció megvalósításához szükségesek. A socket szintű funkcionalitáshoz a transport csomagot használja, és az Entity Component Systemhez készült.Néhány magasabb szintű dolog, amit biztosít:
- Server authoritative synchronization model.
- RPC támogatás, hasznos a vezérlésáramláshoz vagy a hálózati eseményekhez.
- Client / server world bootrapping, így a logika egyértelműen elkülönül, és egy szerver több klienssel egy folyamatban futtatható, mint például a szerkesztő a tesztelés során.
- Egységek szinkronizálása interpolációval és kliensoldali előrejelzéssel, ami alapértelmezés szerint működik.
- Hálózati forgalom hibakeresési eszközök
- GameObject konverziós folyam támogatás, így egy hibrid modellt használhatsz egy GameObject/MonoBehaviour alapú projekt multiplayerrel való kiegészítéséhez.
A netcode csomaggal kapcsolatos további információkért lásd a Unity NetCode Documentation
Samples
Ping
A ping minta jó kiindulópont a közlekedési csomagban található összes rész megismeréséhez. A ping kliens kapcsolatot létesít a ping szerverrel,elküld egy ping üzenetet és kap egy ping választ. A pong fogadása után a kliens megszakítja a kapcsolatot.Ez egy egyszerű példa, amely megmutatja, hogyan kell használni az új Unity Transport csomagot.A ping több jelenetből áll, amelyek mindegyike a sampleproject/Assets/Scenes/
alatt található.
-
PingMainThread.unity
– A ping csak főszálas implementációja. -
Ping.unity
– A ping kliens és szerver teljesen jobified változata. -
PingClient.unity
– Ugyanaz a jobified kliens kód, mint aPing.unity
, de a szerver nélkül. -
PingServer.unity
– A jobified ping dedikált szerver változata. Ennek a jelenetnek egy headless (vagy Server Build a 2019.1-ben) Linux 64 bites buildjét kell telepíteni a Multiplaybe. -
PingECS.unity
– A jobified ping minta ECS változata.
Soaker
Egy stresszteszt, amely meghatározott számú klienst és szervert hoz létre ugyanabban a folyamatban. Minden kliens a megadott sebességgel küld üzeneteket a megadott méretben és méri a statisztikákat.
Asteroids
Egy kis játék, amely a Unity NetCode csomag funkcióit mutatja be.
LagCompensation
Egy minta, amely a lag kompenzáció megvalósításának módját mutatja be a Unity Physics alapján. Egy Unity NetCode-on alapuló játékban a kliens egy régi világállapotot fog megjeleníteni, a lag kompenzáció lehetővé teszi, hogy a szerver ezt figyelembe vegye a raycastok végrehajtásakor, így a játékos arra tud célozni, ami ténylegesen megjelenik a kliensen.
NetCube
A Unity NetCode csomag funkcióit bemutató kis minta. Ez az a kód, amit a NetCode-ról szóló Unite prezentációban használtak
Telepítés
Az ebben a tárban található minták kipróbálásához csak annyit kell tennie, hogy megnyitjasampleprojects/
a Unityben.Ha új Unity projektet szeretne létrehozni ezen csomagok felhasználásával, ez is lehetséges.
- Győződjön meg róla, hogy a Unity támogatott verziója van (2019.3 vagy újabb)
- Új Unity projekt létrehozása
- Ha a NetCode-ot szeretné használni, adja hozzá a
Unity NetCode
-et a csomagkezelőből. - Ha a szállítást szeretné használni, de a NetCode-ot nem, adja hozzá a
Unity Transport
-ot a csomagkezelőből. - A csomagfüggőségek automatikusan behúzódnak a projektbe
.
Vélemény, hozzászólás?