Qual è un buon libro per iniziare a programmare un gioco C ++ 2D? [chiuso]


8

Ho una laurea in Informatica e mentre ero al college, ho creato un semplice gioco 2D in Game Maker. Vorrei ricreare questo gioco in C ++ come inizio per imparare a creare giochi in C ++. Quale sarebbe un buon libro per iniziare a programmare giochi in C ++ per qualcuno che ha un po 'di esperienza in C ++ (le mie lezioni di CS Major sono state insegnate usando Java e ho avuto una lezione di C ++ per imparare la sintassi) e conoscere i concetti alla base degli oggetti, metodi, eredità, ecc.?

Questo sarebbe un mio hobby mentre accumulo esperienza fino a quando un giorno potrei lavorare nel settore dei videogiochi.


Se hai bisogno di motivazione (e hai tempo) potresti voler partecipare a pyweek o ad uno dei contest di
pygame

Risposte:


8

Visto che stavi usando Game Maker, presumo che tu sia su Windows, quindi vai alla fine con l'SDK direct-x. Gli esempi forniscono il codice sorgente e ti offrono anche un assaggio della potenza a tua disposizione. Solo perché vuoi fare un gioco 2D non significa che dovresti rimanere con una libreria 2D, ad un certo punto probabilmente vorrai fare qualcosa che la libreria non implementa in sé (shader o rotazioni o qualcosa di casuale che hai appena BISOGNO del tuo progetto).

SDL - e probabilmente SFML e Cinder - fornisce un approccio di alto livello " toglie le basi" all'essere un motore, quindi avresti tutta la potenza di farlo da zero (quindi potresti avere pixel shader in SDL), ma non impareresti come sono state fatte le cose. Faresti quindi un vero C ++ all'interno di un framework di helper, che ti aiuterà a fare le cose, ma non sarà di grande aiuto per insegnarti come sviluppare giochi se mai lavorerai in una società di sviluppo di giochi.

SDL, SFML e persino Cinder sono tutti modi intelligenti per evitare di imparare cose difficili in C ++. Normalmente racchiudono OpenGL, che è utile per imparare se si desidera codificare la grafica per macchine non Windows, ma ci sono tonnellate di risorse per svolgere il lavoro anche in Direct-X (probabilmente più poiché il virus Windows si è diffuso in ogni angolo del mondo).

Se non vuoi imparare le cose grintose, va bene, ma altrimenti, non aver paura di iniziare da un'app Win32 non elaborata.

Suggerirei, per comodità, di iniziare con tutti i diversi pacchetti di supporto che puoi trovare, ma vai alla stesura del tuo motore di rendering. Scrivere un motore è molto divertente e può fornirti una risorsa per guardare indietro nei tuoi progetti futuri. Niente crea un buon codice come la saggezza nel fare qualcosa di sbagliato in passato.


Grazie per la risposta, ho esperienza in C ++ e mi piacerebbe entrare nelle cose grintose, quindi avrei esperienza in esso. Mi piacerebbe che questo hobby alla fine portasse a una carriera nel settore dei videogiochi una volta che avrò un'esperienza lavorativa.
sange,

7

Consiglierei di stare lontano dalla biblioteca di Cinder. Navigare attraverso i tutorial è tanto demotivazionale quanto può ottenere. Scegli qualcosa che sia facile, divertente e veloce da codificare, come SFML . Pensalo come un moderno sostituto orientato agli oggetti per SDL. Se le funzionalità soddisfano le tue esigenze, installale, segui i tutorial e inizia a giocarci. Puoi trovare i codici sorgente per i progetti SFML esistenti dai forum per vedere come implementano le cose, come il loop di gioco, come organizzano il codice e gli oggetti e li fanno comunicare tra loro e Wikihanno un numero di tutorial e sorgenti codici che puoi usare nei tuoi progetti. E i forum sono attivi, quindi puoi chiedere aiuto lì in qualsiasi momento.


Non ne avevo mai sentito parlare - sembra molto più appropriato di un cinder per i giochi! simpatico.
Iain,

4

Non conosco nessun libro specifico per i giochi 2D, ma dovresti guardare le risposte qui . Dopotutto, i giochi 2D e 3D hanno molto in comune. Esistono molti giochi 3D con gameplay 2D.

Forse potresti controllare i tutorial di Lazy Foo , che trattano molti argomenti importanti in modo graduale. Usano SDL e OpenGL.


3

Potrebbe essere un po 'datato ma Advanced 2D Game Development è stato un bel libro. Controlla.


Ho appena comprato questo libro (aspettando che arrivi!) - in che termini diresti che è datato?
Zolomon,

Bene da quando è uscito nel 2008, la tecnologia è certamente cambiata. Ma i metodi molto probabilmente sono gli stessi. Mi dispiace è da un po 'che non lo leggo e non mi viene in mente nulla.
Miguel Moll,

2

Perché non provare a iniziare con qualcosa come http://libcinder.org/ : è tutto gratuito e ha tutti i tutorial che ti servono per iniziare.


0

Al di là di un libro, è importante decidere quale tipo di gioco vuoi creare. Ciò contribuirà a informare il tuo percorso in generale. Suggerirei di scegliere qualcosa di semplice, Minesweeper o Tetris o forse Lightcycles of Tron, in cui la logica del gioco è abbastanza semplice e i requisiti grafici sono minimi solo per ottenere qualcosa di base.


0

Mentre ci sono molti libri là fuori, non ne ho trovato uno di cui sono contento. La maggior parte sembra attenersi ai "giochi" che non sono particolarmente interessanti dal punto di vista del gioco e non entrano nei dettagli dell'implementazione della grafica, dei loop di gioco e così via.

La mia raccomandazione sarebbe, piuttosto che cercare un libro, insegnarti attraverso la ricerca di Google. Ci sono tonnellate di tutorial online per creare giochi semplici, basta scegliere un gioco come Tetris (o qualsiasi altra cosa), farsi un elenco di attività di programmazione e poi quando ti blocchi su qualcosa (forse non sei sicuro di come accettare l'input in tempo reale o come disegnare elementi grafici sullo schermo) cercare la risposta a quella domanda specifica. Ripeti ogni volta che rimani bloccato e, al termine, avrai una buona idea di come viene messo insieme un gioco.

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.