Quali sono i vantaggi e gli svantaggi dell'utilizzo di un motore di gioco? [chiuso]


28

Come faccio a sapere se utilizzare o meno un motore di gioco? Voglio creare un gioco 2D relativamente complesso per Android. Quali fattori devo valutare per decidere se trovare, installare e apprendere un motore di gioco o semplicemente fare tutto manualmente?


Non sono sicuro che il game design sia il miglior tag, qui; ma il motore è stato inserito nella lista nera. Questa domanda dovrebbe probabilmente essere semplicemente cancellata.
Gnemlock,

Risposte:


25

vantaggi:

  • La maggior parte se non tutta la codifica è fatta per te, quindi tutto ciò di cui devi preoccuparti è contenuto, layout di livello, ecc.

  • In questo senso, la gestione della memoria, il caricamento delle risorse, l'illuminazione (in motori complessi), ecc. Sono stati tutti progettati e testati a fondo (si spera).

  • Come menzionato di seguito, se il motore è multipiattaforma, dovrai fare poco o nessun lavoro per portare il tuo gioco.

svantaggi:

  • Se stai modificando qualcosa, ora devi acquisire familiarità con una nuova base di codice.
  • Se c'è un bug nel motore, a meno che non sia open source non puoi risolverlo.
  • Il motore non è stato progettato specificamente per il tuo gioco, quindi potrebbe essere meno efficiente del codice che scrivi appositamente per il tuo gioco.
  • I motori di gioco in genere non sono gratuiti.
  • Se un gioco è piccolo, il sovraccarico dell'uso di un motore potrebbe non valere la pena di dedicare del tempo a scrivere codice.
  • Se il tuo motore di gioco ha anche editor o strumenti, dovrai costruirli e testarli anche prima di consegnarli agli artisti o affidarti a loro stessi.

Non lasciare che l'elenco degli svantaggi sia più lungo: quando il tempo impiegato per codificare e testare tutti i sistemi di cui hai bisogno è troppo lungo per il tuo ciclo di produzione, o se hai più abilità con l'arte che con il codice, usare un motore di gioco è sicuramente una buona idea.

Un confronto tra i motori di gioco è in lavorazione in questa domanda: Pro e contro di vari motori di gioco 3D


3
Questa è una risposta abbastanza buona nel complesso, ma ho aggrottato la fronte alla prima frase. Suggerirei fortemente di riformulare "La maggior parte se non tutta la codifica è fatta per te" a "La maggior parte della codifica di basso livello è fatta per te"; è fuorviante al punto di irresponsabile perpetuare il mito di "fare un gioco senza programmazione!"
jhocking

Inoltre, il motore potrebbe limitare ciò che puoi fare facilmente - per esempio, quasi molti non supportano il terreno modificabile in stile Minecraft o Fortezza Nana. Il che va bene per i giochi che non ne hanno bisogno, ma buona fortuna per fare un clone di Minecraft con uno.
user253751

15

Nel mio caso, ho trascorso un sacco di tempo (mesi) a tentoni a non fare nulla a causa dei motori di gioco. Di solito ora li evito come la peste, anche se capisco che dovrebbero essere usati con saggezza e con moderazione.

Per me, sarei ossessionato da tutte le possibilità ! Guardando un lungo elenco di funzionalità nel motore X, è come "Wow, potrei fare tutto questo! Il mio gioco potrebbe essere fantastico!" Quindi lo scaricherei, eseguirò le demo e sarei stupito da quelle funzionalità in azione, ecc. Poi creerei un nuovo progetto nel mio IDE e non saprei da dove cominciare. Scriverei un po 'di codice, potrei imparare e basarmi sui progetti demo, ma quelli erano solo demo.

Non sapevo come iniziare dal nulla e fare qualcosa. Non conoscevo il primo passo. Mi è piaciuta l'idea di un motore, mi ha impressionato e mi ha motivato a fare qualcosa, ma la mia conoscenza dello sviluppo reale era così limitata che anche dopo aver saputo aggiungere il motore al percorso di costruzione e forse scrivere alcune righe per iniziare il motore e poi spegnerlo di nuovo, oltre a ciò non ho mai fatto nulla di utile.

Sono molto più un tipo di persona a piccoli passi. Preferirei creare il mio gioco un passo alla volta, rifattorizzare funzioni utili e collezionarle in una libreria che un giorno potrei considerare un "motore". Quindi, per ora, evito l'hype del motore e mi limito a seguire le cose di basso livello.

