Orario: 18-05-2013, 9:25 Benvenuto ospite! (Log inRegistrati)


Rispondi 
Ragazzi come si programma un replay?
Autore Messaggio
daygoshen
Indieveloper

Messaggi: 95
Registrato: Jul 2009
Offline Offline
#1 Ragazzi come si programma un replay?
0
Avete qualche idea, suggerimento, codice, link su come si programma un replay?

Personal Site
24-03-2012 12:35
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Gabriele
Posting Freak

Messaggi: 4,355
Registrato: Oct 2010
Offline Offline
#2 RE: Ragazzi come si programma un replay?
0
qui diciamo che affronta il problema su iphone, ma cmq credo che come spunto ti possa essere utile
http://fabiensanglard.net/shmup_generate_videos/
edit:

in sostanza si salva gli input da tastiera (e altre cose) per poi rieseguire il gioco con gli input precedenti...

Gabriele Di Bari
Account G+
Account bitbucket
Account GITHUB
E ricordate: ((VMJava*)(NULL))->~VMJava();
(Questo messaggio è stato modificato l'ultima volta il: 24-03-2012 12:46 da Gabriele.)
24-03-2012 12:45
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
daygoshen
Indieveloper

Messaggi: 95
Registrato: Jul 2009
Offline Offline
#3 RE: Ragazzi come si programma un replay?
0
prendendo esempio da un gioco di calcio...

durante la partita mi salvo il video... e appena si fa goal ...smetto di registrare e faccio partire gli ultimi secondi ?

è fattibile.... rallenta il gioco?

Personal Site
24-03-2012 12:55
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
hjeldin
bananarama operative

Messaggi: 682
Registrato: Jan 2011
Offline Offline
#4 RE: Ragazzi come si programma un replay?
0
Ritengo sia piu veloce copiare gli input come ha suggerito Gabriele, cosi' puoi anche cambiare la view della camera in modo da mostrare il goal da diverse angolazioni.
E registrare un video e' abbastanza pesante, si.

Riccardo Arena
Actionscripttaro da 3.0 soldi e winner di contest Microsoft come unico partecipante Asd


dev/whatever blog

portfolio
24-03-2012 13:00
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
daygoshen
Indieveloper

Messaggi: 95
Registrato: Jul 2009
Offline Offline
#5 RE: Ragazzi come si programma un replay?
0
anche se il gioco è in 2d?

Personal Site
24-03-2012 13:07
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Gabriele
Posting Freak

Messaggi: 4,355
Registrato: Oct 2010
Offline Offline
#6 RE: Ragazzi come si programma un replay?
0
(24-03-2012 13:07)daygoshen ha scritto:  anche se il gioco è in 2d?

certo che si, ovviamente ci sono 2 modi per intendere "video":

1° Canonico sistema che riprende tutto e genera un file video.
2° File registra input/stati/etc.. che che poi vengono rieseguite dal gioco.


il 1° caso di solito ingloba il 2° perché sarebbe troppo lento generare un video mentre si sta giocano Linguaccia

il 2° cosa per molti giochi basta registrare una lista di struct tipo questa

Codice:
struct input_node{
    double dt; // delta time di quel momento
    ulonglong  time;// momento della pressione
    unsigned char key;//tasto premuto
    struct input_node* next;//input successivo
};

in altri casi vanno registrata informazioni supplementari, tipo per gli oggetti che hanno caratteristiche "casuali" oppure per NPC/IA, ma ovviamente non devo esagerare altrimenti il costo sarebbe proibitivo.....

(in sordina la soluzione sarebbe quello di registrare la singola posizione e stato di ogni entità oltre all'input del player, oppure, più difficile, registrare solo i cambiamenti di stato delle entità)

Gabriele Di Bari
Account G+
Account bitbucket
Account GITHUB
E ricordate: ((VMJava*)(NULL))->~VMJava();
(Questo messaggio è stato modificato l'ultima volta il: 24-03-2012 13:19 da Gabriele.)
24-03-2012 13:13
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Mattia
Pretentious

Messaggi: 3,757
Registrato: Nov 2009
Offline Offline
#7 RE: Ragazzi come si programma un replay?
0
Ma non puoi registrati le posizioni dei personaggi ogni tot come punti (+ eventi importanti tipo calcio, etc.) e poi riprodurre tutto tramite interpolazione? (Visto che conosci il tempo tra un punto e l'altro)

Mattia Traverso
Working on RIOT
24-03-2012 14:30
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
KappeiJin
Ghoulsa e Ghosta

Messaggi: 883
Registrato: Jan 2011
Offline Offline
#8 RE: Ragazzi come si programma un replay?
0
Si usa la stessa tecnica anche per l'attract mode?

Paolo Cattaneo
[Immagine: sblgtk.png] Raven Travel Studios (pls follow us ^^)
"Ogni buon lavoro software nasce da un problema personale di uno sviluppatore."
24-03-2012 15:08
Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
dany_dev
Posting Freak

Messaggi: 3,975
Registrato: Sep 2010
Offline Offline
#9 RE: Ragazzi come si programma un replay?
0
(24-03-2012 14:30)MaTX ha scritto:  Ma non puoi registrati le posizioni dei personaggi ogni tot come punti (+ eventi importanti tipo calcio, etc.) e poi riprodurre tutto tramite interpolazione? (Visto che conosci il tempo tra un punto e l'altro)

per le poche volte che l'ho fatto, anche io ho "risolto" così....
posizioni e angoli degli oggetti.


ps: grazie del link gabriele, adesso lo leggo xD
(Questo messaggio è stato modificato l'ultima volta il: 24-03-2012 15:14 da dany_dev.)
24-03-2012 15:13
Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Litobyte
Junior Member

Messaggi: 33
Registrato: Mar 2012
Offline Offline
#10 RE: Ragazzi come si programma un replay?
0
Dipende dal tipo di game.

Per alcuni, basta registrare l'input, e poi mettere in play l'engine come se fosse una partita normale, ma invece che leggere gli input hardware, leggerebbe il file registrato con tutti gli input.

Per altri tipi di gioco,questo non basterebbe, perché le variazioni casuali delle IA o dell'ambiente non riprodurrebbero sempre alla stessa maniera. In quel caso bisogna registrare i vettori / matrici di tutti gli oggetti in campo che si muovono e il file di replay si gonfierebbe di NON poco rispetto a registrare solo gli input.

Inchino It's time to get dancing commander!
They are coming, they are many, they want our gold!!! Inchino
Tower Defense Action Strategy - http://www.orionattack.com
24-03-2012 18:45
Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
kunos
Gatto Incavolato

Messaggi: 2,345
Registrato: Jul 2010
Online Online
#11 RE: Ragazzi come si programma un replay?
0
(24-03-2012 18:45)Litobyte ha scritto:  Dipende dal tipo di game.

Per alcuni, basta registrare l'input, e poi mettere in play l'engine come se fosse una partita normale, ma invece che leggere gli input hardware, leggerebbe il file registrato con tutti gli input.

Per altri tipi di gioco,questo non basterebbe, perché le variazioni casuali delle IA o dell'ambiente non riprodurrebbero sempre alla stessa maniera. In quel caso bisogna registrare i vettori / matrici di tutti gli oggetti in campo che si muovono e il file di replay si gonfierebbe di NON poco rispetto a registrare solo gli input.

dipende, non e' sempre cosi'. Se il motore di gioco e' completamente deterministico allora i random non sono un problema, basta sapere il seed e mantenere un counter di quante chiamate a rand() ci sono state.

Stefano Casillo

www.assettocorsa.net
www.netkar-pro.com
Twitter
[Immagine: acsign.jpg]
24-03-2012 19:01
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
_tommo_
Mod nerdcore

Messaggi: 5,867
Registrato: Nov 2008
Offline Offline
#12 RE: Ragazzi come si programma un replay?
0
Poi c'era un talk interessantissimo di jon blow (che s'è perso nell'internet) a proposito di come ha messo il replay in Braid Sisi
Nel suo caso lui era partito con la solita "premature optimization" di salvarsi solo gli input, ma poi si è accorto che poteva permettersi tranquillamente di salvare snapshot interi dello stato a 30 fps per diversi minuti senza sforare il budget Ahsisi

Per cui se il tuo gioco è semplice e ci sono poche entità, la cosa più facile potrebbe essere salvarsi tutto Ahsisi
Lui ha anche usato un sistema di compressione dinamica per comprimere il replay sfruttando il fatto che gli stati cambiano raramente, non so se usando roba standard tipo gzip o un sistema custom.

EDIT: purtroppo l'articolo si trova solo a 4 dollari su GDCVault, si chiama "The implementation of rewind in Braid"... eppure io l'ho letto gratis. boh Hmm

Tommaso Checchi
< devlog | twitter | Dojo, a C++ game framework >
(Questo messaggio è stato modificato l'ultima volta il: 24-03-2012 20:20 da _tommo_.)
24-03-2012 20:10
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
dany_dev
Posting Freak

Messaggi: 3,975
Registrato: Sep 2010
Offline Offline
#13 RE: Ragazzi come si programma un replay?
0
ma quando dici "salvare snapshot" intendi immagini? in quel caso non potresti sovrapporre il replay al gioco attuale stile super meat boy. Mi sembra un approccio molto "limitato"
(Questo messaggio è stato modificato l'ultima volta il: 24-03-2012 22:49 da dany_dev.)
24-03-2012 20:50
Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
KappeiJin
Ghoulsa e Ghosta

Messaggi: 883
Registrato: Jan 2011
Offline Offline
#14 RE: Ragazzi come si programma un replay?
0
Se devo fare una demo tipo attract mode, mi conviene implementare una registrazione dei comandi mentre gioco e di replicarla, tipo replay del mame?

Paolo Cattaneo
[Immagine: sblgtk.png] Raven Travel Studios (pls follow us ^^)
"Ogni buon lavoro software nasce da un problema personale di uno sviluppatore."
(Questo messaggio è stato modificato l'ultima volta il: 25-03-2012 1:55 da KappeiJin.)
24-03-2012 20:57
Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
psicomante
Pixelizer

Messaggi: 210
Registrato: Jul 2011
Offline Offline
#15 RE: Ragazzi come si programma un replay?
0
(24-03-2012 20:50)dany_dev ha scritto:  ma quando intendi salvare snapshot intendi immagini? in quel caso non potresti sovrapporre il replay al gioco attuale stile super meat boy.

presumo intenda lo stato della memoria Hmm

Roberto P
< site | twitter >
(Questo messaggio è stato modificato l'ultima volta il: 24-03-2012 21:09 da psicomante.)
24-03-2012 21:08
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Rispondi 


Vai al forum: