Wstęp do UNet

Post on 14-Jan-2017

222 views 0 download

Transcript of Wstęp do UNet

Wprowadzenie do UNetJak szybko zrobić grę Multiplayer?

Poznań 2016

Kim jestem?

WebDeveloper

Game Designer

GameDev Bloger

Gdzie moje ryby?

Rodzaje Multiplayera?

Rodzaje Multiplayera?

Rodzaje Multiplayera?

Rodzaje Multiplayera?

Co te pakiety?

Via Internet

CLIENTS

INTERNET

SERVER

Co te pakiety?

Via Internet

Via LAN

CLIENTS

INTERNET

SERVER

CLIENT/SERVER

ROUTER/SWITCH

CLIENT/SERVER

CLIENT/SERVER

Co te pakiety?

Match Making

Via LAN

CLIENTS

INTERNET

SERVER/HOST

CLIENT/SERVER

ROUTER/SWITCH

CLIENT/SERVER

CLIENT/SERVER

Server vs Host

Czym jest UNet?

UNet = Unity Networking

Co dostarcza UNet?

HLAPI

Integracja z edytorem i silnikiem

Serwisy internetowe

Warstwa transportowa

HLAPI - High Level API: Komponenty

HLAPI - High Level API: Komponenty

HLAPI - High Level API: Komponenty

HLAPI - High Level API: Komponenty

Auto Spawn

HLAPI - High Level API: Komponenty

Auto Spawn

Auto Visibility

HLAPI - High Level API: Komponenty

Auto Spawn

Auto Visibility

Scene Managment

HLAPI - High Level API: Komponenty

Auto Spawn

Auto Visibility

HLAPI - High Level API: Synchronizacja

HLAPI - High Level API: Synchronizacja

HLAPI - High Level API: Synchronizacja

HLAPI - High Level API: Funkcje i Atrybuty

HLAPI - High Level API: Funkcje i Atrybuty

HLAPI - High Level API: Funkcje i Atrybuty

HLAPI - High Level API: Funkcje i Atrybuty

HLAPI - High Level API

Komponenty <= HLAPI

Co dostarcza UNet?

HLAPI

Integracja z edytorem i silnikiem

Serwisy internetowe

Warstwa transportowa

Integracja z edytorem i silnikiem

Komponenety

NetworkBehaviour

Synchronizacja

NetworkIdentity

Co dostarcza UNet?

HLAPI

Integracja z edytorem i silnikiem

Serwisy internetowe

Warstwa transportowa

Serwisy Internetowehttps://developer.cloud.unity3d.com

Co dostarcza UNet?

HLAPI

Integracja z edytorem i silnikiem

Serwisy internetowe

Warstwa transportowa

Warstwa Transportowa

Warstwa Transportowa

Warstwa Transportowa

UDP / WebSockets

StartServer(matchResponse.address, matchResponse.port, matchResponse.networkId, matchResponse.nodeId);

Gra w wersji LAN

Gra w wersji LAN

Tworzymy NetworkManger

Gra w wersji LAN

Tworzymy NetworkManger

Gra w wersji LAN

Tworzymy Network Manger

Gra w wersji LAN

Przygotowujemy Prefab Gracza

Gra w wersji LAN

Przygotowujemy Prefab Gracza

Gra w wersji LAN

Przygotowujemy Prefab Gracza

Gra w wersji LAN

Przygotowujemy Prefab Gracza

Gra w wersji LAN

Ustawiamy spawn gracza

Gra w wersji LAN

Ustawiamy spawn gracza

Gra w wersji LAN

Uruchamiamy!

Gra w wersji LAN

Gra w wersji Internet

Tworzymy projekt w Unity Cloudhttps://developer.cloud.unity3d.com

Gra w wersji Internet

Przypisujemy projekt do projektu z Unity Cloud

Gra w wersji Internet

Powtarzamy kroki z wersji LAN...

Gra w wersji Internet

… ale uruchamiamy inaczej

Gra w wersji Internet

Nie trzeba kodzic?

SinglePlayer = MultiPlayer

[Command] void CmdDoFire(float lifeTime) { GameObject bullet = (GameObject)Instantiate( bulletPrefab, transform.position + transform.right, Quaternion.identity); var bullet2D = bullet.GetComponent<Rigidbody2D>(); bullet2D.velocity = transform.right * bulletSpeed; Destroy(bullet, lifeTime);

NetworkServer.Spawn(bullet); }

