Capsuleer,
È tempo di continuare la conversazione su Quasar, l'ecosistema sottostante per lo sviluppo moderno in EVE Online. Dalla sua introduzione al Fanfest 2022, è diventata la base per numerosi importanti progressi, tra cui:
| Progetti aziendali (2023) | Rete di hub di sovranità (2024) | PELLE (2024) |
|---|
Questo viaggio, parte di EVE Evolved, ha toccato la teoria degli insiemi, la teoria dei grafi e, uh... la teoria dei colori. Oggi, tuttavia, l'attenzione è rivolta alla tecnologia che alimenta le SKIN delle navi create dai capsuleer, perché è molto più di un semplice editor fantasioso e la magia degli shader! In effetti, è una parte fondamentale per sbloccare le funzionalità future per le prestazioni del server. Preparati, però, perché saranno necessari alcuni corsi tecnici intensivi per apprezzare i dettagli di ciò che ha fatto la squadra.
Netcode e tasso di tick
Una delle sfide più comuni nei giochi multiplayer è la sua architettura di rete, colloquialmente chiamata “netcode". Sia che si cerchi di garantire un'esperienza coerente a tutti i giocatori o di prevenire imbrogli, il modo in cui le informazioni vengono trasmesse ai client di gioco gioca un ruolo cruciale nelle prestazioni e nel divertimento complessivi. Un fattore chiave qui è il tick rate: la frequenza con cui il server di gioco si aggiorna e invia informazioni ai client connessi.
Diversi motori di gioco affrontano questo problema in modi diversi. Unreal Engine, ad esempio, enfatizza il filtro per pertinenza inviando solo gli aggiornamenti più importanti a ciascun client, mentre Source Engine si concentra sulla previsione dell'input, riducendo il numero di correzioni necessarie per mantenere un gameplay fluido.
Indipendentemente dall'approccio, il tick rate rimane un fattore fondamentale nelle prestazioni della rete. La maggior parte dei giochi funziona tra 20 Hz e 120 Hz, a seconda del numero di giocatori online, il che significa che gli aggiornamenti vengono inviati tra 20 e 120 volte al secondo per client. Ad esempio, a 60 Hz, il server deve elaborare e inviare aggiornamenti ogni 16,6 millisecondi per garantire che 60 aggiornamenti possano avvenire entro un secondo e lasciare spazio agli altri giocatori per ricevere le stesse informazioni nello stesso intervallo di tempo. Supponendo che una connessione Internet magica e priva di latenza porti ai client lo stato del gioco direttamente al momento della connessione (facciamo solo finta che esista), un server a 60 Hz elaborerebbe gli aggiornamenti dello stato del gioco in questo modo:
Due tick di un server a 60 Hz

La previsione degli input e l'interpolazione del movimento possono creare l'illusione di un'interazione quasi in tempo reale, anche senza una magica Internet a latenza zero. Ma man mano che i tassi di tick diminuiscono, i ritardi diventano più evidenti. Il che suona male, vero? Allora perché mai dovresti volere un tasso di tick più basso?
Bene, EVE Online esiste fin dai tempi dei modem 56k. Per mantenere i requisiti di larghezza di banda sufficientemente bassi per massicce battaglie spaziali, la velocità di tick del server è stata impostata su un secondo.
Più specificamente, il tick rate della simulazione fisica è di 1 Hz, il che riduce drasticamente la necessità di inviare aggiornamenti ai client desktop.
Altre interazioni con elementi che non influenzano la fisica vengono elaborate con la stessa rapidità con cui procedono i criceti Python. Ciò significa che se un input viene inviato subito prima di un segno di spunta, risulta altamente reattivo. Se inviato subito dopo, può sembrare che ci voglia un secondo o anche di più per vedere un effetto (se si tiene conto della latenza del mondo reale – GG, Australia). Tecnicamente, quindi, potresti entrare in una buona atmosfera con il server premendo un tasto esattamente una volta al secondo, ma ovviamente, per il benessere mentale, può essere molto importante fare clic su "Salta" trenta volte al secondo.

