Sono consapevole che questa è una domanda difficile e dipende dalle meccaniche di gioco e dal tipo di gioco applicato. Quindi, molte risposte possono essere date. Per semplicità, sarebbe meglio considerare un tipico MMO online gioco per trovare facilmente una risposta soddisfacente.
Questa è la domanda parzialmente correlata a my previous domanda in termini di riduzione dei costi di rete.
Ernest Adams & Joris Dormans che sono gli autori di il libro aveva ben descritto cinque principali meccaniche di gioco che sono ampiamente utilizzati in molti giochi online. (A proposito, il libro è molto utile chi ha bisogno di ottenere nuovi approcci alla meccanica del gioco.)
Il libro sopra menzionato descrive cinque meccanismi principali come segue:
1) Fisica
2) Economia interna
3) Meccanismi di progressione
4) Manovra tattica
5) Interazione sociale
Ovviamente, ogni gioco ha le sue caratteristiche a seconda dello scenario di gioco e può essere una meccanica aggiuntiva aggiunto alla logica del gioco. Tuttavia, una delle difficoltà reali è quella di decidere a quale meccanica fare meglio implementare sul lato client e quali no. Queste sono decisioni cruciali perché ognuna di esse potrebbe avere effetti collaterali incluso il rischio di truffa da parte del cliente e utilizzo della larghezza di banda della rete.
Molti designer preferiscono implementare la meccanica fisica sul lato server nei giochi in rete perché è il modo più sicuro per prevenire l'imbroglio anche se ha bisogno di molta più larghezza di banda di rete e potente investimento di hosting. Tuttavia, penso che altri siano aperti per la discussione.
Abbiamo lavorato per implementare tutti i meccanismi di cui sopra nel nostro progetto di gioco con Unity3D e C #. Avevamo programmato di implementarli tutti in logica di gioco server. Ma ora, pensiamo che potrebbe essere possibile implementare alcuni di essi in script lato client invece di utilizzare server completamente autorevoli. Quindi, significa che dobbiamo implementare logica server semi-autorizzativa in cui alcuni meccanismi gestiti dalla logica del server e altri controllati negli script lato client.
Abbiamo bisogno di idee progettuali semi-autorevoli per l'architettura per velocizzare il nostro progetto.
Grazie
UPDATE: Sarebbe meglio isolare la domanda. So che, la previsione lato client, l'interpolazione e l'estrapolazione che tutti devono essere implementati sul lato server. Questi sono i requisiti di fisica primaria che mi consentono di fornire movimenti di caratteri senza intoppi. Il cliente passa le previsioni, il server le approva o invia le correzioni. Questo è OK.
Se consideriamo l'economia interna, questo tipo di giochi comprende generalmente elementi facilmente identificabili come risorse: denaro, energia, munizioni e così via. Tuttavia, l'economia di un gioco non si limita a oggetti concreti e concreti; può anche includere astrazioni come salute, popolarità e potere magico.
Quanto rischio assumerei se provassi a gestirli tutti negli script lato client in termini di imbrogli? Al contrario, se provo a gestirli tutti sul lato server, causerei molto più traffico? Come ottimizzarlo?
Altre meccaniche possono anche includere parametri cruciali simili che devono essere salvati.
Penso che i meccanismi anti-cheat dovrebbero essere la cosa più importante per ogni sviluppatore di giochi commerciali. Ho visto molti video su youtube alcuni anni fa che insegna come hackerare il gioco di farmville sul lato client.