Attualmente sto lavorando a un gioco orientato alla fisica per giocatore singolo in cui vorrei che la fisica venisse simulata sul lato server. Questo perché il gioco avrà classifiche, progressione persistente del giocatore, eccetera e voglio prevenire qualsiasi tipo di imbroglio - fondamentalmente un'architettura client-server pura, il client è "stupido" e mostra solo ciò che il server vuole che tu mostri.
Il problema tuttavia è che molto probabilmente il gioco verrà giocato da centinaia (forse migliaia) di persone contemporaneamente. Questo mi preoccupa, poiché molto probabilmente ucciderà la potenza di elaborazione del server se devo fare e mantenere centinaia di stati contemporaneamente.
Non avrei problemi a spostare tutte le simulazioni fisiche sul lato client, ma avrei davvero bisogno di un modo per convalidare se il risultato di una simulazione client è valido. Tuttavia, non riesco a capire come.
Ho pensato di eseguire la simulazione sul lato server una volta ogni tanto per verificare se il client funziona ancora correttamente, ma voglio davvero che il server abbia il minor sforzo possibile.
La fisica diventerà complessa come la demo del GDC 2011 di Glenn Fiedler , forse anche più semplice. Tuttavia, molti corpi rigidi sempre più in collisione saranno in una singola scena e saranno tutti visibili contemporaneamente.
Ho difficoltà a ottenere una risposta a questo caso particolare, poiché la maggior parte delle risorse sul web - di nuovo, il sito di Glenn Fiedlers è eccezionale - parla di fisica in rete su piccola scala (ad esempio un FPS con 30 giocatori, come Halo).
Eventuali consigli, siti Web, documenti o simili sull'argomento saranno molto apprezzati.
Un riepilogo delle domande a cui vorrei una risposta:
- Quanto è fattibile un modello client-server? La mia potenza di elaborazione del server è legittima e fondata?
- È possibile validare in modo affidabile una simulazione fisica eseguita dal client sul server? Se é cosi, come?