Trucchi nella meccanica di gioco per evitare di affrontare la compensazione del ritardo di rete?


20

L'implementazione della compensazione del ritardo di rete è difficile, come evitarlo?

Forse è possibile usare trucchi e costruire meccaniche di gioco in modo tale che il ritardo venga percepito come una parte non critica o addirittura naturale del gioco?

Quali sono quelle tecniche e ci sono giochi esistenti (MMORPG, Strategie, ...) che usano tali tecniche?

AGGIORNARE:

I giochi a turni non richiedono compensazione del ritardo, ma sarebbe interessante vedere gli approcci in tempo reale (o solo un'impressione di tempo reale, la parte importante - l'utente non dovrebbe essere bloccato e costretto ad aspettare).

Il motivo principale per cui ho dovuto evitare la compensazione del ritardo è la semplicità.



6
Se stai cercando di costruire un gioco in cui la latenza non è un problema; prendere in considerazione la costruzione di qualcosa che è a turni dove è accettabile qualche secondo.
Vaughan Hilts,

3
Quel collegamento Valve riguarda i modi abbastanza complessi in cui viene implementata la compensazione del ritardo di rete, quindi è l'opposto di ciò che la domanda pone.
Kylotan,

@JohnMcDonald Sì, conosco quell'articolo di Valve e, come detto, è l'opposto di quello che chiedo :).
Alexey Petrushin,

Potresti dare un'occhiata anche a GGPO: ggpo.net
Decenza,

Risposte:


16

È comune per il cliente implementare una sorta di feedback per far sapere immediatamente al giocatore che l'azione scelta è stata registrata, ad es .:

  • suono dell'interfaccia (es. clic sul pulsante)
  • suono nel mondo (es. un personaggio che dice "Subito, comandante")
  • animazione (es. iniziare a dondolare una spada)

Questi possono avvenire mentre le informazioni viaggiano sul server in modo che il giocatore non si renda conto che la sua azione non è ancora iniziata. Fintanto che il server risponde prontamente e l'azione inizia presto, il giocatore potrebbe non notare il ritardo.

Questi trucchi funzionano nei giochi in cui gli input dei giocatori sono abbastanza rari e quindi la quantità di tempo che passi in attesa che gli input abbiano effetto è una percentuale relativamente piccola del tempo totale trascorso a giocare. Pertanto, vorresti trovare modi per strutturare il gioco in modo che il giocatore effettui meno input. Questo probabilmente significa rendere le azioni dei giocatori più astratte e far sì che il gioco attui comportamenti di basso livello. Esempi:

  • sostituire la meccanica dello sterzo con la meccanica del percorso
  • sostituire la meccanica di mira con la meccanica di selezione del bersaglio
  • sostituisci le istruzioni di combattimento round-by-round con piani più tattici o strategici
  • sostituire il gameplay in tempo reale / continuo con sistemi discreti / a turni

1
Grazie, formalizzi ciò che mi viene chiesto: usa input rari e differiti dal lettore. Sarebbe interessante vedere i giochi reali che lo usano.
Alexey Petrushin,

2
Centinaia di giochi usano cose come questa in qualche modo, ma molto probabilmente è stato fatto per altri motivi con il ritardo nel nascondere un effetto collaterale benefico.
Kylotan,

7

Pensieri a caso:

  1. imbroglio: usa i razzi . I razzi esplodono in un raggio, nascondendo qualsiasi stranezza.
  2. imbroglione: predeterminare il risultato e forzare visivamente la condizione
  3. cheat: gli attacchi richiedono tempo , nascondono la latenza nell'atk + anim + discontinuità del risultato
  4. cheat: disconnette il feedback locale dagli elementi di rete
  5. cheat: un sacco di VFX o attività sullo schermo che copre qualsiasi stranezza.
  6. utilizzare un progetto di reazione all'azione che richiede risoluzione prima di continuare

Quindi sì, barare molto.


4

La risposta è abbastanza semplice: costruisci solo giochi che non hanno sezioni che richiedono tempo. Stai cercando di evitare l'implementazione di questi tipi di interpolazioni per un motivo specifico per cui lo prendo, il che significa che non sei preoccupato per il gioco nervoso e veloce. Questo è perfettamente accessibile per molti giochi, incluso Civilization (che è un gioco di strategia). Tuttavia, capisci che NON è accettabile per un gioco di strategia REAL TIME in cui devi trasferire molti dati sulla rete a intervalli variabili. Se desideri progettare un gioco su una rete a latenza molto elevata, considera quanto segue:

  1. Costruisci giochi a turni. In questi tipi di giochi, non è necessario un input in tempo reale dello stato e l'altro giocatore può semplicemente inserire lo stato del gioco nel proprio client quando è il suo turno. Ciò riduce la pressione sulla rete e consente ritardi anche di alcuni secondi, se lo si desidera. Civilization è un gioco a turni che è molto popolare e sulla scia della strategia.
  2. Riduci al minimo le decisioni degli altri giocatori. Se il tuo gioco è strategico e non può giocare a turni, considera la possibilità di ridurre l'impatto dei pacchetti in ritardo. Il cliente può eseguire la maggior parte della simulazione? Un esempio è un gioco di strategia che si gioca da solo per un po 'e poi, dopo 16 minuti, viene simulato contro un altro giocatore (forse un gioco di combattimento in cui i giocatori inviano truppe ogni intervallo x e riportano ogni intervallo y.

Spero che questo aiuti almeno un po '; senza conoscere le tue esatte idee di gioco è difficile. Presumo che tu abbia le tue ragioni per voler creare il tuo gioco attorno a un tale schema (semplicità, risparmio sulla larghezza di banda, ridotta complessità della rete)


4

Puoi anche fare in modo che il lag faccia parte del tuo gameplay per amor del "realismo". Supponiamo che i tuoi giocatori debbano controllare alcuni robot a distanza, potresti forzare il ritardo ad almeno 500ms o 1s (dovresti implementare un sistema di imbottitura di ritardo dinamico).


Questa è una bella svolta
o0 '.

0

È anche un bel trucco semplicemente nascondere le azioni dei giocatori. Molti giochi FPS fanno esattamente questo. Non mostrano alcun elemento visivo della maggior parte dei proiettili, vengono riprodotti solo i suoni e si ottiene il risultato sotto forma di danno inflitto ai giocatori.

Ho giocato ad alcuni giochi di sparatutto in prima persona in cui armi ad alta precisione (cecchini e simili) avevano effetti visivi molto chiari e si poteva effettivamente vedere che l'altro giocatore sparava dietro di te, ma a causa della compensazione del ritardo sei stato ucciso.

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.