Trädvy Permalänk
Medlem
Registrerad
Mar 2016

Unity 5 Client/Server

Hej!

Har suttit och kikat på Unity senaste veckorna och försökt bilda mig en uppfattning. Skapat några enklare spel och lärt mig grunderna, vilket kändes förvånansvärt enkelt.

Ville testa att skapa ett multiplayer med en klient och en dedikerad server och började läsa om detta. Hittar väldigt lite information om att skapa en "fristående", dedikerad server (typ en C# Command Line Application) för hantering av serverkod. Verkar som att 99 % av multiplayerspelen (Client/server) byggs i SAMMA projekt.

Min fråga är nu: finns det någon med erfarenhet kring detta och som kan upplysa/informera? Googlat en del men hittar fasen inte det jag är ute efter..

Förstår inte hur det skulle gå att bygga en "säker" server om man distribuerar serverkoden tillsammans med klienten till slutanvändaren.

Tacksam för svar!

Förtydligande av frågeställning
Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Sep 2012

Jag arbetar som spelutvecklare i C# och unity med fokus på just backendsidan. Varför har du fått för dig att server-koden skulle ligga i samma projekt som klienten?

Så som vi har löst det har vi ett "gemensamt" projekt som delas av server och klient. Den kompileras till en dll när server-koden byggs och inkluderas i klientprojektet. På så vis kan vi ha den kod som är gemensam, tex. enums, modeller, api-interface, konstanter m.m.

Men i övrigt har servern och klienten helt egna kodbaser, vore ju vansinnigt att försöka inkludera all backend i klienten.

Trädvy Permalänk
Medlem
Registrerad
Mar 2016

Okej, tack! Jag antar att jag fått för mig detta eftersom Unity i stort verkar vara rätt väldokumenterat och jag lyckas inte hitta någon som helst information om just detta.

Bygger ni fortfarande servern i Unity men som ett eget projekt eller använder ni något nätverksbibliotek och kör en "standalone" applikation för det?

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Sep 2012
Skrivet av huff:

Okej, tack! Jag antar att jag fått för mig detta eftersom Unity i stort verkar vara rätt väldokumenterat och jag lyckas inte hitta någon som helst information om just detta.

Bygger ni fortfarande servern i Unity men som ett eget projekt eller använder ni något nätverksbibliotek och kör en "standalone" applikation för det?

Nej, servern byggs naturligtvis också i C# men hostas helt separat i Azure-molnet. Så det är en standalone applikation med ett API som klienten kommunicerar genom över websocket.

Trädvy Permalänk
Medlem
Registrerad
Jul 2009

Jag skapade ett multiplayerspel i Unity förra året för en högskolekurs och jag tror jag förstår vad du menar. Man kan ha nätverksdelen på två sätt, antingen som en Server-klient eller som peer-to-peer där man inte har någon egen server utan klienterna ansluter direkt till varandra. Så det kan vara så att de exempel du har tittat på har varit peer-to-peer och har då haft "server"kod i klientsidan.

Ang. server så kan jag rekommendera servertjänsten Photon (https://www.photonengine.com/en/PUN) som erbjuder gratis serverhosting i deras moln. Då behöver man i princip bara att lägga till en photonmarkör på allt som ska syncas över nätverket och så sköts implementeringen automatiskt.

Silverstone Raven RV-02E | Asus Sabertooth p67 | Intel 2500k | Sparkle GTX 580 | G.Skill 2x4GB 1600Mhz Ripjaws Gaming | Fractal Design R2 800w | OCZ Vertex 2 120GB | 1TB Samsung F3 HD103SJ + 2x500GB 7200RPM | Zalman CNPS-9900 MAX |

Trädvy Permalänk
Medlem
Registrerad
Mar 2016
Skrivet av Skalman1337:

Jag skapade ett multiplayerspel i Unity förra året för en högskolekurs och jag tror jag förstår vad du menar. Man kan ha nätverksdelen på två sätt, antingen som en Server-klient eller som peer-to-peer där man inte har någon egen server utan klienterna ansluter direkt till varandra. Så det kan vara så att de exempel du har tittat på har varit peer-to-peer och har då haft "server"kod i klientsidan.

Ang. server så kan jag rekommendera servertjänsten Photon (https://www.photonengine.com/en/PUN) som erbjuder gratis serverhosting i deras moln. Då behöver man i princip bara att lägga till en photonmarkör på allt som ska syncas över nätverket och så sköts implementeringen automatiskt.

Ang. peer-to-peer och server-lient så nja, jag vet skillnaderna mellan de två så var inte riktigt det jag var ute efter.

Har kikat lite på Photon men eftersom jag försöker lära mig nätverksprogrammering (tillsammans med Unity) lite mer grundläggande så har jag gått vidare och börjat skriva ett eget projekt baserat på Lidgren.Network. Tack ditt svar i alla fall