Cosa dovrebbe fare un motore di gioco? [chiuso]


20

Vorrei migliorare le mie capacità / provare qualcosa di nuovo e vorrei iniziare con il 3D. Ho letto Avvio della programmazione in 3D con C ++ ma ho domande sui motori:

  • Cosa dovrebbe fare il motore? So che è un livello di astrazione sopra l'API 3D (ovvero OpenGL o DirectX) ma cosa dovrebbe fare esattamente?

Per le raccomandazioni del libro, questa domanda dovrebbe aiutare: gamedev.stackexchange.com/questions/455/...
Tetrade

Risposte:


27

Hai ragione nel dire che un motore di gioco si sta allontanando dalle API grafiche di basso livello, ma un motore di gioco completo fa molto di più.

I motori di gioco hanno lo scopo di rendere tutto più semplice per quanto riguarda lo sviluppo del gioco. Ognuno di essi ha le proprie caratteristiche uniche, ma generalmente forniscono semplici livelli di astrazione per grafica, audio, input, gestione delle scene, rilevamento delle collisioni, matematica e utilità generali. Alcuni forniscono wrapper e plug-in per le API di fisica e alcuni hanno anche un supporto AI (principalmente limitato a FSM, pathfinding e - l'attuale tendenza - alberi di comportamento). Molti di loro supportano e si vantano della funzionalità multipiattaforma.

Lo scopo di un motore di gioco è quello di rendere più semplice per l'utente la creazione di un gioco, senza dover affrontare i piccoli fastidi nella creazione di un gioco da zero o dover installare un intero gruppo di librerie e scrivere i propri wrapper per adattarli al tuo gioco.

Ci sono molti motori là fuori, ma attenzione alla differenza tra un motore grafico e un motore di gioco (per esempio, Unity sarebbe un motore di gioco, mentre Ogre sarebbe un motore grafico).

Ho due libri sull'argomento, ma offrono una buona panoramica sull'argomento:

  • Architettura del motore di gioco 3D di David H Eberly

  • Codifica del gioco completata da Mike McShaffry

Non sono troppo approfonditi in quanto avresti bisogno di diversi libri su ciascun componente per ottenere la profondità di conoscenza di cui avresti bisogno per creare un motore di gioco completo e professionale, ma spiegano molto bene i concetti, penso.

Se stai iniziando lo sviluppo del gioco, non creare un motore. Ti rimando alla seguente pagina: http://geometrian.com/programming/tutorials/write-games-not-engines/

I motori sono difficili da ottenere. Se scrivi un sacco di giochi, scoprirai di avere un sacco di codice riutilizzabile dopo un po 'che puoi usare per creare il tuo motore personale per aiutarti. E avere un sacco di giochi (completi) sotto la cintura è molto più impressionante di un singolo motore.

Spero possa aiutare.

raggio


1
+1 per l'articolo del blog. Dice esattamente cosa direi in merito.
Tetrad

5
Sì, nessuno dovrebbe creare un motore di gioco prima di aver creato un gioco. Come puoi sapere che il tuo codice è riutilizzabile se non sai ancora che è utilizzabile?
Kylotan,

@Kylotan Mi rendo conto che è molto tardi, ma vorrei solo ringraziarti per quel commento dato che lo stavo costantemente citando ad altri :)
Ray Dey,

@RayDey il link per "scrivere giochi non motori" è morto, FYI. Non vedevo l'ora di leggerlo :(
DrewJordan,

5

Aggiungendo alla risposta di Ray: i motori (gioco, grafica, audio, ecc ...) non solo rendono più semplice l'interazione con le API sottostanti, ma implementano funzionalità specifiche del gioco, ad esempio: modello di ombreggiatura, suono 3D.

In particolare per i motori di gioco: gestiscono oggetti di gioco, risorse (memoria, thread, tutti gli altri motori) e comunicazione tra moduli. Offrono al gioco struttura, scalabilità e flessibilità, che sono essenziali per qualsiasi progetto non banale.


+1 per la struttura, la scalabilità e il punto di flessibilità e ho dimenticato di aggiungere la gestione della memoria
Ray Dey

1

Ho scritto un tutorial dettagliato su cosa sia un motore di gioco, in particolare nel contesto delle piattaforme iPhone e Android. Ho incluso descrizioni dettagliate con esempi delle varie parti di un motore di gioco: UI, Grafica, Audio, Fisica, Effetti particellari. Il tutorial è disponibile qui: che cos'è un motore di gioco? . Spero sia utile.


0

Ogni motore di gioco ha un'idea leggermente diversa di cosa dovrebbe fare un motore di gioco.

Ma poiché ci sono già troppi motori di gioco, ti consiglio vivamente di creare un GIOCO non un MOTORE.

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.