E i motori hanno il loro posto. Se trovi un motore e pensi a te stesso, "Questo è esattamente quello che vorrei scrivere! Hanno già fatto il lavoro per me, non devo reinventare la ruota e so esattamente come agganciarlo al gioco che ho già avviato [o almeno completamente pianificato e sono pronto per iniziare] ", probabilmente è una buona scelta. Saprai esattamente come usarlo e come scrivere il tuo codice per utilizzare il motore per creare qualcosa di utile. Ma se ottieni un motore solo perché ha tutto tranne il lavello della cucina e pensi di essere in piedi sulle spalle dei giganti, ti sbagli molto. Hai un gigante in piedi di fronte a te e devi arrampicarti sulle sue spalle.

Quindi l'enorme svantaggio per me: non lasciarti coinvolgere da tutte le cose che potresti fare. Qualunque sia il motore che potresti scegliere, avrà un sacco di potenziale. Ma se non sai come sfruttare effettivamente il potenziale, se non ti semplifica la vita o ti aiuta a fare il tuo lavoro, perché lo stai usando?


4

Il più grande svantaggio di un motore di gioco è che devi impararlo. Se non conosci la programmazione in generale, potrebbe essere ancora più veloce che imparare a scrivere codice per fare tutto ciò che un motore gestisce per te, ma se hai esperienza non ti costa tempo per sederti giù e inizia a scrivere codice, ma una buona quantità di tempo iniziale per imparare a orientarti in un motore sconosciuto.

La cosa più importante da cercare è il supporto, perché i motori di gioco non sono perfetti e non leggono la tua mente, e a un certo punto rimarrai bloccato su QUALCOSA. Così:

  • C'è documentazione?
  • La documentazione è davvero valida?
  • C'è supporto tecnico (generalmente no, a meno che tu non stia pagando)? Qual è il tempo di consegna?
  • Esistono forum della community in cui è possibile pubblicare domande e ottenere risposte reali?
  • Esistono tutorial che mostrano come iniziare a utilizzare il motore? Il codice sorgente di esempio è incluso? Quanto ti trovi utile per aggiornarti?

2
+1 per mettere la documentazione in primo piano ... ecco dove falliscono molti motori di gioco open source
LearnCocos2D

3

Come qualcuno che ha molta esperienza nello sviluppo di software e che ha provato a sviluppare un gioco da zero solo di recente, ecco i miei 2 centesimi.

Le risposte finora hanno fornito lunghi elenchi di pro e contro. Fornirò quale per me è il motivo più importante per NON utilizzare un motore di gioco. Mentre mi assumevo il compito di imparare a scrivere un gioco puramente per sfida e ricompensa, ho deciso di farlo da zero senza motore, solo OpenGL e SDL, perché volevo impararetutto al di sopra di quel livello di astrazione. Non mi sono mai pentito di quella decisione. Il mio gioco è una bella versione a scorrimento di asteroidi 2D, semplice ma fluida. Non sto cercando di competere con giochi di gran lunga superiori, ma distribuisco il mio gioco e alla gente è piaciuto giocarci. Adotterò lo stesso approccio per rendere il gioco multiplayer. Questa è una grande sfida e l'uso delle librerie potrebbe renderlo più semplice, ma il mio obiettivo non è quello di renderlo semplice. Il mio obiettivo è imparare, e per me è un'attività part-time, quindi non ho molto tempo e i progressi sono lenti. Ma ho le mie ragioni per questo approccio. Chiamalo "apprendimento superiore".

Quindi, rispondi alla tua domanda, vuoi imparare come fare le cose che invece il motore di gioco fa per te per i benefici che questo apprendimento potrebbe portare? In tal caso, non utilizzare un motore di gioco.


2

Devi dettagliare cosa intendi per "complesso". Un buon motore di gioco si occupa di tutto quanto segue:

  • Rendering su un framerate stabile
  • Gestione degli input
  • Interfaccia utente
  • Suoni / musica
  • Gestione delle risorse (immagini, suoni, file di dati)
  • Salvataggio / caricamento del gioco
  • Fisica (2d o 3d)

Pensa a te stesso, so come codificare ognuno di questi? Quanto tempo impiegherò a programmare ciascuno di essi e quanto tempo impiegherò per imparare a far fare a ciascuno di questi motori un motore?


1

Il più grande vantaggio: molte cose sono fatte per te. Non devi continuare a reinventare la ruota.

Un altro vantaggio: il motore di gioco potrebbe anche essere multipiattaforma (Unity).

Svantaggi? Controllo? Il motore si occupa di alcune cose per te (come il rendering), quindi se ha bug o problemi di prestazioni, non puoi semplicemente risolverlo da solo.

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.