Motore di gioco multipiattaforma 2D per Android e iOS? [chiuso]


262

Ho lavorato per un po 'di tempo con Unity3d e ho scoperto che la sua parte 2D con OnGUI () o GUITextures è troppo goffa. Inoltre, anche un gioco più piccolo fatto su Unity3d ha almeno 10 MB di download, il che è troppo per un gioco 2D.

Quindi, attualmente sto cercando un motore per il 2D. Ho provato Cocos2D ma è solo iOS e non vorrei riscrivere tutto in un'altra lingua per Android (quindi, ad esempio, la porta Java di Cocos2d per Android non è un'opzione). Invece, voglio scrivere il codice una volta e con meno fatica distribuirlo su iOS, Android e possibilmente su Windows Phone 7. Ho sia Mac che Windows.

Giusto per essere più dettagliati, ecco i miei requisiti per il motore:

  • deve essere multipiattaforma
  • deve essere efficiente
  • dovrebbe essere C ++, Java, C # o Objective C poiché mi sento a mio agio con loro e NON Flash, Javascript, HTML5 poiché non sono uno sviluppatore web
  • deve avere una grande community, tutorial, librerie aggiuntive che coprono la maggior parte delle cose che avresti quando svilupperai direttamente su iOS o Android (fatturazione in-app, facebook ecc.)
  • il pacchetto consegnato finale non deve essere troppo grande
  • il motore può essere gratuito, ma non mi dispiacerebbe pagare un prezzo ragionevole

