Come creare una funzione Ghost Replay in un gioco?


19

Quando imposti il ​​miglior tempo sul giro personale in un gioco di corse su console, hai la possibilità di competere contro il tuo fantasma.

Come può essere creata questa funzione per un gioco di tipo casuale per giocatore singolo?


2
+1 Domanda interessante per chi è solo un principiante nello sviluppo del gioco (io). =)
Will Marcouiller l'

Se ci dicessi che tipo di gioco è, potremmo aiutarti in modo più specifico.
Attaccando

Risposte:


10

I fantasmi vengono generalmente eseguiti visualizzando un replay di un tentativo precedente. Questo replay è reso con una versione non collidibile dell'auto dei giocatori in modo che tu non possa influenzarlo. Dato che i giochi di corse hanno spesso una funzione di replay, questo tipo di giochi è gratuito.

Ecco un buon punto di partenza per la creazione di un sistema di riproduzione: http://www.gamasutra.com/view/feature/2029/developing_your_own_replay_system.php

Inoltre ci sono una serie di domande qui su questo argomento:


+1 Ho appena imparato qualcosa di nuovo con la tua risposta, grazie! =)
Will Marcouiller il

1

Dipende dalla tecnologia con cui stai lavorando. Quindi, non possiamo davvero discutere del modo migliore, dal momento che potrebbe cambiare da una tecnologia all'altra. L'idea grossolana secondo me sarebbe la seguente:

  1. Utilizza un archivio dati sottostante per conservare i tuoi dati (XML, Cookie, Database, CSV, altro ...);
  2. Gestisci l'accesso ai tuoi dati a questo archivio dati sottostante;
  3. Devi conservare i dati informativi sul miglior punteggio di un giocatore, quindi è necessario un identificatore (email, nome di input, altro ...);
  4. Associare questo miglior punteggio all'identificatore in un modo o nell'altro.

In breve, supponendo l'uso di un database, potremmo avere due tabelle:

  1. Dati utenti / giocatori (identificativo, e-mail, ecc.);
  2. I migliori dati informativi sulla scheda punteggi.

Quindi, è possibile salvare le informazioni dell'utente insieme al singolo tabellone che, se lo si desidera, potrebbe contenere il registro di data e ora su quando questo punteggio è stato raggiunto.

Spero che questo aiuti e che abbia compreso correttamente la domanda. Altrimenti, ti preghiamo di dire in modo che io possa modificare la mia risposta di conseguenza.


3
Penso che probabilmente stia cercando un meccanismo di registrazione / riproduzione per raggiungere questo obiettivo. L'ambiente di gioco deterministico, il monitoraggio di eventi che cambiano le cose (ad esempio l'input del giocatore) e simili sono in genere i modi consigliati per farlo.
James

Grazie per il tuo contributo James! Sono cose che non conosco, anche se la mia risposta è anche un approccio facile, umilmente. Tuttavia, sono interessato a saperne di più sull'argomento. Oh e, +1 per il tuo commento, questo mi insegna che ci sono altri approcci fattibili. =) Grazie! =)
Will Marcouiller

mi dispiace davvero per questo sciocco, sto ancora imparando le basi grazie ad entrambi per le tue informazioni, non posso davvero rispondere con la giusta conoscenza perché non ne possiedo. quello che voglio ottenere è ogni volta che provo a battere il mio punteggio più alto personale che vedo sullo schermo un fantasma (replay) di come ho giocato il gioco quando ho impostato il mio punteggio più alto
claude keller

@Will gli stai dicendo informazioni su cosa si potrebbe fare per una configurazione multiplayer, una volta che avrà effettivamente capito la risposta alla sua domanda su una partita a giocatore singolo. La sua domanda è come creare il fantasma in primo luogo.
Attaccando

@AttackingHobo: Grazie per avermelo detto. In realtà ho capito dal commento di James sulla cosa della registrazione, quindi dopo aver letto la risposta di Wkerslake, ora capisco meglio cosa viene chiesto dall'OP. A parte, hai ragione quando dici che la mia configurazione proposta è più probabile che venga utilizzata in una configurazione multiplayer. Ehi, sto ancora imparando qui, e grazie per aver permesso di crescere meglio! Lo sviluppo del gioco è ancora un nuovo trucco per me, anche se sono uno sviluppatore esperto. =) Grazie per il tuo commento AttackingHobo! =)
Will Marcouiller

1

Non è facile rispondere a questa domanda senza avere maggiori informazioni sul tuo gioco. La risposta di wkerslake funziona fintanto che l'attuale playthrough con il fantasma non può influenzare il determinismo dei dati fantasma registrati. Se i dati registrati sono una singola prova a cronometro in un ambiente statico, dovresti andare bene usando quella tecnica.

Tuttavia, in molti giochi con riproduzione fantasma, come Super Meat Boy, la posizione del giocatore può cambiare lo stato del livello e l'intelligenza artificiale. Chiaramente, non puoi avere il fantasma che influenza il mondo e l'IA, quindi potrebbe essere meglio registrare solo i cambiamenti di posizione + animazione (e qualsiasi altra cosa visibile) ogni fotogramma per il giocatore principale. Durante la riproduzione, esegui il rendering del fantasma nella posizione corrente e nel fotogramma di animazione senza che sia nel mondo. Ciò ti consente di riprodurre un fantasma e di non influire sul giocatore attuale.

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.