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.