Motori di sviluppo di giochi 2D multipiattaforma [chiuso]


84

Ho lavorato per un po 'di tempo con Corona SDK e adoro la velocità e la facilità con cui posso creare app potenti usando Lua. Ma può essere compilato solo per iOS e Android, il che sembra troppo poco ora.

Il mio interesse principale è che sia in grado di compilare su Desktop E Mobile. Almeno per quanto segue:

  • Windows + Mac per desktop, come applicazioni autonome.
  • iOS + Android per dispositivi mobili.

Preferirei che fosse più incline allo scripting di tipo Lua invece che ad ActionScript, ma sentiti libero di pubblicare qualsiasi cosa con cui hai lavorato e amato.

Finora ho trovato i seguenti motori:

  • Marmalade Quick - Dopo aver esaminato più a fondo, Marmalade Quick può essere creato solo per dispositivi mobili!
  • IwGame - Funziona sulla marmellata e dice che può essere distribuito su desktop e dispositivi mobili con Lua. Qualsiasi informazione è molto apprezzata su questo
  • sio2 - Dice "SIO2 è un motore di gioco 2D e 3D multipiattaforma basato su OpenGLES per iOS, Android, MacOS e Windows" e "Il motore ti consente anche di portare il tuo gioco sul Mac Store e su Windows.", ma il loro forum e il titolo web è "Game Engine for Mobile Devices". Non riesco a trovare alcuna informazione su se può distribuire su piattaforme desktop, qualsiasi informazione è di nuovo molto apprezzata.
  • Loom Engine - Loom è simile a Haxe + OpenFL (tenta di attrarre sviluppatori Flash) in quanto utilizza ECMAScript come AS3, ma non crea codice nativo da esso. Tuttavia utilizza Cocos2D per il rendering, quindi in teoria dovrebbe essere veloce quanto Cocos2D. - Grazie a Bojan.
  • SDL : ho letto in più punti che SDL può distribuire su quasi tutte le piattaforme o dispositivi e ha un'associazione Lua. Ma non riesco a trovare come funziona perché non è un motore. Chiunque possa spiegare come funziona e se è possibile è ancora una volta molto apprezzato.
  • SFML - "Windows, Linux, Mac OS X e presto Android e iOS." Non usa Lua ma può usare altri linguaggi come Java e Python ecc.
  • Torgue2D - "Torque 2D è stato sviluppato pensando ai dispositivi OS X, Windows e iOS e funziona altrettanto bene su tutte le piattaforme." usa TorgueScript e nessun Android = (
  • Sencha - Sembra compilare per tutte le piattaforme, usa anche Javascript che conosco. Ma anche con V8 JS funzionerebbe bene in termini di prestazioni rispetto ad altre opzioni?
  • GameMaker - possiede il linguaggio di scripting GML e in realtà lo ricordo come uno strumento per i non programmatori. È davvero diventato un vero motore, intendo per uno sviluppo serio?
  • Construct2 - Stessa domanda del gamemaker
  • Corona - Lua ma solo mobile (solo Android e iOS)
  • Cocos2D - Sembra che abbia molte opzioni ma non sei sicuro della stessa lingua? Sembra che dovresti riscrivere l'intero codice. Qualsiasi informazione se cocos2D può distribuire su desktop + mobile con quasi lo stesso codice sarebbe molto apprezzata.
  • Angel2D - Dice che può distribuire a tutto tranne che ad Android e usa Lua, qualcuno l'ha mai usato prima?
  • libgdx --- Ho visto solo cose positive su questo. Ecco un test di benchmark per libgdx ed è qui che l'ho visto raggiungere 40k sprite a 60fps. http://www.sparkrift.com/2012/1/love2d-vs-allegro-vs-clanlib-vs-libgdx-vs-cocos2d-x-vs-monogame-vs-xna-vs-sfml . Sembra che libgdx superi a malapena i 30k in realtà. Ma sembra ancora sorprendente. Questo è allo stesso livello di Qt per me, quasi perfetto, tranne per il fatto che non sono davvero preoccupato per le prestazioni. libgdx può costruire praticamente per tutto.
  • XNA + MonoGame --- Le prestazioni di MonoGame sembrano solo leggermente inferiori a libgdx, possono essere costruite per la maggior parte delle piattaforme. Tuttavia non so molto di XNA e ho sentito che non riceverà aggiornamenti futuri, ma è abbastanza stabile? Sono benvenute ulteriori informazioni.
  • Agrumi --- Non ho molte informazioni nemmeno sugli agrumi. Motore di gioco AS3 che può essere creato per iOS, Android, Windows, Mac e altro.
  • Haxe + OpenFL --- OpenFL (Haxe) si basa su nativo su molte piattaforme, non solo su Flash. Windows, Mac, Linux e Android ottengono tutti la distribuzione nativa opzionale o il runtime OpenFL chiamato Neko, che in teoria è più veloce di Flash e SDL 2.0 consentirà presto la distribuzione di iOS (ish). - Grazie a Bojan.
  • Qt-Project --- Basta collegare il progetto Qt qui, può costruire per tutto e ha una comunità piuttosto grande con molte librerie di terze parti per aiutarti ulteriormente.
  • Moai --- L'unico motore Lua che so che può costruire per desktop e dispositivi mobili. L'unico aspetto negativo è che la comunità non è così grande e la documentazione non è la migliore. Ma se riesci a superarli, questa è un'ottima soluzione e quella che sto attualmente utilizzando.
  • Adobe --- Non posso dimenticare di aggiungere Adobe qui poiché può essere integrato con tutto ciò che supporta Flash.
  • Unity3D --- L'integrazione 2D annunciata di recente sembra molto promettente, dovrebbe essere rilasciata Q3-Q4 del 2013.
  • Cocos2d-x --- Un motore open source. Supporta JS, Lua, C ++ e più piattaforme.
  • Html5 --- Sembra che ci sia molta enfasi sulle app mobili html5, qui ci sono solo alcuni strumenti che ho trovato che possono aiutarti a portare il tuo progetto html5 su una piattaforma:

    1. Cromo incorporato

    2. Sencha

    3. Phonegap

    4. Appcelerator / Titanium

    5. Icenium

Quindi, sarei felice se potessi commentare le tue esperienze con qualsiasi motore e suggerire quale consiglieresti. Grazie per l'aiuto!

EDIT: poiché questo argomento sta diventando popolare, aggiungerò altre opzioni che ho trovato nel tempo. Ti suggerisco di scegliere ciò che ti è più familiare e meglio per le esigenze del tuo progetto.


1
OpenFL (Haxe) si basa su nativo su molte piattaforme, non solo su Flash. Windows, Mac, Linux e Android ottengono tutti la distribuzione nativa opzionale o il runtime OpenFL chiamato Neko, che in teoria è più veloce di Flash e SDL 2.0 consentirà presto la distribuzione di iOS (ish). Loom è simile (tenta di attrarre sviluppatori Flash) in quanto utilizza AS3-like di ECMAScript, ma non crea codice nativo da esso. Tuttavia utilizza Cocos2D per il rendering, quindi in teoria dovrebbe essere veloce quanto Cocos2D
Bojan Markovic

2
Dovresti davvero aggiungere Cocos2d-X alla lista: cocos2d-x.org
Clay

Dovresti assolutamente controllare UDK di Epic Games. In realtà è un motore AAA completo rivolto a moder e sviluppatori indipendenti. Sfortunatamente al momento non supporta Android, sebbene abbiano reso molto più disponibile la licenza UE4 completa che supporta Android. Tieni presente che UE4 è appena stato rilasciato e UDK è una piattaforma abbastanza sviluppata.
Igor Čordaš

Inoltre, se vuoi qualcosa di Open Source e portatile (basato su Java) vedi jMonkeyEngine.
Igor Čordaš

Risposte:


9

Consiglierei V-Play (v-play.net): è un motore di gioco multipiattaforma basato su Qt per iOS, Android, Symbian, MeeGo, Blackberry10 e può anche esportare per applicazioni desktop native per Windows, Mac e Linux.

È basato su C ++ ma ha un accurato supporto di scripting per QML e JavaScript . QML è un gioco da ragazzi da imparare e può aumentare la produttività poiché è necessario meno codice: basta vedere il confronto con cocos2d-x (60% in meno di Loc) o Corona (15% in meno di LoC) per un confronto degli stessi giochi.

(Disclaimer: sono uno dei ragazzi dietro a V-Play)


1
Anche se sono sicuro che V-Play sia un prodotto fantastico, dovresti mettere un disclaimer che sei il co-fondatore. Vedi: meta.stackexchange.com/a/59302
Nepoxx

1
Certo - l'ho appena aggiunto
Christian Feldbacher

7

Se ti piace usare Python, Kivy è un'ottima soluzione in questi giorni. Si compila per tutte le piattaforme che chiedi:

Kivy funziona su Linux, Windows, MacOSX, Android e IOS. Puoi eseguire lo stesso codice su tutte le piattaforme supportate. Può utilizzare in modo nativo la maggior parte dei protocolli di input e dei dispositivi come WM_Touch, WM_Pen, Mac OS X Trackpad e Magic Mouse, Mtdev, Linux Kernel HID, TUIO. È incluso un simulatore di mouse multi-touch.

Kivy utilizza molto codice ottimizzato per il rendering grafico (tramite Cython), quindi è anche veloce.

Ecco uno speakerdeck che ti fornisce alcune informazioni generali e una panoramica (specifico per Android).


Sebbene kivy possa essere utilizzato per lo sviluppo di giochi, non è esattamente un motore di gioco, kivyent (kivent.org) è tuttavia un motore di gioco basato su kivy, che potrebbe essere più adatto, a meno che il tuo gioco non sia molto semplice e non lo fa richiedono la complessità aggiunta.
Tshirtman


5

Ecco il mio framework di gioco Oxygine . Si tratta di un moderno framework C ++ 2D con accelerazione hardware open source per piattaforme mobili e PC. Caratteristiche: OpenGL (ES) 2, trame compresse, atlanti, animazioni / interpolazioni / sprite complesse, grafico della scena, caratteri, gestione degli eventi, strumenti di costruzione e altro. Può essere creato su SDL2 o Marmalade SDK.

Nella base del motore c'è un grafico di scena, simile a quello di Flash. In breve, puoi chiamarlo Flash per C ++, ma più comodo e molto più veloce. Inizialmente è stato sviluppato per piattaforme mobili (iOS, Android), ma può essere utilizzato anche per giochi per PC.

inserisci qui la descrizione dell'immagine


L'ho provato (e in realtà ho rilasciato un prodotto finito), funziona molto bene!
Juster

4

Nessuna menzione di App Game Kit (AGK) qui, quindi lasciami colmare il vuoto. È principalmente un SDK multipiattaforma 2D che consente di codificare una volta in C ++ o nel proprio linguaggio "Basic". La versione 2 ha appena ricevuto oltre il 400% di finanziamenti su Kickstarter e avrà il supporto 3D completo, supporto Spine (per i personaggi animati 2D), fisica dei proiettili e un sacco di altre nuove funzionalità.

Ha già Facebook, Twitter, un sacco di comandi del sensore Ultrabook, Box2D e altro. L'ho usato dall'inizio e lo adoro (puoi dirlo?). No, non lavoro per The Game Creators (la società che lo ha creato), anche se ammetto di aver creato alcune app per un po '.

Una delle migliori caratteristiche dal mio punto di vista è che puoi sviluppare su Windows e trasmettere dall'IDE tramite Wi-Fi a qualsiasi dispositivo supportato, quindi mentre sto codificando posso (in pochi secondi) testare il mio codice su iPad, Android, Windows, Mac o Blackberry Playbook.


4

Se hai uno sfondo C #. Dai un'occhiata a Duality.

Duality è un framework di gioco 2D flessibile scritto interamente in C # ed è qui per rendere le cose un po 'più facili per te. Fornisce sia un motore di gioco estensibile che un editor visivo da abbinare. Non ci sarà bisogno di un editor di livelli, un ambiente di test o un gestore dei contenuti perché Duality è tutto questo di per sé. E soprattutto: è gratuito.


1
Bella aggiunta. Lo aggiungerò presto alla lista, oltre ad altri che ho scoperto, oltre a organizzarlo meglio. Grazie per il tuo contributo
Hate Names

È compatibile multipiattaforma?
JCPhlux

2
@JCPhlux, sì lo è. Non sono sicuro del cellulare, ma funziona in mono.
Andy

Cos'è quel fetzenet.de/blog/?page_id=697 ? Perché non questo duality.adamslair.net
RS

Fisso. Penso che si siano trasferiti non molto tempo dopo aver pubblicato la mia risposta - github.com/AdamsLair/duality/issues/45
Andy

2

Ti rispondo solo per darti un'idea di come viene utilizzato SDL. Come hai detto prima non è un motore di gioco (in realtà è solo una libreria). Inoltre, non è affatto orientato agli oggetti e non hai alcune semplici funzioni di animazione (devi codificarle da solo).

Come funziona (ho usato la versione C ma immagino che l'associazione Lua dovrebbe essere simile):

Includi le intestazioni necessarie per creare il progetto sulla piattaforma che desideri.

Progetta il tuo loop di gioco in cui imposterai (almeno) un intero sistema di elaborazione degli eventi, un gestore della frequenza dei fotogrammi e uno "strumento di pulizia (o aggiornamento) dello schermo" (insisto sul fatto che devi aggiornare manualmente lo schermo utilizzando la routine SDL_flip_screen che è qualcosa che non è affatto una delle tue preoccupazioni con Corona).

Quindi, codifica il tuo gioco usando tutte le "meccaniche" che hai creato prima.

SDL è una libreria di basso livello (non aspettarti di avere un framework GUI facile da usare o il framework storyboard di Corona, ad esempio).

Infine, questa libreria è stata utilizzata per portare Civilization III su Linux, quindi sì, funziona ma ti richiederà molte energie per avere qualcosa come quello che avevi con Corona;)

PS: non sono madrelingua inglese, quindi fammi sapere se non sono stato chiaro :)


2

Gideros è un ottimo motore 2d multipiattaforma basato su Lua , che attualmente supporta sia le piattaforme Android che IOS, ma molto altro in arrivo. E ha anche alcune fantastiche funzionalità come il test istantaneo del dispositivo, il ridimensionamento automatico e la risoluzione automatica dell'immagine per indirizzare facilmente varie dimensioni dello schermo, nonché l'opzione per estendere ciascuna piattaforma tramite plug-in nativi.


1

Hai anche ShiVa3D , un serio concorrente di Unity3D. Utilizza Lua e supporta molte piattaforme, dai dispositivi mobili alle console di gioco e ai browser web.

Molto intuitivo da usare e interfaccia utente molto piacevole con cui lavorare.

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.