Librerie / frame / motori di gioco 2D per Android [chiuso]


89

Sono disponibili cose del genere per aiutarmi a costruire il mio gioco Android?

Risposte:


63

EDIT: PSA: tieni presente che questa risposta è stata scritta nel 2012 e 3 anni dopo, esistono molti più motori e molti di questi sono realizzati esclusivamente per dispositivi mobili. Non dare per scontata questa risposta e cercare su Google motori più recenti.


Porto Irrlicht su Android e lo utilizzo per giochi 2D. Non è la soluzione migliore ma ho ottime prestazioni. Ho provato molti Java Frameworks ma Garbage Collector può ritardare i tuoi giochi durante 0,2 secondi sul telefono G1 ... Quindi il framework dovrebbe fare l'allocazione con molta attenzione.

Framework C ++ commerciali:

  • unity3D : molto buono (disponibile su Android, iOS, Web, Windows, OS X) [Gioco: Rocket Bunnies]
  • Unreal Engine (commerciale): il miglior motore ma non per i principianti [Gioco: Dungeon Defenders]

Framework C ++ open source:

  • SDL : probabilmente la migliore libreria C per sviluppatori di giochi, open source e multipiattaforma (cellulare incluso)
  • Ogre3D : il miglior motore 3d open source ma è un framework di grandi dimensioni
  • Irrlicht : buone prestazioni, quadro leggero [Gioco: Moblox]
  • Linderdaum Engine : open source per Windows e Android
  • Cocos2d-x : multipiattaforma open source

Framework Open Source Java:

  • LibGDX : Open Source, molto popolare, supporta più piattaforme, supporto per Tiled, Box2D e altri, buona documentazione
  • AndEngine (Open Source): buone prestazioni. Per la documentazione, guarda esempi e leggi il codice sorgente; ma è la libreria gratuita per iniziare un progetto di gioco [Gioco: Drop Block]
  • cocos2d per Android: problema di Garbage Collector
  • rokon : buone prestazioni e progettato per dispositivi mobili ma il progetto sembra morto.

Motore fisico:

  • box2d (OpenSource): facile e veloce
  • jbox2d (OpenSource): così lento su Java che ho creato un wrapper JNI con SWIG per usare box2d nativo (AndEngine fa lo stesso)
  • chipmunk (OpenSource): veloce ma preferisco box2d
  • bullet (OpenSource): eccellente motore 3D

Attenzione, con Froyo e JIT, le librerie Java hanno prestazioni molto migliori. Ma i problemi di Garbage Collector sono sempre validi. Con Gingerbread, il Garbage Collector è continuo, quindi nessun problema.


1
Vorrei anche aggiungere cocos2d-x, è su licenza MIT e funziona su Android, iOS e Windows Phone. Credo che questo sia diverso da quanto menzionato sopra poiché questo è specificamente in C ++ non Java.
Jamornh,

AndEngine prende in prestito il wrapper box2d da libgdx.
Matsemann,

6
Unity3d non è C ++. Supporta C #, un dialetto Javascript e boo
lhk il

Puoi sicuramente farlo tramite nativo se lo desideri. I ragazzi che hanno realizzato Tiny Words hanno fatto jmoses.co/2014/10/23/…
John Moses,

1
SDL non è Java; è C. Il Java che potresti aver provato è un wrapper / bind che chiama nel codice C. Nessuna funzionalità del motore si verifica in Java.
Slipp D. Thompson,

24

Sono sorpreso che nessuno abbia menzionato libgdx. http://code.google.com/p/libgdx/


libgdx e AndEngine sono i migliori per 2d, qui puoi trovare qualche altro link
michael

Tutorial del forum @michael AndEngine appiccicoso: basta usare una forchetta di una forchetta di AndEngine ... un sacco di problemi, bug. Non consiglio di impararlo da lì.
matheszabi,

11

AndEngine è piuttosto nuovo, ma è open source e sembra promettente.

Descrizione di sé:

Motore di gioco Android 2D OpenGL gratuito. AndEngine è sviluppato da Nicolas Gramlich.


1
Ho fatto un po 'di sperimentazione in questo, proveniente da Cocos2d su iPhone, e finora sembra abbastanza carino per i giochi 2D basati su sprite. Il progetto sembra attivo e ha attorno una comunità di forum decente.
Matt Guest,

Informazioni su AndEngine ... Ho iniziato a creare un gioco piuttosto semplice e dopo un po 'ho iniziato a trovare recensioni negative su AndEngine, in particolare le sue prestazioni con molti sprite. Quindi, ho fatto un test e ho aggiunto 20 sprite al mio gioco mentre ero ancora agli inizi. Ho fatto tutto "dal libro" e ho quasi ucciso il mio desiderio di HTC Z. Abbastanza deluso e sono passato a LibGDX.

@AscensionSystems Non so cosa hai fatto lì, ma so che lo hai fatto male. Con un Desire Z puoi avere facilmente centinaia di Sprite in movimento sullo schermo. Basta eseguire i benchmark negli esempi e vedrai come farlo nel modo giusto.
Nicolas Gramlich,

