Con quale frequenza MMORPG di grandi dimensioni aggiorna la fisica? [chiuso]


12

Per quanto ho capito, la maggior parte dei grandi giochi usa un timestep fisso per avere una simulazione stabile.

Per quanto riguarda il server di gioco , quale "frame rate" impongono? O detto in un altro modo, che tempo fisso tendono a usare?

So che molti direbbero: "Il più velocemente possibile con loro". Mi piacerebbe sapere quanto è veloce, se hai esperienza diretta con MMORPG affermato.


Non dovresti prestare troppa attenzione a ciò che fanno gli altri. Ciò che funziona per qualcun altro non deve necessariamente funzionare anche per te.
Philipp,

6
EVE Online aggiorna la simulazione una volta al secondo, ma il suo sistema è insolito. Vedi la prima parte di questo articolo per maggiori dettagli: themittani.com/features/understanding-eve-online-server-tick
Ross Ridge,

1
Quindi questa è una domanda "chiedere curiosità sui giochi di altre persone che già esistono" rispetto a una domanda sullo sviluppo di un gioco?
Trevor Powell,

2
Non lo definirei una curiosità - è abbastanza importante. Il fatto che alcuni giochi possano usare tick di 1 secondo, che non conoscevo o che non usano affatto la fisica, è molto importante per me (e dovrebbe essere per qualsiasi sviluppatore). Allo stesso tempo, la mia risposta a Philipp era dovuta alle sue implicazioni non dette che stavo chiedendo perché volevo decidere sui miei FPS. Ciò non avrebbe senso perché il mio motore ha molte limitazioni e conosco già il limite FPS che posso usare (sia i limiti inferiore che superiore).
Fabio,

1
Ricordo di aver letto un articolo su Blizzard che modificava la velocità di elaborazione del server WoW per gli eventi di combattimento da una volta ogni 400 MS a "ogni volta che arrivano". Tuttavia, ciò non è legato alla fisica, dal momento che WoW non ha molto in termini di fisica a causa della sua età. Inoltre non riesco a trovare una fonte per questo.
Nzall,

Risposte:


7

Second Life implementa la fisica sul lato server usando Havok e blocca gli aggiornamenti a 45 al secondo.

https://community.secondlife.com/t5/General-Discussions/SIM-FPS-is-maxed-out-at-45/td-p/181120

Versioni precedenti intorno al 2005-2006 lasciavano fluttuare gli aggiornamenti di fisica quanto il server avrebbe consentito. Una regione semplice con pochi oggetti con script poteva essere eseguita a 800 aggiornamenti al secondo ... Per una migliore efficienza e coerenza, in seguito lo hanno bloccato su 45.

(In Second Life, la frequenza dei fotogrammi dipende dalla CPU e dalla potenza grafica di ciascun client. La precisione mondiale dipende dalle prestazioni della rete.)


In effetti, questo sembra ragionevole. Ho trovato anche solo 30 FPS per fare un lavoro decente se l'integratore è buono e il rilevamento delle collisioni abbastanza intelligente. Conosci altri MMO con una fisica adeguata e i loro timestep?
Fabio,

2
Accettato come l'unico a fornire un esempio nel mondo reale, ma erano tutti buoni spunti di riflessione. Grazie ragazzi.
Fabio,

24

Ho lavorato su un paio di server di gioco, tra cui una suite per un MMO.

In generale, non hanno affatto la fisica. Nelle poche situazioni in cui è necessaria la fisica (soprattutto il salto), permettiamo ai clienti di calcolare la propria fisica e neghiamo qualsiasi cosa sia troppo stravagante (i giocatori si muovono troppo in fretta per troppo tempo, andando molto più in alto di quanto avrebbero dovuto essere in grado di saltare, eccetera).

Inoltre, i server in genere non hanno "timesteps". Normalmente non pensano affatto in "frame per secondo". Invece, sappiamo quando abbiamo sentito l'ultima volta qualcuno e cosa stavano facendo allora, e poi quando sentiamo di nuovo da loro poco dopo sentiamo cosa stanno facendo ora, e quindi aggiorniamo il nostro stato interno in modo che corrisponda . Non è necessario simulare rigorosamente tutto sul lato server; possiamo semplicemente registrare le cose che i clienti ci dicono e fare alcuni controlli per assicurarsi che ciò che dicono i clienti sia plausibile per noi.


