2010-06-06 9 views
8

L'ho inserito immediatamente come una wiki della comunità. Non voglio ancora chiedere aiuto nella programmazione o avere anche una domanda specifica sulla programmazione, ma piuttosto il processo e le risorse necessarie per realizzare un gioco del genere.Se volessi creare un gioco di Pac-Man?

Per dirla in parole semplici: il mio amico del college e io abbiamo deciso di darci una vera sfida per migliorare le nostre capacità di programmazione. Tra sei mesi vogliamo mostrarci un gioco di Pac-Man. Pac-Man sarà controllato dall'IA come i Fantasmi e qualsiasi Pac-Man sopravvive più a lungo dopo aver vinto una serie di prove.

Questo non è niente che abbiamo fatto finora. L'obiettivo qui, per me, non è quello di creare un gioco perfetto, ma per provare a completarlo, impara un sacco di cose nel processo. Anche se non finisco nel tempo, che è una buona possibilità, vorrei averlo provato almeno.

Quindi la mia domanda è questa: come dovrei iniziare a prepararmi? Ho già iniziato matematica vettoriale, matrici, tutta quella roba divertente. La mia piattaforma desiderata sarebbe DirectX 9.0c; è consigliabile? Tieni presente che questa non è una preferenza solo per questo progetto, ma desidero avere una sorta di futuro nello sviluppo della grafica, quindi voglio scegliere una piattaforma che sia sicura per il futuro.

Per quanto riguarda lo sviluppo del gioco in generale, che cosa dovrei prendere in considerazione? Non ho mai fatto un gioco reale prima d'ora, quindi qualsiasi consiglio per lo sviluppo di progetti di medie dimensioni (se questo sarebbe un progetto di media scala) è molto apprezzato.

Le mie preoccupazioni principali sono i pit-cad e i demotivators.

Scusa se la domanda è così vaga. Se non appartiene qui, allora lo rimuoverò. In caso contrario, qualsiasi e tutti i consigli per quanto riguarda la realizzazione di progetti più grandi è molto apprezzato.

+7

Date un'occhiata a 'http: // www-cs-students.stanford.edu/~ amitp/gameprog.html' può aiutare con alcuni argomenti. – tur1ng

+0

Che bella pagina! Grazie mille per il link! – IAE

+0

L'equivalente DirectX di "Hello World!" è disegnare un triangolo sullo schermo, usando il sistema di rendering. Prova a cercare "DirectX disegna un triangolo". ;) –

risposta

2