Grazie Nicolas, apprezzo il fatto che tu stia "attaccando" il tuo motore, ma francamente non stavo facendo nulla di male. Ha qualcosa a che fare con Android e un bug con le chiamate di VBO che attiva anche il GC. Potrei far funzionare bene il motore disabilitando i VBO, ma ciò ha anche reso il mio telefono così caldo che si spegnerebbe dopo circa 5 minuti di gioco. Ho avuto lo stesso problema con libGDX, quindi ho scritto il mio motore in C ++. Inoltre non puoi ottenere "centinaia" sullo schermo usando l'app di esempio. Potrei ottenere circa 90 128x128, 2 folletti fisici animati "frame" prima che si interrompano con il tuo motore.

(continua) ... nel mio motore riesco a ottenere 170, 512x512, 16 folletti fisici animati "frame" sullo schermo prima di vedere il mio framerate persino iniziare a scendere sotto i 60 fps.

8

Penso che potresti usare il gioco Replica Island di Chris Pruett come esempio di un gioco 2d. Penso che dovrebbe essere una base per altri giochi, come è spiegato in questo video dall'I / O di Google 2010. Puoi guardare il gioco qui .


Sì, questo è un buon video, sicuramente vale la pena guardarlo soprattutto quando parla di efficienza.
Spidey,

7

Unity3D (che può essere tecnicamente utilizzato per creare giochi 2D) "presto" per Android: http://unity3d.com/


Sì, sono totalmente d'accordo. In secondo luogo, se si paga per le licenze Unity3D, è possibile pubblicare lo stesso lavoro per più piattaforme. Quindi inizi con la licenza WINDOWS / MAC GRATUITA. Impara il programma. Quindi aggiorna la licenza a qualsiasi piattaforma che ritieni più adatta per prima. Attualmente Android, tuttavia, è solo l'edizione PRO, il che significa che è necessario Unity3D PRO + Android PRO = $ 3000 ...
BerggreenDK,

Dopo aver realizzato 10-15 giochi 2D usando Cocos2D per iOS, ne ho realizzato uno usando Unity 4.6 ed è stata un'esperienza terribile, lenta e buggy - per iOS - non posso dire nulla sulle prestazioni per altre piattaforme .. Mentre 4.6 è migliorato molto lavorando con roba 2D da prima, non è affatto vicino a un motore di rendering 2D dedicato come Cocos2D o probabilmente la maggior parte degli altri. Le prestazioni sono orribili e stanno ancora combattendo con il supporto di iOS a 64 bit. Detto questo, ovviamente la forza multipiattaforma è la più grande ... forza.
Jonny,


4

Rokon sembra abbastanza buono, non l'ho provato da solo ma sembra piuttosto attivo.



4

Al momento è in corso una porta Android di SDL e SDL è probabilmente il miglior framework grafico 2D in circolazione. È stato progettato da uno dei protagonisti di Blizzard, quindi sai che sono state fatte alcune vere competenze nella costruzione di giochi.


3

Motore di gioco SIO2. Ho appena rilasciato una nuova versione con pieno supporto Android. Puoi creare giochi 2D e 3D utilizzandolo e portandolo tra piattaforme diverse. http://sio2interactive.com



2

Sto lavorando su un motore di gioco 2d open source chiamato YoghurtGum che dovrebbe essere sia per Windows Mobile che per Android. Tuttavia, il porting di tutto su Android C ++ si è rivelato estremamente difficile.

Questa è la risposta più inutile di sempre, lo so bene.


2

Se desideri sviluppare in AIR per Android, puoi utilizzare Flash. Flash stesso non ha caratteristiche specifiche del gioco, in realtà, ma grazie al successo di Flash sul web ci sono moltissime librerie di terze parti appositamente progettate per i giochi.

Alcuni dei più famosi framework di terze parti per giochi in Flash includono Flixel (http://flixel.org/) e PushButtonEngine (http://pushbuttonengine.com/), che sono completamente progettati per lo sviluppo di giochi. Flash ha anche una versione di Box2D (motore fisico menzionato sopra - http://box2dflash.sourceforge.net/ ) e ci sono varie librerie 3D, come Papervision (http://code.google.com/p/papervision3d/) se vuoi percorrere quella strada in futuro.

Lo svantaggio principale dello sviluppo in AIR, tuttavia, è che sono abbastanza sicuro che dovrai scegliere come target Froyo 2.2 o versioni successive, quindi i telefoni più vecchi verranno lasciati fuori.


Oltre ad AndEngine, ho giocato con le versioni beta di AIR per Android e sono molto carine, anche se un po 'lente. Penso che funzionerà bene per giochi di strategia o giochi d'azione senza troppi elementi. Ho lavorato con la beta su 2.1, quindi la versione finale su 2.2 potrebbe essere significativamente veloce, non ne sono ancora sicuro. Sicuramente qualcosa da guardare.
Matt Guest,

1

Cocos2D-x è una porta di Cocos2D per iPhone scritta in C ++ per Android NDK e viene attivamente sviluppata per raggiungere la parità di funzionalità con la versione di iPhone. Non avrà problemi di garbage collection e otterrai una porta relativamente facile per iOS, Win32 e probabilmente OSX nel prossimo futuro.


0

PlayN è un framework di gioco 2D multipiattaforma che si rivolge ad Android oltre a HTML5, Flash e JVM. È un po 'nuovo, ma è stato usato per scrivere l'implementazione HTML5 di Angry Birds e ha una comunità ragionevolmente attiva.

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.