Domanda

Vorrei scrivere alcune semplici Mario-come il gioco da zero utilizzando il linguaggio C. Ma onestamente non ho idea di come farlo, e non posso trovare qualsiasi buon tutorial per questo, che è gratuito.

Ma alla domanda actuall, ho scritto solo i programmi WinAPI finora, così tutti gli input gestione degli eventi e l'utente è stato gestito da OS, con il lavoro minimo, ma di sviluppare gioco, con ad esempio i menu con i tasti non-rettangolari, animazioni e così, credo, non v'è nulla di simile in WinAPI taht mi potrebbe aiutare con questo più che solo alcuni di base del mouse routine posizione del puntatore e pressione dei tasti.

Quindi, è il modo giusto per scrivere il vostro gioco di scrivere tutta la parte sorteggio del motore di gioco, manipolando oggetti per il giocatore, i nemici, e anche di fondo se stessi, e non solo l'uso DirectDraw per l'output su schermo?

EDIT: Io in realtà voglio imparare a scrivere i giochi da zero, siccome deve essere grande esperienza di programmazione, e se si considera giochi come Commander Keen su DOS, creato senza alcun quadro o librerie, ma ancora così grande.

È stato utile?

Soluzione

Un approccio bello per questo sarebbe di avere uno sguardo alla libreria SDL. Non sto dicendo che è necessariamente la migliore libreria per giochi 2D, ma è facile per iniziare con e il web è invaso da tutorial ed esempi di codice open source per semplici homebrew giochi 2D scritte utilizzando SDL.

Altri suggerimenti

I fare Consiglierei SDL troppo, ma si dovrebbe assolutamente avere uno sguardo su lazyfoo esercitazione , che è semplicemente fantastico.

ho usato anche SDL, ma cercare di guardare HGE . Si richiede almeno DirectX 8.0 in modo che le applicazioni funzioneranno solo su Windows, ma sul loro forum troverete molti argomenti su come portarlo a OpenGL. A mio parere HGE sarà più facile da imparare rispetto SDL, perché SDL è una libreria di basso livello e si dovrà imparare a gestire molte cose da soli. HGE è più pronto per iniziare appena fuori dalla scatola.

Quando ho iniziato la programmazione ho iniziato a fare con Allegro, indietro nei bei vecchi tempi del DOS. E 'stata la prima biblioteca utilizzabile che ha lavorato con le librerie SVGA, e ha avuto un buon supporto sprite. Poi vennero versione 3 e hanno aggiunto il supporto per Windows (utilizzando GDI e Directy X, è possibile scegliere in fase di esecuzione, che motore per l'uso). Il porto linux è venuto a vita, e tutto è buono.

Si tratta di una libreria molto semplice 2D, e vi insegnerà le basi di grafica e animazioni. Ora contiene anche il supporto audio che è un'aggiunta molto bisogno (beh, mi ricordo ancora V 2.9x ...). Sono in beta per la versione 5, e credo che questo sia un progetto interessante per voi a guardare in.

http://www.talula.demon.co.uk/allegro/

Che cosa sono state parlando, il WinAPI ha un basso livello di routine di disegno.

Anche se utilizzando una libreria consolidata come SDL è probabilmente una migliore idea è possibile creare le proprie astrazioni alla WinAPI disegno routine senza troppa difficoltà.

Poi è solo una questione di creare il ciclo while che ha tutte le istruzioni di disegno e di ingresso interpretare. Per i giochi 2D questo non è troppo difficile.

In breve, sì - non c'è niente nella WinAPI che vi aiuterà molto. Tuttavia, ci sono decine di motori di gioco che si potrebbe costruire il tuo gioco su che avrebbe preso una quantità enorme di gruntwork fuori di creazione del gioco stesso. Un po 'di usare Google vi aiuterà.

