Come posso prototipare un gioco online? [chiuso]


8

Vorrei sapere se siete a conoscenza di librerie, motori o anche semplicemente progettare modelli che semplificano fortemente il compito di condividere informazioni e inviare messaggi tra programmi di rete, in modo da potersi concentrare sull'ottimizzazione del gameplay invece di riscrivere il codice di rete, mentre prototipazione di giochi in rete. Poiché questo è pensato per i prototipi, la facilità d'uso e la flessibilità sono molto più importanti della velocità e della sicurezza.


1
Bene, ho sentito che Unity è in grado di creare giochi in stile MMO, tuttavia è un motore che si concentra sul 3D, puoi fare 2D ma devi solo diventare un po 'creativo (come fare un piano che contiene lo sprite 2D come una trama e impostare la telecamera per guardare verso il basso.) So che il buzz 3D ha fatto un tutorial sulla programmazione MMO Unity, ma non penso che sia disponibile al pubblico. Ti suggerisco di stare con Paper Prototyping, che è il luogo in cui provi a creare un gioco usando ritagli di carta e muovendo le cose da solo, è un buon modo per ottenere feedback senza creare il gioco completo, gestire da soli gli eventi online.
Benjamin Danger Johnson,

1
ZMQ è eccezionale per ridurre la potenza di rete.
Anko,

@BenjaminDangerJohnson Ho usato Unity, ma i loro componenti di rete sono troppo specifici per condividere le posizioni degli oggetti. Devi scrivere sopra il tuo motore se vuoi usarlo per qualcos'altro, e questo vanifica l'intero scopo della prototipazione.
Panda Pajama,

@Anko 0MQ sembra interessante e ci proverò. Sono preoccupato che tenti di semplificare il livello di trasporto , il che molto probabilmente significa che alla fine dovrai scrivere il tuo protocollo applicativo, che è esattamente ciò che voglio evitare per la fase di prototipazione.
Panda Pajama,

2
Sulla base della riscrittura, 0MQ (o RabbitMQ) funzionerà bene. Nessun sistema di messaggistica è in grado di automatizzare la replica dei dati del tuo gioco, il contenuto del messaggio dipenderà sempre da te per creare e interpretare. Diamine, su una LAN potresti semplicemente inviare spam e chiunque ascolti potesse scegliere i pacchetti pensati per loro, i dati potrebbero essere XML o JSON o un semplice flusso di coppie di testo chiave-valore perché per la prototipazione a livello locale hai la certezza di avere tonnellate di larghezza di banda. Ma devi ancora fare il lavoro del codice.
Patrick Hughes, il

Risposte:


4

Il modo più semplice per prototipare un gioco online, che consente di cambiare rapidamente quasi tutto nel gioco (anche fattori come il tempo reale o il turno), è implementare il prototipo come gioco fisico. Riunisci tutti i designer in una stanza, prendi un mazzo di carte, o dadi, o componenti del gioco da tavolo, o tutto ciò che è necessario per prototipare le interazioni di gioco generali. Quindi gioca.

Puoi farlo senza dover pagare programmatori o artisti. Provare diverse varianti delle regole del gioco richiede solo un minuto o due invece di richiedere ore o giorni (o settimane!) Di lavoro di programmazione, e puoi sapere se il tuo gioco funziona o meno giocando effettivamente, invece di dover progettare prima del implementazione e fare ipotesi su cosa funzionerà o non funzionerà. Inoltre, i tuoi programmatori ti piaceranno ancora alla fine del processo. :)

  • Nel fare ciò, raccomando di avere almeno una persona che agisce come osservatore; non prendere parte al gioco stesso, e un'altra persona il cui compito è tenere appunti su chi ha fatto cosa e quando. I dati su ciò che è realmente accaduto durante ogni partita possono diventare straordinariamente utili mentre si regola il set di regole tra le partite.

Penna, carta, dadi, carte, schede, gettoni. Questo è davvero tutto ciò di cui hai bisogno. E per la prototipazione del design di un gioco, è meglio di ogni altra cosa.


6
Anzi. Se i tuoi compagni di lavoro si rifiutano di fare ciò che è evidentemente il modo più rapido ed economico per consentire all'azienda di iterare rapidamente su un prototipo di gioco, allora non sei in un ambiente professionale.
Trevor Powell,