Osservando in modo olistico la media di Tranquility nell’ultimo anno, è chiaro che il numero di operazioni al secondo è proporzionale al numero di capsuleer attive nell’ammasso. In media, ogni sessione elabora circa 0,7 operazioni al secondo, dimostrando quanto sia efficiente EVE Online nel trasmettere solo i dati necessari.
I numeri oscillano, ovviamente, e queste sono tutte medie. Quando i combattimenti tra flotte raggiungono i limiti di elaborazione, entra in gioco la dilatazione temporale (TiDi). Se sei curioso di sapere tutto, puoi consultare l'archivio su TiDi per saperne di più.
Allora da dove arrivano le PELLE?
Quasi tutti i meccanismi cosmetici in EVE Online vengono inviati tramite frame di simulazione, la versione di EVE di un segno di spunta. Prima di SKINR, le modifiche SKIN alla spedizione venivano consegnate con il successivo frame di simulazione inviato a tutti i clienti interessati. In altre parole, gli aggiornamenti SKIN potrebbero avvenire solo una volta al secondo. Anche senza limiti di velocità sull'interfaccia utente o sulle richieste di rete, non importa quanto velocemente cambieresti gli SKIN, nessuno sarebbe in grado di vedere più di un aggiornamento al secondo, perché questo è il limite sulla trasmissione dei frame di simulazione.
C’è anche un altro problema: il fanout. (Ultimo corso intensivo, promesso.)
Quando cambi lo SKIN della tua nave, l'aggiornamento deve essere inviato a più destinatari, il cosiddetto "fanout". Ma quali hanno bisogno di ricevere le informazioni? Cosa succede se ti trovi vicino a un centinaio di altre navi? Cosa significa realmente “vicino” e chi sono gli altri cento?
I frame di simulazione gestiscono entrambi i problemi elaborando solo gli aggiornamenti per le navi all'interno della stessa bolla (colloquialmente griglia - da non confondere con le bolle di interruzione della curvatura). Questo approccio ha però un costo, poiché più dati per frame di simulazione significano più serializzazione e fanout per il server che simula quel sistema solare. In precedenza, Quasar monitorava solo il sistema solare in cui si trovava una nave, ma affinché SKINR funzionasse in tempo reale, doveva monitorare anche il movimento della nave tra le bolle.
Non è stata un'impresa da poco. Sono state necessarie modifiche profonde al motore di simulazione principale di EVE Online per consentire a Quasar di accedere al suo stato in un modo mai fatto prima. Il risultato è stato scioccante! Un enorme aumento di 27 volte dei dati elaborati rispetto alle semplici transizioni tra sistemi solari.
Ecco un confronto di eventi al secondo tra il viaggio nel sistema solare e il viaggio nelle bolle: tieni presente che la deformazione attraversa più bolle, non solo da "A a B".

E questo è solo traffico interno, prima ancora di considerare il problema del fanout!
Risolvere la sfida del fanout
Ora torniamo allo scenario “una nave cambia la sua SKIN vicino ad altre 100 navi”. Con il monitoraggio di tutte le navi in tutte le bolle, Quasar ora capisce cosa significa "vicino" e quali clienti devono ricevere aggiornamenti. Invece di aspettare il successivo frame di simulazione, Quasar invia immediatamente le modifiche alla SKIN a tutti in una determinata bolla.
Ciò è reso possibile dalla messaggistica del potente NATS, che gestisce in modo efficiente i circa 10.000 messaggi inviati ai client EVE ogni secondo. Servizi come quelli che gestiscono lo stato cosmetico ora possono serializzare e inviare un singolo aggiornamento SKIN, che viene poi distribuito a tutte le navi vicine, invece di essere ritardato dal tick di simulazione di 1Hz.
Ciò è dimostrato in questo breve clip tratto da un playtest di SKINR:
La domanda diventa: perché è importante che Quasar possa tracciare la posizione delle navi e inviare aggiornamenti cosmetici in modo indipendente? Perché questa tecnica consente a EVE Online di scaricare una funzione puramente estetica dal motore di simulazione principale.
Inoltre, ha implicazioni più ampie se si considerano tutti gli altri effetti cosmetici che devono essere serializzati e distribuiti ai clienti. Una volta che la conversazione si sposta oltre i cosmetici, la domanda naturale diventa: cos’altro si potrebbe scaricare su Quasar?
Superare i limiti
Per mettere alla prova il sistema, parte del test di massa SKINR prevedeva la rimozione del limitatore dell'interfaccia utente sul passaggio a SKIN per vedere cosa sarebbe successo. Il risultato? Un effetto visibile piuttosto interessante:
La parte divertente è stata quando è iniziato il vero stress test, con 500 giocatori che inviavano spam contemporaneamente ai cambiamenti SKIN nella stessa bolla su un server di test di patate. Ciò ha portato il sistema a raggiungere un picco di circa 45.000 messaggi al secondo!
Un grande ringraziamento va a tutti coloro che partecipano a questo tipo di test di massa. Potrebbe non essere sempre ovvio quanto sia prezioso il tuo contributo, ma questo illustra chiaramente l’impatto che ha la tua partecipazione.
Tornando all'esempio caotico di cui sopra, cosa ha ottenuto esattamente?
Osservando le statistiche di prima, Tranquility gestisce in genere circa 30.000 messaggi al secondo sull'intero server, con una buona media di circa un'operazione al secondo, o 1Hz. Al contrario, il test SKINR ha raggiunto 45.000 messaggi al secondo con soli 500 giocatori, il che significa che Quasar stava effettivamente fornendo aggiornamenti a 90Hz in quello scenario.
Se Quasar può fornire traffico a 90 Hz per 500 giocatori su un server di prova su piccola scala che esegue solo tre nodi, cosa potrebbe fare se raggiungesse la piena potenza di 230 nodi Tranquility con 30.000 giocatori attivi?
Cosa succede se gli stessi frame di simulazione seguono lo stesso paradigma?
Cosa succede se i frame di simulazione non devono più attendere un secondo intero per essere inviati?
Quali implicazioni ha questo per la dilatazione del tempo? Il meta cambia quando le battaglie vengono combattute in tempo reale su larga scala?
Se la fedeltà della rete può essere aumentata di 90 volte, quali nuove esperienze possono portare i progettisti ai piloti di New Eden?
Queste sono le domande che daranno forma all'evoluzione di EVE Online e ad alcune sarà possibile trovare risposta su CCP TV alle 15:00 del 20 febbraio, quindi assicurati di sintonizzarti.
o7
Fonte originale:eveonlineitalia.it— Leggi l'originale