Ho trovato i seguenti motori:

  • Marmalade (e motore IwGame al di sopra di esso) - C ++, ha trovato recensioni complessivamente molto positive su Marmalade ma non sono sicuro di IwGame. EDIT (marzo 2013) : sembra che l'SDK di Marmalade ora includa Cocos2Dx e alcuni IDE integrati che lo rendono molto migliore (e costa $ 150 all'anno per gli sviluppatori indipendenti che vanno bene per me).
  • Corona SDK - Lua (dubbia efficienza), ha anche bisogno di una connessione Internet per compilare il codice
  • Cocos2d-x - C ++, ha ricevuto molte recensioni dagli sviluppatori, per lo più positive e molti pensano che sia meglio per il 2D
  • Codice particella - Java + Eclipse, non sono state trovate recensioni o commenti
  • Moai - Lua, non ci sono recensioni / opinioni su di esso
  • Motore di scimmia - sembra avere troppo poche funzionalità
  • Haxenme - è Flash, non l'ho mai usato e non voglio
  • usa Unity3d ma con pacchetti 2D come 2D Toolkit
  • porte di SDL per Android (anche qui ) e iOS - non sembra avere molto supporto o sviluppo attuale (?)
  • GLBasic - Linguaggio di base, non mi piace
  • playN - sembra essere all'inizio dello sviluppo (?)
  • Gamvas - HTML5, non mi sembra un motore maturo
  • Ignifuga - Python, inoltre, non sembra maturo
  • ORX - non sono sicuro che sia ancora sviluppato (?)
  • Costruisci 2 - ricorda GameMaker, potrebbe andare bene per prototipi rapidi ma sicuramente non per giochi di livello industriale
  • XNA e quindi il porting del gioco usando ExEn (avrebbe bisogno di Mono Touch per il port su iOS e Mono per Android per il port su Android) - C #, ed è probabilmente più pensato per le persone che provengono da prodotti Microsoft come xBox (vengo da Android). Inoltre, quegli strumenti Mono costano $ 800 in totale per i piccoli sviluppatori
  • Impatto - JavaScript, utilizza HTML5. Non sono molto interessato a JavaScript (ad esempio C # preferito su Unity3d), inoltre non sono sicuro dell'efficienza poiché viene eseguito nel browser (?)
  • GameMaker - proprio linguaggio di scripting GML e in realtà lo ricordo come uno strumento per i non programmatori. È diventato un vero motore, intendo per uno sviluppo serio?
  • AppGameKit - C ++, ma sembra essere ancora piuttosto nuovo. Non ho trovato recensioni su di esso
  • usa Cocos2D e Objective C per sviluppare solo per iOS e poi creane un APK per Android usando Stella SDK . Qualcuno l'ha fatto? Sono abbastanza sicuro che ci saranno delle limitazioni e che ne pensi della fatturazione in-app di Google, dell'integrazione di AdMob e Facebook su Android?
  • Moscrif - JavaScript, sembra che sia più per gli ex sviluppatori web
  • Starling - Flash 11, non mi piace molto Flash
  • ND2D - non ancora 1.0, ha molte funzionalità?

Quindi, sarei felice se potessi commentare le tue esperienze con i motori e suggerire quale nella lista (o qualsiasi altra cosa che ho perso) sia la migliore per i requisiti descritti. Potrei anche sbagliarmi con le mie prime impressioni su alcuni motori.

Attualmente sto pensando a Marmalade + IwGame come l'opzione migliore, ma dato che non ho molte informazioni su Cocos2d-x e il codice Particle, non ne sono davvero sicuro.

Grazie!

EDIT (giugno 2013): Finora ho realizzato 2 giochi 2D multipiattaforma e ho usato Unity3D con plug-in 2D Toolkit per entrambi. Per il gioco con una semplice GUI ho usato un semplice sistema di GUI self-made basato su Unity. Per uno più complesso (ad es. Dove gli elementi della GUI possono sovrapporsi) ho usato il plugin NGUI. Recentemente 2D Toolkit ha aggiunto alcune altre classi per la GUI, il che è molto utile poiché si dovevano usare 2 sistemi diversi per atlanti di trama quando si combina NGUI con 2D Toolkit. Lo proverò sicuramente nel prossimo gioco 2D. Il motivo principale per cui ho scelto Unity3D per i giochi 2D era che ero già profondamente interessato a Unity3D sia in termini di esperienza che di frammenti di codice accumulati per il riutilizzo. Inoltre, ho acquistato Unity3D pro (con Android Pro e iOS Pro) per i giochi 3D ed era logico pagare solo $ 60 aggiuntivi per 2D Toolkit per ottenere anche giochi 2D. Finora non ho Mi pento della mia decisione, sembra essere stato ottimale per il mio caso. L'unica cosa che mi ha dato mal di testa è stata l'aggiunta di funzionalità social con i plug-in di Prime31 (plug-in social Android e iOS) ma suppongo che i loro bug non siano colpa di Prime31 ma di Twitter / Facebook, quindi probabilmente vedrei gli stessi bug su qualsiasi altro motore o plugin.

EDIT (gennaio 2014) : Immagino che con Unity 4.3 la risposta alla mia domanda sia abbastanza ovvia ora: il nuovo sistema di Sprite di Unity e forse anche 2DToolkit battono totalmente qualsiasi altra cosa, specialmente per le persone che (come me) sono state su Unity per un po ' e ho acquistato la versione Pro con componenti aggiuntivi.


e quale hai scelto? che dire di libgdx o andEngine, non ne hai nemmeno parlato di loro che pensavo fossero i più
populari

1
@kosnkov - Ha specificato i requisiti che includono una scrittura uno distribuire due volte (iOS e Android con opzione di Windows Phone un plus). andEngine è solo Android e libgdx non ha come target iOS (né Windows Phone), quindi non si qualificano.
scrivere il

1
Ho finito per fare un gioco 3d con Unity3D e plugin NGUI per la GUI. Se dovessi mai fare un gioco in 2D, suppongo che prenderò semplicemente Cocos2d-x e Marmelade
iseeall

1
a giudicare dal sito web, sono abbastanza sicuro che libgdx supporti iOS ora. Ancora nessun Windows Phone però.
Ehtesh Choudhury,

1
come mai domande estremamente utili come questa sono sempre chiuse come "fuori tema"? forse SO dovrebbe creare una piattaforma separata per "informazioni" e opinioni
Bogdan Alexandru,

Risposte:


33

Ho lavorato con Marmaladee l'ho trovato soddisfacente. Anche se non è gratuito e la comunità degli sviluppatori non è abbastanza grande, ma puoi comunque gestire la maggior parte dell'attività usando i suoi tutorial. (Scriverò i miei tutorial anche una volta che avrò qualche volta).
IwGameè un buon motore, sviluppato da uno degli utenti di Marmalade. È buono per un gioco di base, ma se stai cercando alcune cose di gioco avanzate, puoi anche usarlo Cocos2D-xcon Marmalade. Non ho mai usato Cocos2D-x, ma c'è un'estensione su Marmalade Github.
Un'altra cosa positiva di Marmalade è EDK (Extension Development Kit)che consente di creare un'estensione per qualsiasi funzionalità di cui hai bisogno, disponibile nel codice nativo, ma non in Marmalade. IO'

Modifica :
Marmalade ora ha il suo strumento RAD (Rapid Application Development) solo per lo sviluppo 2D, chiamato come Marmalade Quick. Sebbene la codifica sarà in Lua non in C ++, ma poiché è costruita su C ++ Marmalade, puoi facilmente includere una libreria C ++ e tutte le altre estensioni EDK. Anche le estensioni Cocos-2Dxe Box2Dsono incluse in Quick. Di recente hanno lanciato la versione di rilascio (è stata in beta per 3-4 mesi). Penso che stiamo davvero cercando solo lo sviluppo 2D, dovresti provarlo.

Aggiornamento:
Unity3D ha recentemente lanciato il supporto per i giochi 2D, che sembra migliore di qualsiasi altro motore di gioco 2D, grazie alla sua GUI ed Editor. Il supporto per la fisica, lo sprite, ecc. È integrato. Puoi dargli un'occhiata.

L'aggiornamento 2
Marmalade interromperà presto l'SDK in favore della produzione di giochi in-house. Quindi non sarà una decisione saggia fare affidamento su questo.


Puoi anche leggere questa domanda SO - stackoverflow.com/questions/12059539/cocos2d-or-iwgame
noob

Grazie, sembra che la marmellata d'arance con Cocos2D-x sopra possa davvero essere l'opzione migliore per il mio caso.
iseeall,

2
Dimenticare [LibGDX] [1] quando viene sollevato questo tipo di domanda è imperdonabile !!! ;) [1]: libgdx.badlogicgames.com
Ewoks