4
Funzionerebbe solo se l'ambiente non eseguisse alcuna simulazione senza i giocatori registrati, giusto? In realtà stavo assumendo che lo facesse generalmente , ma probabilmente non è importante per la maggior parte degli MMO in quanto non è davvero "vivo". Grazie, questa è stata una risposta inaspettata.
Fabio,

2
@Fabio La maggior parte degli MMO non fa nulla quando non c'è nessun osservatore - anche Ultima Online, che aveva un'economia reale, vivente (ed ecologica), lasciava andare prima di essere rilasciata (anche se non per motivi tecnici). Ci sono giochi in cui le cose accadono anche quando non giochi (ad esempio, Haven e Hearth), ma il trucco è che nulla accade fino a quando non viene osservato - ogni oggetto attivo ricorda l'ultima volta che è stato osservato e calcola cosa è successo in nel frattempo il momento in cui lo vedi di nuovo. Quindi invece di un valore che aggiorna ogni segno di spunta, lo fai perTick * ticksSinceLastUpdated- semplice, efficiente.
Luaan,

1
Non fraintendetemi; I server MMO avranno spesso attività periodiche da eseguire. Verifica la presenza di mostri che devono essere rigenerati, considera la generazione di nodi di risorse, esegui il backup dello stato del gioco. Forse anche qualcosa di più fantasioso se il tuo gioco ha qualche attività procedurale. Ma non è come la fisica dove corri "x" volte al secondo anche quando non c'è nessuno in giro. Potresti verificare la presenza di mostri che generano un paio di volte al minuto, in cima (o più probabilmente, hanno un programma esterno che lo fa, e si limita a colpire il server per fargli sapere che è ora, quindi il server stesso può concentrarsi sulla gestione delle richieste dei client) .
Trevor Powell,

11

Oltre alle altre buone risposte fornite, voglio aggiungere il fatto che alcuni fisici generalmente non sono guidati dal server o addirittura conosciuti dal server ed è un trucco comune per rendere il mondo più ricco senza aggiungere sovraccarico alla rete o al server elaborazione laterale.

Ad esempio, potrebbero esserci detriti che puoi calciare a terra o soffiare nel vento che interagisce con altri oggetti, o forse puoi spingere i corpi morti.

Se la fisica è puramente decorativa e non influisce in alcun modo sul movimento o sul gameplay, puoi farlo accadere completamente sul lato client.

Diversi giocatori vedranno le cose in modo diverso (ad esempio, se spari una lattina a terra e vola via, altri giocatori potrebbero non vedere che possono volare via) ma ci sono molti casi in cui non importa che l'esperienza non sia Lo stesso vale per tutti i giocatori e avere simulazioni fisiche sul lato client può davvero migliorare l'aspetto del gioco online.


In alcuni giochi, se può volare via abbastanza velocemente, può uccidere qualcuno. Ho visto video di giochi Halo in cui qualcuno viene ucciso da un cono di traffico spinto da un'esplosione.
Casuale 832,

Se vuoi che la lattina influenzi il gameplay potresti aggiungerla al mondo della fisica sincronizzata, ma potresti anche avere un mondo della fisica non sincronizzato nello stesso spazio! Fondamentalmente, il mondo della fisica non sincronizzata può essere influenzato dal giocatore e dal mondo della fisica sincronizzata, ma non può influenzarli indietro (:
Alan Wolfe,

3

EVE Online, un MMO con un singolo frammento e fino a diverse migliaia di plaer in battaglie spaziali, corre la sua fisica su un tick di 1 Hz, chiamato tick del "destino".

http://community.eveonline.com/news/dev-blogs/fixing-lag-drakes-of-destiny-part-1-1/

Il cosiddetto "Bloodbath of B-R5RB" è la più grande battaglia di giocatori emergenti mai avvenuta in un gioco online fino ad oggi ("il conflitto di 21 ore ha coinvolto complessivamente 7.548 personaggi del giocatore e un massimo di 2.670 giocatori nel sistema B-R5RB contemporaneamente ", secondo https://en.wikipedia.org/wiki/Bloodbath_of_B-R5RB ).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.