Buna ziua.
Cred că pentru a începe crearea unui multiplayer de rețea. Am citit o mulțime de literatură despre diferite servere. Dar, într-un fel, deși, nu este potrivit pentru ideile mele. Cum aș vrea să pună în aplicare toate:
(Exemplu) Sunt 3 jucători. Presată mai întâi butonul de salt. Toți clienții trimite un mesaj, cum ar fi: Salt (GameObject) sau GameObject.Jump (). Obiectul a sărit. Și nu există nici un server (sau mai degrabă ar fi „serverul“ a jucat un jucător, care să fie la fel de ușor a trimis informații cu privire la un client). Eu, desigur, mult simplificată (este clar că există încă multe controale diferite, sincronizări și așa mai departe. Nu a fost încă vorbit pe serverul Maxter).
Dar asta nu a citit nicăieri nici algoritmi de complexe de server. Poate cineva să-mi direct la articol corect, în cazul în care există o astfel de metodă, la toate? Sau explicați în cazul în care puteți obține programarea de obicei, și unde nu.
sari pentru a merge și rețeaua de unitate obișnuită
Ilka a scris (a): pentru saltul va merge și unitatea de rețea obișnuită
M-am uitat. Deja similar cu ceea ce ai nevoie. Cu toate acestea, următoarele întrebări:
Din nou, toate operațiunile trec printr-un intermediar (server), iar acest lucru ms suplimentare. Sau server - o parte obligatorie? Nu puteți face trimiterea de mesaje între un client (de exemplu, nici un mesaj este trimis la server, și toți ceilalți jucători)?
De ce nu vreau server? Pentru că dacă unele jucător va simultan serverul, dacă el a plecat, jocul se oprește. Dar trimiterea de mesaje între jucători nu depinde de Kago în special.
face toate lucrurile prin noua rețea
acesta poate opera atât prin server sau local
1 - 3 jucători conectați la server
2 - 1 jucător alege pentru a crea un joc, acesta devine „serverul“ el însuși, 2 jucători la prima podklyuchayutsyay
youtube.com/user/immeasurability/videos
300 300 youtube.com/watch?v=NdWLWxKqiuw
limitele youtube.com/watch?v=jveE1usxPto
navele comerciale youtube.com/watch?v=OTkhONYv8iI
Am citit, se pare, am început să înțeleg ceva.
Este nevoie de server, aprox. El mă va servi doar broker de date (calcule nu va fi pe ea). Dar, din nou, există, de asemenea, următoarele întrebări.
Sunt foarte NetworkView se potrivesc (mai degrabă NetworkView.RPC), dar este construit în unitate. Acest lucru înseamnă că serverul va fi de o aplicație Unității. Această sarcină suplimentară pe mașină (VPS / dedicat). Asta este, nu am nevoie de toate funcțiile de unitate, pentru că, după cum am spus, nu calcule pe server nu va. Ce se va sfătui? Poate că există câteva exemple simple?
atunci serverul va fi de o aplicație Unității. Această sarcină suplimentară pe mașină
Nu chiar.
Creați un joc - creează server.
În același timp, serverul este ca și în cazul în care creatorul clientului - player.
Ceilalți sunt conectate la acesta pur și simplu, în calitate de clienți.
Nu neapărat pentru a rula un server de aplicație separată.
2 - 1 jucător alege pentru a crea un joc, acesta devine „serverul“ el însuși, 2 jucători la prima podklyuchayutsyay
atunci serverul va fi de o aplicație Unității. Această sarcină suplimentară pe mașină
Nu chiar.
Creați un joc - creează server.
În același timp, serverul este ca și în cazul în care creatorul clientului - player.
Ceilalți sunt conectate la acesta pur și simplu, în calitate de clienți.
Nu neapărat pentru a rula un server de aplicație separată.
2 - 1 jucător alege pentru a crea un joc, acesta devine „serverul“ el însuși, 2 jucători la prima podklyuchayutsyay
Am ajuns la concluzia că serverul este mai bine de a face cu mașina lui (care ar fi jocul nu a oprit dacă cineva a ieșit. Și „ieftin“ nu este atât de ușor).
Deci, așa cum am înțeles, pot crea o aplicație client separată și un server de aplicație separată. Pe server, voi doar script-ul networka (fără Prefabricate, nu merge, etc).
Cred că pentru un început nu se poate și nu plătesc resursele suplimentare pe care se podzhiraet yun.
Acum v-am înțeles corect? Acest lucru se poate realiza prin intermediul unor unități?
Ei bine, da, este posibil să se asambleze server și client aplicații specifice.
În acest caz, serverul nu are nevoie să facă grafica jocului, nu sverhResursov el cu siguranță nu se va consuma.
Nu aveți nevoie de un server separat. Unul dintre clienții este serverul pentru durata unei singure jocuri de societate. El nu știe despre asta. Cheat poate fi doar singura.
Dacă ai de gând să faci un server dedicat, va trebui să închirieze hardware-ul pentru a cumpăra sau rescrie soluții de rețea pentru serverul de client, ceea ce face aplicația consola de server.
getAlex a scris (a): Nu aveți nevoie de un server separat. Unul dintre clienții este serverul pentru durata unei singure jocuri de societate. El nu știe despre asta. Cheat poate fi doar singura.
Dacă ai de gând să faci un server dedicat, va trebui să închirieze hardware-ul pentru a cumpăra sau rescrie soluții de rețea pentru serverul de client, ceea ce face aplicația consola de server.
1) Dacă aș cumpăra un VAB slab (bine, de exemplu 1000 MHz, CPU1 GB RAM), atunci cred că va fi destul de potrivit pentru inceput (la urma urmei, nu există nici un calcul nu va fi). Nu?
2) În cazul în care serverul pentru a crea în 1 jucător, atunci jocul este de peste, în cazul în care iese? Sau ar putea fi să facem ceva?
3) Ce fel de client-server trebuie să cumpere? Din câte am înțeles, voi fi capabil de a construi toate logica folosind NetworkView.RPC?
4) I ca serverul va folosi aceleași unități. Este dificil să-mi pentru a face o cerere de consolă? Nu pot găsi nimic despre el (ar fi fericit pentru a lega).
Din câte am înțeles, tu vorbești despre conducerea și gestionarea server. In cazuri extreme, va fi posibil să se facă fără comenzi de consolă.
Și o altă întrebare. Am început serverul (InitializeServer), cum am de gând să-l oprească?
2) pot fi rezolvate. De obicei, 2 conexiuni -ona simultan pentru a face lobby serverul în care jucătorii alege camera, al doilea - la server-player. Dacă serverul-playerul cade, se selectează holul noul server printre jucători bazat pe ping optim între ele
3) Toate rețelei Unitate, în măsura în care știu client-client (am putea fi greșit). Nu există opțiuni normale client-server. opțiuni gratuite client-server sunt acolo, dar au nevoie de mult dopilivat
4) Unitatea mănâncă o mulțime de spațiu. Chiar și cu opțiunea fără grafică și alte lucruri, nu este potrivit pentru servere. Serverul trebuie sa fie sub forma unei cereri de consolă, de exemplu, scris în Visual Studio
În general, pot crea mai multe servere într-o singură aplicație? Acum am scrie InitializeServer de mai multe ori (a încercat același lucru în diferite script-uri la diferite GO), și conectați se dovedește doar la ultimul creat.
Acest lucru ar putea foarte bine economisi resurse.
Încă am găsit în forum ceva similar.
Woolf a scris (a): Din punct de vedere tehnic, camera este doar o listă de utilizatori în găsirea-l
public class Cameră # 123;
Listă publice
void Userin publice # 40; utilizator # 41; # 123;
// adăugați un utilizator în lista
# 125;
void userOut publice # 40; utilizator # 41; # 123;
// elimina utilizatorul din foaia
# 125;
void userMessageToRoom publice # 40; octet # 91; # 93; msg # 41; # 123;
// trimite tuturor celor care într-o listă de mesaje
# 125;
Asta-i toate camerele minime funcționale pe server.
Se pare că voi avea un singur server. Acesta, de exemplu, există 100 de persoane. Și m-am „condiționat“ cotă parte din aceste persoane la jocul curent (a camerei) și am construi foarte relația dintre ele. Dar, probabil, toți cei 100 de clienti nu vor fi comunicate altor persoane (de exemplu, ping reciproc)?
Emel-Maks-va scris (a): În general, pot crea mai multe servere într-o singură aplicație?
Nu este atât de făcut. Există un program de bază care monitorizează prin serverul de aplicații consolă System.Diagnostic. În primul rând, în cazul în care există un accident de server, acesta va cădea doar o singură sesiune, dar nu toate. În al doilea rând, acesta va fi primul pas pentru a continua să plaseze jocul simultan pe mai multe servere. În al treilea rând, această soluție va funcționa la fel de repede aceeași dimensiune a listelor de conexiuni vor fi mai mici și nu va trebui să treacă prin lista de 1.000 de jucători, doar trei jucători pentru a face upgrade poziția.