(Raccomandazione personale: anche se è tecnicamente un motore 3D, qualcosa di simile a Unità è un ottimo motore che include tutorial per la creazione di giochi 2D. L'unità non è C, ma non rendere la vita molto più facile ...)

  

EDIT: Io in realtà voglio imparare a scrivere i giochi da zero, siccome deve essere grande esperienza di programmazione, e se si considera giochi come Commander Keen su DOS, creato senza alcun quadro o librerie, ma ancora così grande

Questo è in realtà non è giusto. Commander Keen (e tutti i giochi DOS) faccio uso di librerie: quelli forniti da DOS, BIOS, ecc Senza librerie di una forma o nell'altra, non sarebbe in grado di fare qualcosa di utile con C. Per la programmazione del gioco, è davvero vuole lasciare tutti i dettagli di livello basso a qualcun altro.

Allegro come una libreria di programmazione inizio gioco.

Scopri questo Game Dev partire

Hanno davvero una grande risorsa relativa a programmazione del gioco e un sacco di roba per principianti. SDL è buona, ma si dovrebbe prendere in considerazione circa l'apprendimento delle tecniche di base del gioco prima di iniziare a scrivere codice e prima ancora di iniziare a pensare al API / librerie che si usa.

Cancella quanta "intelligenza" è necessario (Ki), considera sul caricamento / salvataggio di un un tempo in anticipo, ... tanto le cose che si dovrebbero tenere a mente se si vuole completare il progetto. Avete bisogno di un editor di gioco? (Also..work) Che dire del suono / grafica? Scrivendo tutta questa roba da soli ci vorrà un sacco di tempo (se non si dispone di esperienza). Creare il contenuto è un altro grande problema che può consumare un sacco di tempo, se si fanno affatto.

Forse sarà aiuterà ad avere uno sguardo su alcuni ragazzi dev, perché che vi darà l'idea di come le loro opere di motore. Come questo (obsoleto) Dev kid

Ho appena iniziato un progetto simile pochi giorni fa, è possibile controllarlo fuori sopra a GitHub .
Esso dovrebbe darvi alcune idee su come il gioco è strutturato. Così come alcuni dettagli su una mappa 2D a scorrimento con la collisione (che si rivela essere molto complicato se si vuole ottenere il 100% privo di bug). Oh, e sta usando SDL come molti qui hanno già suggerito.

Per quanto mi riguarda, questo è il mio primo progetto C. Ma dovrò ammettere che ho fatto cose simili in Java e Python prima, quindi questo è stato un buon modo per me per imparare rapidamente C. E poiché è l'apprendimento e non qualsiasi materiale produttivo, sto usando C99 pianura, che rende il compito ancora "più divertente".

Ma torniamo al gioco, si ha realmente bisogno di pensare al vostro disegno prima di iniziare la codifica, scriverlo su un foglio di carta, o se siete come me e non lo fai avere roba albero a portata di mano di scrittura in pseudocodice.

Pensate quante più possibili stati di gioco, come si può, c'è niente di peggio che dover ri-implementare l'intero lettore / carta / qualunque roba da zero, solo perché non hai pensato sulla funzione XYZ prima.

Il design è molto importante, se non si dispone di un obiettivo per cominciare, il progetto raggiungerà un punto in cui non riesce, proprio come il mio Tuff ha fatto, bene anche riuscita a causa di musica e qualcuno che avrebbe progettato nemici, ecc mancanti.

Parlando di grafica e quali, tenere a mente che il gioco sarà composto da molto di più che il codice pianura. Se non sei bravo in grafica poi tenerne conto durante la progettazione. Perché si perde rapidamente la motivazione quando le uniche cose sullo schermo sono rettangoli colorati.

Azione Arcade Avventura Set (in origine pubblicato come un libro) è probabilmente uno dei più tutorial completo su come scrivere un gioco a scorrimento laterale in 2D. Anche se un riferimento più anziani, molti fondamentali per lo sviluppo di un 2D a scorrimento laterale non sono cambiate.

esempi completi di codice sorgente e alcuni strumenti per sviluppare un side-scroller sono forniti come download . C'è solo una libreria esterna utilizzata per gestire le primitive grafiche. Poiché si tratta di un programma DOS più vecchio, potrebbe essere necessario utilizzare un emulatore DOS come DOSBox o modificare gli esempi per gli ambienti più moderni.

Suggerisco si sfiorano i capitoli da 1 a 9 e concentrarsi su capitoli da 10 a 17.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top