In questo articolo, esploriamo diversi motori di gioco e framework, evidenziando alcuni dei principali vantaggi offerti da ciascuno di essi. Dopo aver letto questo articolo, avrai diverse opzioni tra cui scegliere per fare il prossimo grande successo. Si noti che ci concentriamo solo sugli aspetti 2D di queste piattaforme. Iniziamo.
Cocos2d è un framework open source gratuito, compatibile con Swift e Objective-C. Supporta iOS e OS X e supporta anche Android tramite il plugin SpriteBuilder Android purché il tuo codice sia scritto in Objective-C. Il supporto rapido per Android è in fase di sviluppo.
I progetti in Cocos2d sono creati tramite SpriteBuilder, un ambiente di progettazione grafica che puoi utilizzare per creare rapidamente prototipi e creare giochi. Non è necessario utilizzare SpriteBuilder per creare il gioco, tuttavia, la creazione del progetto deve essere eseguita tramite SpriteBuilder.
La gestione delle scene avviene attraverso il CCDirector
classe, che può utilizzare numerose transizioni con il CCTransition
classe. Offre animazioni attraverso il CCAnimation
classe e azioni, come spostare, ridimensionare e ruotare, con le sue CCAction
classe. Cocos2d ha il supporto per i sistemi di particelle con il CCParticleSystem
classe e ha il supporto per le mappe delle tessere con il CCTiledMap
classe.
Cocos2d usa anche OpenGL come motore di rendering. Usa Chipmunk come motore fisico. Se ti piace Objective-C o Swift e vuoi svilupparlo per più piattaforme (iOS e Android), allora Cocos2d è un framework che vale la pena considerare.
Cocos2d-x è una porta C ++ di Cocos2d che può essere compilata su molte altre piattaforme. Cocos2d-x può compilare su iOS, Android, Windows Phone, OS X, Windows e Linux.
Cocos2d-x non viene fornito con SpriteBuilder. Tuttavia, ha alcuni progetti interessanti, come Cocos Creator, che fornisce il framework, la modifica delle scene, il debug, l'anteprima del gioco e la pubblicazione su più piattaforme.
Unity è un motore di gioco mobile che supporta C # e UnityScript, un linguaggio progettato specificamente per Unity e modellato su JavaScript. È multipiattaforma e può essere distribuito su molte piattaforme, tra cui PlayStation e Xbox. C'è un'edizione gratuita disponibile e un'edizione professionale che offre più funzionalità. Ulteriori informazioni sono disponibili sul sito Web Unity.
C'è un editor di sprite incorporato nel quale puoi tagliare visivamente le tue immagini e una finestra di animatore che ti permette di disporre e organizzare animazioni e aggiungere animazioni di fotogrammi chiave agli sprite. È anche possibile progettare visivamente i sistemi di particelle all'interno dell'editor Unity.
Unity utilizza il proprio motore fisico proprietario. Unity ha una fotocamera integrata, che semplifica la navigazione nel mondo di gioco. È possibile visualizzare visivamente scene e Unity dispone di un sistema di interfaccia utente con componenti, quali pulsanti, cursori e menu. C'è anche il supporto per lo sprite packing all'interno dell'editor Unity.
Unity è una centrale elettrica quando si tratta di motori di gioco. Se hai bisogno di una soluzione multipiattaforma con una vasta gamma di dispositivi e preferisci programmare C # o UnityScript, Unity è una buona scelta. Un'altra cosa interessante di Unity è l'asset store in cui puoi trovare o acquistare beni che puoi utilizzare nei tuoi giochi.
SpriteKit è il framework di sviluppo di giochi 2D proprietario di Apple. È disponibile solo su iOS e OS X. SpriteKit supporta sia Swift che Objective-C, una combinazione dei due.
La gestione delle scene è fatta con SKView
classe e c'è una grande varietà di transizioni con il SKTransition
classe. Nel cuore di SpriteKit ci sono azioni, istanza di SKAction
classe, che sono usati per muovere, ruotare e scalare oggetti di gioco. Le azioni possono anche essere utilizzate per riprodurre suoni ed eseguire codice personalizzato.
SpriteKit ha un editor di scene in cui puoi disegnare visivamente i livelli del tuo gioco. Inoltre è disponibile un editor di particelle in cui è possibile progettare visivamente sistemi di particelle. Sono disponibili numerosi sistemi di particelle preimpostati, come fuoco e pioggia.
SpriteKit utilizza Box2D per il suo motore fisico. SpriteKit fornisce un involucro amichevole attorno a Box2D, che lo rende molto facile da usare. SpriteKit ha anche una fotocamera integrata attraverso il SKCameraNode
classe, che facilita la navigazione nel mondo di gioco.
Se sei legato all'ecosistema Apple, SpriteKit è un'ottima scelta.
Il titanio è un framework che utilizza JavaScript come linguaggio di programmazione. Sebbene sia più tradizionalmente utilizzato per creare applicazioni anziché giochi, può essere una valida piattaforma di sviluppo di giochi. È gratuito da usare durante lo sviluppo. Se vuoi pubblicare il tuo gioco, allora hai bisogno di una licenza.
Titanium supporta molti controlli nativi da iOS e Android. Ciò semplifica l'animazione di viste e immagini. Ho costruito un gioco del Blackjack, completo di animazioni e un bel effetto di capovolgimento della carta usando Titanium.
Una delle cose belle di Titanium è il mercato per il download di moduli personalizzati. C'è, per esempio, un modulo Box2D che puoi collegare alla tua app. Se non hai bisogno della complessità di Box2D, allora usare un semplice sistema di collisione con bounding box può funzionare altrettanto bene.
Mentre Titanium non sarebbe l'ideale per i giochi con un sacco di parti in movimento ed esplosioni di particelle, usarlo per semplici giochi di carte, giochi a quiz e giochi con un numero limitato di oggetti in movimento è più che un'opzione praticabile.
PhoneGap ti consente di prendere le tue competenze HTML, CSS e JavaScript esistenti e di impacchettarle come app per dispositivi mobili. Il modo in cui funziona è incorporare una visualizzazione Web nell'app e caricare le risorse in quella visualizzazione web. Ciò significa che è possibile utilizzare l'API Canvas per creare giochi.
PhoneGap consente l'accesso alle API native, come la fotocamera del dispositivo, il microfono e, soprattutto per lo sviluppo del gioco, l'accelerometro.
Essenzialmente, PhoneGap è piuttosto semplice. Prende un'app gestita da HTML e la impacchetta come applicazione mobile utilizzando una visualizzazione Web.
Daremo un'occhiata ad altre due librerie JavaScript che è possibile utilizzare per creare un gioco Canvas / WebGL, Phaser e CreateJS.
Phaser è un framework JavaScript open source per la scrittura di giochi 2D. Utilizza Canvas o WebGL se disponibile.
Phaser supporta animazioni, particelle e interpolazioni per spostare, ridimensionare e ruotare gli sprite. Ha un supporto integrato per le mappe delle tessere e utilizza tre diversi motori fisici, a seconda delle esigenze. Ha anche una fotocamera integrata, che semplifica la navigazione nel mondo di gioco.
Sono disponibili alcuni plugin per Phaser, tra cui un progettista di sistemi di particelle e un plug-in Box2D. Se JavaScript è la tua lingua preferita, allora Phaser, in combinazione con PhoneGap, potrebbe essere una buona scelta.
CreateJS è una suite di quattro diverse librerie open source:
EaselJS è una libreria basata sull'API Canvas e può utilizzare WebGL se disponibile. TweenJS è focalizzato sull'interpolazione di elementi mentre SoundJS è destinato alla riproduzione audio. Ultimo ma non meno importante, PreloadJS aiuta a precaricare le risorse.
EaselJS ha il supporto per i fogli sprite e i filtri che puoi posizionare sui tuoi elementi. C'è anche un Forma
classe dovrebbe essere necessario fare disegno vettoriale. Lo spostamento, il ridimensionamento e la rotazione vengono effettuati incorporando la libreria TweenJS nel gioco.
Sebbene CreateJS non abbia molte API personalizzate per lo sviluppo del gioco, è scritto in JavaScript, quindi puoi incorporare qualsiasi libreria JavaScript aggiuntiva, come una porta JavaScript di Box2D. Una libreria che ho avuto successo utilizzando in passato è una libreria di rilevamento delle collisioni per EaselJS.
Ho scritto un paio di articoli su CreateJS su Envato Tuts +. Se stai cercando un'introduzione dettagliata a queste librerie, potresti trovare queste interessanti:
Unreal Engine è un motore di gioco che utilizza C ++ come linguaggio di programmazione. È gratuito da usare con limiti. Per ulteriori dettagli, visitare il sito Web di Unreal Engine. Puoi distribuire il tuo gioco su iOS e Android.
Unreal Engine include anche un editor di Blueprint, che ti permette di creare script visivi delle tue applicazioni senza bisogno di programmazione. L'editor ti consente di progettare livelli di gioco, aggiungere simulazione fisica, interfaccia utente, animazioni, effetti visivi e altro ancora, in modo visivo.
Il Corona SDK è un kit di sviluppo software che usa Lua come linguaggio di scripting. È disponibile su Windows e OS X. Puoi sviluppare gratuitamente giochi e app con Corona SDK, tuttavia, Perk, la società che ha acquisito Corona Labs, offre un modello aziendale che consente l'accesso a librerie / API native e poche altre Caratteristiche. Visita il loro sito Web per ulteriori informazioni sui prezzi.
L'SDK Corona esporta in iOS, Android, Kindle e Windows Phone 8. Le esportazioni di Windows e OS X sono in beta privata e arriveranno presto.
Corona Labs offre alcune altre interessanti funzionalità, come Corona Editor, un plug-in Sublime Text che include un debugger, il completamento del codice e alcune altre interessanti opzioni. La GUI Composer, disponibile su OS X, offre un ambiente grafico in cui è possibile progettare i livelli del gioco e vedere come gli oggetti interagiscono tra loro usando il motore fisico di Corona.
Corona SDK utilizza OpenGL come motore di rendering e Box2D per la fisica. Il suo motore fisico fornisce un involucro attorno a Box2D, che ne facilita l'utilizzo. L'SDK Corona include oltre un migliaio di API che puoi utilizzare per creare i tuoi giochi.
Ha anche una gestione delle scene integrata attraverso la sua libreria di compositori e offre un'eccezionale libreria di transizione che aiuta a spostare, ridimensionare e ruotare le risorse grafiche del tuo gioco.
Sfortunatamente, Corona SDK non ha la possibilità di costruire atlanti di sprite e l'utilizzo di forme complesse per il rilevamento di collisioni fisiche può essere difficile. Tuttavia, ci sono alcune ottime applicazioni di terze parti che possono alleviare questo dolore, come Texture Packer e Physics Editor.
Nel complesso, il Corona SDK è un ottimo SDK da esplorare se stai cercando una soluzione multipiattaforma e vuoi la facilità del linguaggio di scripting Lua.
Gideros, come Corona, usa Lua come linguaggio di scripting. Gideros è gratuito e open source e può essere compilato su iOS, Android, Windows Phone, OS X, Windows e Windows RT.
Sebbene Lua non sia un linguaggio di programmazione orientato agli oggetti con un sistema basato su classi, Gideros fornisce un'API class based, che consente agli sviluppatori di scrivere codice pulito e riutilizzabile.
Gideros ha un manager di scena con tutti i tipi di transizioni, a Un filmato
classe per animazioni e fornisce tweening attraverso la sua libreria GTween, che consente di spostare, ridimensionare, ruotare entità e altro.
Gideros, come Corona, usa Box2D per la fisica, sebbene l'API Box2D di Gideros sia un po 'più vicina all'API Box2D originale e quindi leggermente più difficile da usare.
Fornisce alcuni strumenti extra come uno strumento di texture packer e un creatore di font, che può essere trovato nella directory di installazione. Gideros ti consente di eseguire test istantanei dei tuoi progetti sul tuo dispositivo mobile tramite una connessione Wi-Fi.
Come con Corona, questa è una grande piattaforma se stai cercando uno sviluppo multipiattaforma con la facilità del linguaggio di programmazione Lua.
AndEngine è un framework di sviluppo mobile per Android. È gratuito e open-source. Tuttavia, come suggerisce il nome, è solo per Android. AndEngine, come molte altre piattaforme mobili, usa OpenGL come motore di rendering e usa Box2D come motore fisico attraverso un'estensione.
AndEngine supporta gli sprite animati, i sistemi di particelle e consente il tweening delle entità tramite i modificatori di entità. AndEngine fornisce anche a telecamera
classe che ti permette di muoverti nel mondo di gioco con facilità.
In AndEngine non esiste una gestione delle scene dedicata, ma puoi trovare molti esempi su come creare un semplice gestore di scene. Se stai cercando di rilasciare solo un'app per Android e Java è la tua lingua preferita, allora questa struttura è una buona opzione.
libGDX è un altro framework di sviluppo di giochi Java. È multipiattaforma e può compilare Windows, OS X, Linux, Android, iOS, Blackberry e HTML5. libGDX usa anche OpenGL come motore di rendering e sfrutta Box2D per simulare la fisica.
libGDX ha un telecamera
classe, un Azione
classe per spostare, ridimensionare e ruotare oggetti e aParticleEmitter
classe per la visualizzazione di particelle. Ha il supporto per le mappe delle tessere tramite ilTiledMap
classe, che può essere utilizzata con l'editor di Tiled.
libGDX viene fornito con alcuni strumenti aggiuntivi, come un pacchetto di texture, un editor di particelle e un generatore di font bitmap.
Se Java è la tua lingua preferita e stai cercando di creare un gioco multipiattaforma, allora libGDX è un buon framework per esaminare.
In questo articolo, abbiamo esaminato diversi framework e motori di sviluppo di giochi. Ora dovresti avere un'idea migliore delle soluzioni più adatte alle tue esigenze e a quella del tuo prossimo gioco. Grazie per la lettura e spero che tu abbia trovato utile l'articolo.