Controlla gli aggiornamenti :-)
noob

Unreal Engine 4.3.0 può anche essere un contendente. È C ++ con l'editor e tutto il resto.
ervinbosenbacher,

43

LibGDX è uno dei migliori motori che abbia mai usato, funziona su quasi tutte le piattaforme e funziona due volte più velocemente di cocos2d-x nella maggior parte dei test che ho fatto. Puoi usare qualsiasi linguaggio JVM che ti piace. Ecco un tutorial di 13 parti in Java, ed ecco un sacco usando jruby. C'è un buon strumento di animazione scheletrica che funziona con esso qui , e ha anche supportato le mappe piastrellate TMX. Il framework dell'interfaccia utente è fantastico e ha un grafico della scena e un'API in stile attore simile a scene, sprite e azioni cocos2d. La community è fantastica, gli aggiornamenti sono frequenti e la documentazione è buona. Non lasciare che la parte java ti spaventi, è veloce e puoi usare jruby o scala o qualunque cosa ti piaccia. Lo consiglio vivamente per lavori 2D o 3D, supporta entrambi.


5
Ora LibGDX funziona anche con iOS. Ma costa ~ 400 $ per la licenza Monotouch :)
JavaRunner,

5
A partire dalla versione 0.9.9 utilizza RoboVM per iOS che è gratuito
James McCracken,

1
Ho lavorato ampiamente con LibGDX e cocos2dx. E direi che cocos2dx è molto meglio (sviluppo più veloce + prestazioni + strumenti). Se stai andando solo su Android, va bene usare LibGDX in altro modo! Il supporto multipiattaforma di LibGDX è pessimo, il che dipende da RoboVM o Xamarin. Xamarin e RoboVM rendono la compilazione e l'esecuzione entrambe molto lente su iOS. Alla fine diventa molto difficile da mantenere.
user18853

13

