Pensi che sia possibile passare dal C ++ direttamente al 3D (saltando il 2D)


8

Pensi che sia possibile passare direttamente dalla programmazione C ++ con esperienza (circa 5 anni) direttamente all'apprendimento di DirectX 3d?

Voglio dire .... inizierei con le basi, sono più interessato a creare Demo (come ottenere una buona demo dell'acqua e simili) piuttosto che fare un gioco completo.

Pensi che sia possibile?


3
Possibile, si. Facile? Non c'è modo.
The Communist Duck

Risposte:


16

Assolutamente possibile. Un ottimo punto di partenza Introduzione alla programmazione di giochi 3D con DirectX 10 di Frank D. Luna . È molto facile da leggere, consente di implementare rapidamente molte funzioni comuni e costituisce un'ottima base per saperne di più su DirectX e sulla programmazione del gioco.


1
Questo è il libro esatto che avrei iniziato con Lol.

2
Un altro +1 per quel libro, ottima lettura. Da lì consiglierei i libri di Wolfgang F. Engel. i suoi libri di Shader X in particolare sono stati molto utili nel corso degli anni.
James,

Questo è un libro eccellente che ho anche raccomandato.
riverbero il

2

Certo, anche se consiglio di iniziare con un'app 2D molto, molto semplice poiché la curva di apprendimento iniziale (solo far funzionare un'app DX può essere un lavoro ingrato) può essere piuttosto ripida, ed è utile sapere se i problemi che stai vedendo sono Specifico per il 3D o se ti manca qualcosa di molto semplice.

Implementa Pong: imparerai le nozioni di base come avviare e far funzionare un'app DX, l'elaborazione degli input, il rilevamento di base delle collisioni e, soprattutto, come disegnare elementi sullo schermo.

Se è la tua prima app, dovresti impiegare meno di una settimana per farlo funzionare. A quel punto, dovresti comprendere le basi del framework DX ed essere pronto per iniziare un altro progetto in cui puoi concentrarti sugli aspetti 3D: matrici di trasformazione, gestione di oggetti / stati, abbattimento, illuminazione, ecc. Forse implementa il 3D pong, o racquetball.


0

Certo che è possibile. È anche possibile imparare C ++ come primo linguaggio di programmazione. Ma probabilmente non è il modo più veloce per arrivarci.

Passare dalla "programmazione" alla "programmazione del gioco" richiede l'apprendimento di alcune cose indipendentemente dalla grafica: loop di gioco, input in tempo reale e così via. Questi sono MOLTO più facili da imparare se non devi affrontare l'apprendimento di una nuova libreria grafica allo stesso tempo. Impara una cosa alla volta e probabilmente avrai un tempo molto più semplice. (E se sei un programmatore esperto, l'apprendimento delle cose 2D non dovrebbe richiedere così tanto tempo.)


0

Cosa ha in comune il 2D con il 3D? Non tanto. Il 2D è un mondo piatto o un 3D simulato che, pur avendo un aspetto visivo simile al 3D, ha un codice molto diverso dal vero 3D.

Anche per le cose che hanno in comune, come il rilevamento delle collisioni, quanto è difficile estendere il codice in 3D? Molto facile.

In poche parole, l'apprendimento del 2D non ti aiuterà tanto quanto potresti pensare nel tuo viaggio per imparare il gioco 3D o la progettazione del motore. Hanno poco in comune, e per quello che hanno in comune, il 2D non è davvero un semplice "trampolino di lancio" per arrivare al 3D.

Come ha suggerito David Lively, potresti voler iniziare con un gioco 2D molto semplice come Pong, ma non pensare che dovrai ricreare Final Fantasy, Super Mario Brothers, Zelda, ecc. Prima di poter passare a affrontare il 3D. Anche lavori introduttivi come questo non hanno lo scopo di acquisire molta esperienza 2D, ma piuttosto di rendere tutto il più semplice possibile in modo da poter vedere concetti e metodi di base (rilevamento delle collisioni, inizializzazione della libreria grafica, ecc.) .) che hanno a che fare tanto con il 3D quanto con il 2D, il più rapidamente possibile in modo da poter passare al passaggio successivo. Il passaggio successivo potrebbe essere la creazione di un menu "Nuovo / Salva / Carica / Esci", che renderai ancora una volta il più semplice possibile, quindi continuerai ad aggiungere elementi (dimensione +1 al movimento, modelli,

Mettiamola così, però. Dopo aver appreso la teoria in un corso universitario sulla progettazione di giochi, ci è stato assegnato il compito di realizzare un motore 3D. L'ho fatto in circa una settimana. Disegnava oggetti 3D, proiettava ombre, disegnava trame, faceva mipmapping, rilevava collisioni, permetteva di saltare e apriva un menu se si faceva clic con il tasto destro o si premeva {INVIO} o {ESC}.

La parte che richiede tempo lo rende elegante ... sia che si tratti di perfezionare il motore o creare modelli / trame / animazioni, contenuti di gioco, ecc.


0

Sì. Dato che conosci già il C ++, ora devi solo imparare un'API e una teoria. Il principale ostacolo nell'apprendimento del 3D in particolare è probabilmente la matematica coinvolta. Mentre la matematica 2D è abbastanza facile da capire a un livello minimo, il 3D richiede una comprensione più complessa. Ci sono anche un sacco di cose come gli shader che sono decisamente più rilevanti per il 3D rispetto al 2D. Se hai intenzione di creare un gioco, però, prenderei un rapido percorso 2D solo per avere la sensazione di creare un gioco dall'inizio alla fine (e forse ottenere un sistema di interfaccia grafica funzionante che puoi trasferire!) Prima di passare al 3D.


L'IME, il più grande ostacolo nell'apprendimento di un'API 3D sta arrivando al punto in cui hai effettivamente qualcosa da guardare. Ho trascorso un po 'di tempo a cercare di capire perché non riuscivo a vedere nulla all'inizio dell'inizio; è difficile eseguire il debug di uno schermo vuoto.
StarWeaver,
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.