2013-10-19 16 views
7

Sono mesi che collaudo con AndEngine, ma non ho ancora prodotto alcun prototipo di gioco. Ci sono alcune ragioni per cui voglio passare a libgdx:Passaggio da AndEngine a libgdx - cosa sapere?

    - AndEngine sta usando INI involucro di libgdx per Box2d, ma gli aggiornamenti raggiungere AndEngine lentamente
    - Sono principalmente mira Android, ma avendo l'opzione per un facile porting verso altre piattaforme potrebbero venire a portata di mano
    - Documentazione! AndEngine non ha assolutamente documentazione, tranne che per gli esempi.
    - Mi piacerebbe ottenere le migliori prestazioni possibili e sembra più facile su libgdx.

Poche cose sono preoccupato per libgdx è che avrò bisogno di scrivere codice di livello inferiore e che lo sviluppo per il gioco completo richiederà più tempo? Ma poi di nuovo, a volte ho perso qualche giorno per capire come funzionano alcune parti di AndEngine, quindi è possibile che io scriva anche codice più velocemente con libgdx dato che è completamente documentato?

Cosa devo sapere su libgdx prima di passare? Qual è la principale differenza quando si codifica il gioco e si progetta il codice?

risposta

8

È necessario essere consapevoli delle seguenti cose:

  1. E 'più performante, thats un fatto e ampiamente conosciuto. Libgdx utilizza il codice nativo per le attività più difficili.
  2. Lo sviluppo su di esso è molto veloce, non capisco perché (qualcuno) la gente lo dice prende molte linee per fare semplici compiti, questo semplicemente non è vero. La libreria è di altissimo livello con la possibilità di programmare come livello minimo come necessario. Soprattutto la possibilità di testare sul desktop immediatamente, invece di aspettare che l'app venga distribuita su un dispositivo Android o peggio ... sull'emulatore. Ciò rende lo sviluppo più veloce.
  3. La libreria dà molta libertà, puoi fare le cose come vuoi tu . Ad esempio, ho creato un modello che utilizzo per ogni nuovo gioco , che rende le cose ancora più veloci per me.
  4. Non è necessario conoscere opengl, androidsdk o lwjgl, in realtà basta per conoscere le astrazioni della libreria. Ma puoi fare il codice specifico della piattaforma se necessario. E questo è ben documentato.
  5. complementare a P.T. point, libgdx ha un wrapper per fisica box2d e fisica bullet (3d) che sono piuttosto facili da usare (eccetto bullet: S nah kidding). E direi che la nuova 3d api è quasi completa, non cambierà molto per la prossima versione stabile, ho persino letto su irc che è praticamente fatto. Lo uso e posso dirvi che è molto semplice da usare .

In conclusione, Libgdx è una libreria molto veloce su cui svilupparsi. È molto performante e completo. Ha una comunità buona e d'aiuto, oltre a una grande documentazione. Ti consiglio di cambiare :)

3

Se si riscontrano problemi nel terminare i prototipi, mi concentrerei sull'usabilità dei propri strumenti (ad esempio sulle prestazioni) per la produzione di prototipi. Quindi, la velocità degli aggiornamenti di Box2d non dovrebbe essere importante (è abbastanza buono). La possibilità di eseguire lo sviluppo sul desktop dovrebbe essere importante (il tempo di compilazione/test è molto più veloce) senza un dispositivo Android nel loop. La documentazione e gli esempi dovrebbero essere molto importanti. Le alte prestazioni non contano su un prototipo mai completato. Preoccupati per questo più tardi. (L'obiettivo n. 1 dovrebbe completare qualcosa.)

Libgdx dispone di un ampio set di librerie e wrapper, principalmente attorno a API grafiche (ad esempio, Scene2d, o SpriteBatch o l'infrastruttura TiledMap). C'è un'API 3D, ma si sta ancora muovendo abbastanza velocemente, e non è ancora un luogo stabile su cui svilupparsi. Voglio dire che non ha molte astrazioni "giocose" (anche se ce ne sono alcune), ma in realtà non ho abbastanza esperienza con altre librerie di livello superiore da confrontare.

Invece di scambiare le scorciatoie e le insidie ​​dell'attrezzo in uso per le imperfezioni e le insidie ​​di un nuovo strumento, probabilmente è meglio attenersi allo strumento che conosci.

+0

Non sono d'accordo con il basso livello di libGDX. Ad esempio, ha un sacco di cose di alto livello come i caricatori di TiledMap. Inoltre, non è necessario sapere nulla su OpenGL per lavorare con libGDX ... – noone

+0

Forse non ero chiaro in questione. Quando ho detto "testare con AndEngine per mesi" non volevo dire che stavo lavorando con AndEngine per così tanto tempo. Quindi, in nessun modo direi che lo so. Ecco perché sento che è il momento giusto per cambiare. "meglio attenersi allo strumento che conosci" non si applica se non conosco lo strumento. A differenza di prima, ora ho deciso di creare un gioco completo (non solo un prototipo), indipendentemente da ciò che è necessario o da quanto risulta negativo. Il punto sta imparando durante il processo. Ecco perché mi sento come se avessi bisogno di scegliere il giusto ambiente sin dall'inizio. – dario111cro

+0

@noone Hai ragione su OpenGL e Libgdx. Solo perché lo uso in quel modo non significa che è tutto ciò che fa (e il suo è diventato molto più ampio). Voglio dire che non fornisce astrazioni "giocose" (sono comunque grafiche e orientate al suono), ma forse sto dando ad altri toolkit troppo credito lì. Cambierò la mia risposta un po ' Grazie. –

4

Entrambi P.T. e Lestat fa ottimi punti nelle loro risposte. Ma secondo me, c'è solo una cosa che devi sapere su libgdx, che è semplicemente che libgdx è un toolkit non un motore o un framework. Questo fatto significa che non sei bloccato in un modo particolare di fare le cose. Se vuoi un micro-framework, scrivine uno con libgdx. Se vuoi scrivere "Unity 2D", scrivilo con libgdx. Se vuoi mettere tutto in un file, lanciando principi orientati agli oggetti al vento, puoi farlo con libgdx.

  • È utile che sia ben documentato.
  • Aiuta a essere veloce.
  • È utile che abbia una community forte e competente.
  • È utile che il codice sorgente sia disponibile ed è ben scritto.
  • È utile che venga fornito con esempi.
  • È utile che si tratti di un livello di astrazione della piattaforma, pertanto lo stesso codice verrà eseguito su più piattaforme.
  • Aiuta a essere attivamente sviluppato.

Ma fondamentalmente si tratta di un kit di strumenti, anche se eccellente. Quello che scegli di fare con quel toolkit dipende da te.