Personalmente, ecco cosa ho avrebbe fatto:

  • giochi studio open source per vedere quello che fanno
  • acquistare un libro sulla programmazione del gioco (in realtà, ho a book about game programming già, ma probabilmente si desidera qualcosa di più recente di quello)
  • scegliere un set di strumenti di sviluppo biblioteca/videogiochi (Sourceforge, Google Code)
  • lavoro attraverso i tutorial che vengono con quella libreria , Possibilmente passare a una libreria diversa, se l'API è troppo strano
  • venire con un documento di requisiti
  • redigere un disegno primo passaggio ("piano per buttare via uno"), try to have somebody review it
  • decidere su un piano di test
  • write up a schedule, non perché voglio rimanere nei tempi previsti, ma perché voglio rompere le cose in compiti facilmente definiti
  • scrivo il più piccolo gioco completo che potevo (ad es., un folletto Pac Man che posso controllare all'interno di un finestra: nessun labirinto, fantasmi, punteggio, vita, capacità di morire, ecc.)
  • aggiungi funzionalità a quel gioco fino a quando non ho implementato il tutto
+0

Queste sono idee abbastanza solide. Solo una domanda, cosa definiresti come un'API "strana"? – IAE

+7

Prima di eseguire uno dei precedenti, installavo un sistema di controllo della versione e mi familiarizza con il suo utilizzo. –

+0

Mettilo nella mia lista, grazie! Qualcuno in particolare che puoi consigliare, o meglio un "esperimento e vedere di persona" una cosa del genere? – IAE

1

Suona come una buona idea per un progetto di apprendimento!Le 2 cose generali che vi consiglio per il vostro approccio sono

  1. lavoro in iterazioni
  2. leggere un mucchio su C++ e DirectX lungo la strada

Inizio piccolo - scrivere un codice che non fa altro che disegnare Pac-Man sullo schermo. Quindi costruisci su questo implementando il movimento sullo schermo. Quindi costruisci i confini della mappa e l'impossibilità di attraversarli. E continua in questo modo, dando la priorità al prossimo compito che devi completare, e poi facendo tutto il necessario per completarlo. Cerca di non rendere le attività troppo grandi.

Per capire come completare le attività, è necessario leggere. Libri, siti web e codice esistente sono tutti molto utili per capire come fare ciò che vuoi. Vale la pena esaminare diversi modi per completare lo stesso compito, perché alcuni modi sono migliori di altri, o potrebbero adattarsi meglio al tuo progetto.

9

Dato che non hai provato questo genere di cose prima ecco alcune cose che consiglierei.

Inizia con qualcosa di diverso DirectX (e presumibilmente C++)

DirectX e C++ esporre a un sacco di roba di basso livello si può imparare in seguito. Mantieni le cose semplici e magari prova XNA e C#, che è abbastanza vicino da poterlo portare in un secondo momento, ma ti consentirà di saltare un sacco di cose come la gestione della memoria e i puntatori per ora.

Inizia con 2D, invece di 3D

Il Pacman originale è in 2D in modo da non saranno necessari per la matematica di vettore per ora.

Quindi, dove ti lascia?

Bene, alcune cose a cui pensare sono il ciclo di gioco, mantenendo le cose in sincronia, aggiornando lo schermo e rispondendo all'input dell'utente.

Questi sono ottimi principi e ti permetteranno di ottenere qualcosa di attivo e funzionante molto prima. Non sottovalutare quanto sia importante continuare a vedere i progressi - questo è difficile se si imposta inizialmente la barra tecnica troppo alta.

mi piacerebbe andare su questa strada (ordinato di mantenere le cose divertenti e interessanti)

  1. Prendi uno schermo che visualizza - questo è altamente visiva
  2. ottenere un Pacman rispondere all'input dell'utente
  3. Get Pacman costretto a all'interno delle mura
  4. Ottenere un fantasma rispondere all'input utente secondario - si può rincorrersi
  5. Figura alcune rilevamento delle collisioni
  6. .210
  7. Prendi i punti e le pillole di potenza di rendering in modo da poter segnare e mangiare fantasma
  8. rendere alcuni fantasmi e capire AI
  9. Calcolare il codice per la ricerca quando il livello è completo
  10. Fai il cambiamento di mappa e di stato resetta quando su un nuovo livello

Una volta che hai funzionato e funzionante, puoi decidere se giocare con AI migliore, matematica 3D o passare a C++.

+0

Ciao! Grazie per il commento, ma per chiarire: non sono un principiante assoluto nella programmazione di giochi. Ho già realizzato una difesa tower in ActionScript e ho già programmato con XNA C#, quindi sono ben consapevole del loop di gioco e di * alcuni * processi, anche se non troppo numerosi. La ragione per cui voglio farlo con C++ è che si tratta di un vero linguaggio di programmazione utilizzato per la maggior parte dei giochi e anche della lingua principale insegnata dai corsi universitari. Apprezzo comunque il commento, e terrò a cuore i tuoi commenti ^^ Soprattutto su 2D-doh! Dovrebbero aver realizzato che i vettori potrebbero non entrare in gioco lì. – IAE

+0

È grandioso! Continuerò a seguire una sequenza simile a quella descritta sopra se non vuoi perdere il cuore. Cercare di scrivere cose come l'IA prima che tu possa vederlo visivamente in azione è un processo doloroso;) – DamienG

+1

Sì, questo è il motivo per cui modifico il mio percorso per trovare algoritmi in Excel, puoi vedere esattamente che cosa sta succedendo (e ottieni la reputazione di essere così pazzo excel guy all'interno dell'azienda) –

3

Gioca pacman! Questo è il primo compito per il tuo progetto!

+0

A causa di eventi recenti: http://www.google.com/pacman/ – tur1ng

4

Ho dovuto scrivere un gioco di pacman in Java per una classe OO. L'ho trovato molto semplice, forse con l'eccezione di trovare il modo migliore per mappare i muri. Dopo un po 'di ricerche, mi sono imbattuto in questo: http://javaboutique.internet.com/PacMan/source.html che utilizza il bit-shifting per determinare i muri. Sembra un eccesso di complessità, ma ho trovato molto elegante dopo aver giocato un po 'con la matematica. Oltre a questo, pacman è un concetto molto amichevole, quindi usa un array per la tavola, alcuni sprite di base, armeggia con la velocità e l'aggiornamento, tieni traccia dei dati di gioco e gettali in un loop. Per quanto riguarda l'intelligenza artificiale con i fantasmi, ci sono articoli scritti su di loro. Ogni fantasma ha una "strategia" specifica. Oppure potresti farcela da solo ... potresti programmarli per essere facili come sempre diretti verso pacman (o la sua posizione/quadrante generale), o come complesso (percorso più breve) come vorresti.

1

Buona roba! Sono felice che Pacman ti motiva e ti ispira.

Cose per iniziare.

1) Decidere l'ambiente di sviluppo.

a) Are you building a standalone game or a networked game. 

b) Which language are you targetting at to improve? 

2) Come ben versato con AI?

3) Conoscenza delle tecniche degli algoritmi di programmazione, come il percorso A * (A stella), l'algoritmo Dijkstra, il rilevamento delle collisioni, il test dei colpi o anche la programmazione ricorsiva?

4) Qualcuno di voi ha talento nella progettazione grafica?

Buona fortuna.

P/S FYI, se dovessi scrivere un gioco di Pacman, lo farei in C# e Silverlight 4.0 (posso scrivere C++ comodamente ma la mia priorità è saltare sul carro di Silverlight).