2
Non trasformiamo questo in una discussione sul posto di lavoro. Certamente la prototipazione fisica è molto buona, ma non è sempre possibile, e non tutti i giochi sono banalmente fisicamente giocabili. Di solito posso hackerare idee di gioco 2D per giocatore singolo in poche ore e modificarle per vedere se sono interessanti. Voglio solo essere in grado di fare lo stesso per i giochi multiplayer.
Panda Pajama,

5
Sei tu quello che ha allevato gli ambienti di lavoro, non io. Se non vuoi parlarne, va bene. Ma non aspettarti che io taci mentre dichiari che la prototipazione fisica in qualche modo non può funzionare in ambienti di lavoro "professionali". Perché semplicemente non è vero.
Trevor Powell,

2
Inoltre, non tutti i giochi sono banalmente fisicamente prototipabili. I giochi di puzzle e di strategia sono facili da realizzare con la tua proposta, ma i giochi d'azione, musicali, di corsa, sportivi e di simulazione potrebbero non esserlo.
Panda Pajama,

1
Nessun metodo renderà magicamente "banale" la prototipazione per qualsiasi tipo di gioco (molto meno per ogni tipo di gioco). Doppiamente quando sono coinvolte le reti. Che si tratta di 'non banale' non è un motivo per respingere qualsiasi metodo di prototipazione, perché si è mai andare a trovare un metodo che è banale.
Trevor Powell,

2

relatively simple rule changes such as "let's try this in real time instead of turn-based"Mi sembra un cambiamento piuttosto fondamentale per me, non un semplice cambio di regole. Penso che scelte di progettazione fondamentali come questa dovrebbero essere fatte prima ancora che tu possa arrivare a scrivere qualsiasi codice di rete, sia con prototipi offline che con prototipi cartacei.

Cioè, prototipare il gameplay senza fare alcuna rete. Ciò significherebbe scrivere un gioco multiplayer a livello locale (cioè entrambi i giocatori sono sullo stesso computer) al fine di testare le idee di gioco.

Voglio dire, nel mio lavoro una volta abbiamo preso un gioco che era già a metà strada sviluppato a turni e convertito in tempo reale, e sì, che comportava una massiccia riscrittura del codice di rete. Col senno di poi, quello era un modo davvero inefficiente per avvicinarsi alle cose, e praticamente decidemmo "mai più".


Non proprio, se non è in rete, cambiare un gioco a turni in tempo reale non è molto difficile. Il problema con provare sullo stesso computer è che sei limitato a due, o forse fino a quattro utenti contemporaneamente. Ad ogni modo, questo è stato un esempio, ma ci sono molte altre cose che voglio testare che possono sicuramente essere più facili da testare se sono effettivamente in rete ...
Panda Pajama,

Non capire il punto della tua prima frase. È esattamente quello a cui sto arrivando, che apportare quel cambiamento di gioco è facile se il gioco non è collegato in rete. E se ci sono altre cose che possono essere testate solo quando la rete è effettivamente in atto (ad es. Sincronizzazione su Internet), prendere quante più decisioni possibili prima di iniziare a preoccuparsi.
Scherzo il

0

Non riesco a immaginare la necessità di un tale strumento perché credo che la logica di rete sia fatta meglio attraverso una solida analisi di quali informazioni devono andare dove.

Ma, se fossi costretto a creare una cosa del genere per qualcuno che lo desiderasse, userei:

  • il linguaggio di programmazione Python
  • 0MQ per la messaggistica (tramite pyzmq )
  • il modulo pickle per inviare dati arbitrari (come indicato in un esempio qui )

Questo copre tutti i problemi di trasporto affidabile, delineazione dei messaggi e serializzazione / deserializzazione. (Pickle non è sicuro per qualsiasi cosa diversa dall'uso della intranet.)

Sarà comunque necessario impostare la logica per decidere cosa fare con i dati, prendere e attuare la decisione di quali computer si collegano a quali altri computer e così via. E non supporta la messaggistica inaffidabile, le chiamate di procedure remote, la replica automatica dello stato, ecc. Ecco perché di solito è meglio pianificare ciò che si desidera e scriverlo in quel modo.

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.