SinglePlayer = MultiPlayer

[Command] void CmdDoFire(float lifeTime) { GameObject bullet = (GameObject)Instantiate( bulletPrefab, transform.position + transform.right, Quaternion.identity); var bullet2D = bullet.GetComponent<Rigidbody2D>(); bullet2D.velocity = transform.right * bulletSpeed; Destroy(bullet, lifeTime);

NetworkServer.Spawn(bullet); }

Czy da sie zrobic MMO?

Co dobrego?

Komponenty załatwiają za nas dużo rzeczyIntegracja z UnityBędzie rozwijało się wraz z silnikiemProste kodowanieMożna tworyć własne rozwiązania

Wszystko ma swoje wady

Match Making oparty na Unity CloudBugiZależność

Mało literatury i tutoriali

UNet vs Photon

DarmoweSerwer w chmurzeNa wszystkie platformyWystarczy jedna instancjaSerwer zna wygląd sceny

(optymalizacja)$0.49 / GB

DarmowyDedykowane serweryMiewa problemy z konsolamiOddzielna instancja serweraSerwer nie zna wyglądu

sceny$95 - 100 CCU

$95/m-ce - 500 CCU

UNet vs Photon

DarmoweSerwer w chmurzeNa wszystkie platformyWystarczy jedna instancjaSerwer zna wygląd sceny

(optymalizacja)$0.49 / GB

DarmowyDedykowane serweryMiewa problemy z konsolamiOddzielna instancja serweraSerwer nie zna wyglądu

sceny$95 - 100 CCU

$95/m-ce - 500 CCU

Rozwoj UNet

Host Migration (5.3.x) - KomponentServer Library (5.4) ?

UNet vs Photon

DarmoweSerwer w chmurzeNa wszystkie platformyWystarczy jedna instancjaSerwer zna wygląd sceny

(optymalizacja)$0.49 / GB

DarmowyDedykowane serweryMiewa problemy z konsolamiOddzielna instancja serweraSerwer nie zna wyglądu

sceny$95 - 100 CCU

$95/m-ce - 500 CCU

UNet vs Photon

DarmoweSerwer w chmurzeNa wszystkie platformyWystarczy jedna instancjaSerwer zna wygląd sceny

(optymalizacja)$0.49 / GB

DarmowyDedykowane serweryMiewa problemy z konsolamiOddzielna instancja serweraSerwer nie zna wyglądu

sceny$95 - 100 CCU

$95/m-ce - 500 CCU

UNet vs Photon

DarmoweSerwer w chmurzeNa wszystkie platformyWystarczy jedna instancjaSerwer zna wygląd sceny

(optymalizacja)$0.49 / GB

DarmowyDedykowane serweryMiewa problemy z konsolamiOddzielna instancja serweraSerwer nie zna wyglądu

sceny$95 - 100 CCU

$95/m-ce - 500 CCU

UNet vs Photon

DarmoweSerwer w chmurzeNa wszystkie platformyWystarczy jedna instancjaSerwer zna wygląd sceny

(optymalizacja)$0.49 / GB

DarmowyDedykowane serweryMiewa problemy z konsolamiOddzielna instancja serweraSerwer nie zna wyglądu

sceny$95 - 100 CCU

$95/m-ce - 500 CCU

CCU = Concurrent User

1 CCU = 100 Monthly Active Players100 CCU * 20 Message/Player/Second * 200 Bytes = $120 /

$480Jak się liczy CCU?

Jak to działa w praktyce?

Literatura?

UNet Manual(http://docs.unity3d.com/Manual/UNetOverview.html)

Gamasutra(http://www.gamasutra.com/blogs/ChristianArellano/20150922/254218/UNET_Unity_5_Networking_Tutorial_Part_1_of_3__Introducing_the_HLAPI.php)

YouTube: Gamer To Game Developer(https://www.youtube.com/watch?v=sKZJRXMJL30&list=PLwyZdDTyvucyAeJ_rbu_fbiUtGOVY55BG)

mWin.pl ;)

Pytania?

Poznań 2016

Dzieki za uwage!marek@mwin.pl | fb/mwinblog |

www.mwin.pl

Poznań 2016