Che tipo di meccanica di gioco ha senso essere gestita dal lato client? [chiuso]

1

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.

    
posta aog 01.10.2014 - 21:12
fonte

1 risposta

5

Quasi tutti!

Ora, questo dipende ovviamente dal tipo di gioco, ma, per quanto possa sembrare sorprendente, la maggior parte dei meccanismi deve essere eseguita sul client. Tieni presente che devono essere solo esegui sul client. Il server deve sempre avere l'ultima parola. Sto parlando di una simulazione.

La fisica è il caso più ovvio di tutti. Se salti, il server può ricevere quell'informazione dopo 100ms e un altro giocatore in 100ms in più. Non c'è tempo per confermare che può saltare almeno fino a dopo 200ms. Il tuo cliente deve fare qualcosa. Potrebbe essere necessario correggere la simulazione, ma nella maggior parte dei casi ritardi di 200 ms non sono accettabili.

Questo "anti-lag" porta a molti problemi, ed è un argomento molto complesso che dovresti probabilmente ricercare in modo indipendente.

Si noti che questo dipende anche dal tipo di gioco. In un gioco a turni, il server può fare tutto il lavoro in sicurezza, perché non è necessario un feedback immediato.

    
risposta data 01.10.2014 - 21:26
fonte

Leggi altre domande sui tag