Citi Haxe / NME ma sembra che non ti piaccia istintivamente. Tuttavia, la mia esperienza con esso è stata molto positiva. Certo, l'API è una reimplementazione dell'API Flash, ma non sei limitato al targeting Flash, puoi anche compilare in HTML5 o app native Windows, Mac, iOS e Android. Haxe è un linguaggio piacevole e moderno simile a Java o C #.

Se sei interessato, ho scritto un po 'della mia esperienza con Haxe / NME: link


Grazie, proprio dal tuo articolo: "se hai un gioco HTML5 / Javascript (o Flash / ActionScript) e vorresti portarlo su Windows, iOS e oltre". Immagino che questo motore sia esattamente per gli sviluppatori web che vogliono passare a piattaforme mobili.
Iseeall,

Haxe / NME non è un Game Engine, è una piattaforma che fa parte del tuo stack tecnologico. Non è per gli sviluppatori Web che vogliono passare a piattaforme mobili. È per gli sviluppatori di giochi che vogliono portare i loro giochi su quante più piattaforme possibile senza dover affrontare linguaggi inferiori come JavaScript. HAXE / NME è molto potente ma dal suono delle cose, non credo sia quello che stavi cercando.
Anber

12

V-Play (v-play.net) è un motore di gioco multipiattaforma basato su Qt / QML con molti utili componenti di gioco V-Play QML per la gestione di risoluzioni e proporzioni di visualizzazione multiple, animazioni, particelle, fisica, multi-touch, gesti, ricerca del percorso e altro. Riferimento API Il core del motore è scritto in C ++ nativo, combinato con il renderer personalizzato, i giochi raggiungono una solida prestazione di 60 fps su tutti i dispositivi.

V-Play include anche modelli di gioco pronti all'uso per i generi di gioco di maggior successo come la difesa della torre, i giochi con piattaforma o puzzle.

Se sei curioso di conoscere i giochi realizzati con V-Play, ecco una rapida selezione di essi:

(Dichiarazione di non responsabilità: sono uno dei ragazzi dietro a V-Play)


7

Ecco solo una risposta di Richard Pickup su LinkedIn a una mia domanda simile:

Ho usato la marmellata di cocos 2dx e l'unità sia su iOS che su Android. Per i giochi 2d cocos2dx è la strada da percorrere ogni volta. L'unità è troppo eccessiva per i giochi 2D e, come già detto, la marmellata è solo un sottile strato di astrazione, non un vero motore di gioco. Puoi anche eseguire cocos2d in cima alla marmellata. Il mio approccio sarebbe quello di utilizzare cocos2dx su iOS e Android, quindi in futuro eseguire il codice cocosd2dx sopra marmellata come un modo semplice per port su bb10 e vincere al telefono 7


7

Trovo un motore di gioco Wave bello e ordinato pochi giorni fa. Utilizza C # e ha anche convertitori di Windows Phone e Windows Store, il che lo rende un ottimo sostituto di XNA per me


6

e che dire di LibGDX di BadLogicGames?


1
Non sapevo che libGDX funzionasse su iOS. Richiede una licenza MonoDroid, che ora è (probabilmente, non vedo l'app con meno di 32kb di MSIL) $ 999 anziché $ 399 all'anno.
ashes999,

6

Scopri Loom ( http://theengine.co ) è un nuovo motore di gioco 2D multipiattaforma con codice hot swap e risorse sui dispositivi. Ciò significa che puoi lavorare in Photoshop sulle tue risorse, puoi aggiornare il tuo codice, modificare l'interfaccia utente della tua app / gioco e quindi vedere le modifiche sui tuoi dispositivi mentre l'app è in esecuzione.

Pensando agli altri motori di gioco multipiattaforma di cui ho sentito parlare o con cui ho persino giocato, il Loom Game Engine è di gran lunga il migliore a mio avviso con molte fantastiche funzionalità. La maggior parte degli altri motori di gioco simili (Corona SDK, MOAI SDK, Gideros Mobile) sono basati su Lua (con una sintassi strana, almeno per me). Loom Game Engine utilizza LoomScripts, un linguaggio di scripting ispirato ad ActionScript 3, con un paio di funzionalità prese in prestito da C #. Se ti sei mai sviluppato in ActionScript 3, C # o Java, LoomScript ti sembrerà familiare (e mi sento più a mio agio con questa sintassi che con la sintassi di Lua).

La licenza di 1 anno per Loom Game Engine costa $ 500 e penso che sia un prezzo accessibile per qualsiasi sviluppatore di giochi indie. Un paio di settimane fa è stata offerta anche una licenza di 1 anno gratuita. Dopo la scadenza della licenza, puoi comunque utilizzare Loom per creare e distribuire i tuoi giochi, ma non riceverai ulteriori aggiornamenti. I creatori di Loom sono molto fiduciosi e hanno promesso di migliorare costantemente il loro bambino rendendolo utile per acquistare un'altra licenza.

Senza ulteriori indugi, ecco le grandi funzionalità di Loom:

  1. Cross platform (iOS, Android, OS X, Windows, Linux / Ubuntu)

  2. Il flusso di lavoro ispirato a Rails ti consente di passare il tempo a lavorare con il tuo gioco (un comando per creare un nuovo progetto e un altro comando per eseguirlo)

  3. Compilatore veloce

  4. Codice in tempo reale e modifica delle risorse

  5. Possibilità di integrare librerie di terze parti

  6. Utilizza Cocos2DX per il rendering

  7. XML, supporto JSON

  8. LML (markup language) e CSS per lo styling degli elementi dell'interfaccia utente

  9. Libreria UI

  10. Iniezione di dipendenza

  11. Quadro di unit test

  12. Fisica Chipmunk

  13. Vedere le modifiche in tempo reale semplifica lo sviluppo di dispositivi multipli

  14. Dimensioni di download ridotte

  15. Costruito per i team

Puoi trovare altri video su Loom qui: http://www.youtube.com/user/LoomEngine?feature=watch

Dai un'occhiata anche a questo tutorial dettagliato in 4 parti: http://www.gamefromscratch.com/post/2013/02/28/A-closer-look-at-the-Loom-game-engine-Part-one-getting -started.aspx


5

Ho provato AppGameKit, è sia c ++ che Basic. È molto facile codificare i giochi 2D nella varietà Basic, con fisica, collisione e molto altro. È anche in fase di sviluppo attivo e molto economico (65 $). Il problema principale è che è davvero difficile compilare per Android (è necessario scaricare un sacco di file e seguire guide difficili e cose del genere) La mia opinione è che non è ancora abbastanza buono per uso commerciale, ma è buono per i programmatori indipendenti Ha una comunità di medie dimensioni


4

Attualmente utilizzo Corona per applicazioni aziendali con grande successo. Per quanto riguarda i giochi, ho l'impressione che non fornisca le prestazioni di alcuni degli altri motori di sviluppo multipiattaforma. Vale la pena notare che Carlos (fondatore di Ansca Mobile / Corona SDK) ha avviato un'altra società su un motore in competizione; Lanica Platino Engine per Appcelerator Titanium. Anche se non ho lavorato personalmente con questo, sembra promettente. Tieni presente, tuttavia, che viene fornito con un prezzo di $ 999 / anno.

Detto questo, sto studiando Moai da un po 'di tempo ormai (dato che ho già familiarità con la sintassi di Lua) e sembra promettente. È interessante il fatto che possa essere compilato per più piattaforme, non solo per ambienti mobili.

Multimedia Fusion 2 è anche un contendente degno di nota, considerando la complessità dei giochi prodotti e le prestazioni realizzate da essi. Mi viene in mente Vincere Totus Astrum ( http://gamesare.com ).


3

Recentemente ho usato un motore AS3: PushButton (ora è morto, ma è ancora funzionante e potresti usare qualcos'altro) per fare questo lavoro. Per farlo funzionare con Android e iOS, il progetto è stato compilato in AIR per entrambe le piattaforme e tutto ha funzionato senza danni alle prestazioni. Poiché Flash Builder è piuttosto costoso ($ 249), è possibile utilizzare FlashDevelop (ci sono alcuni tutorial da compilare in AIR con esso).

Flash potrebbe essere un'opzione poiché è molto facile da imparare.

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.