DeltaEngine: sviluppo giochi multipiattaforma

16 mag 2013 00:10

DeltaEngine DeltaEngine è un progetto molto interessante dedicato allo sviluppo di videogiochi per più piattaforme, il cui obiettivo è quello di creare un servizio di build in grado di comprendere il codice scritto e generare in automatico il porting per diversi sistemi e dispositivi: Windows, Windows 8 App, Windows Phone, Android & Tabler, iPhone & iPad, Mac & Linux, XBox 360, Chrome… Oltre a questa piccola magia l’obiettivo del progetto è quello di permettere l’utilizzo di diversi linguaggi (C#, C++, Java, …) e diversi framework (XNA, DirectX, OpenGL, OpenGL ES, …).

Multiplatforms

Il framework di DeltaEngine è open source ed è disponibile tramite diversi canali e l’utilizzo per Windows è gratuito. I prezzi di sottoscrizione del servizio (necessario per il porting verso piattaforme non Windows) sono relativamente bassi. E’ comunque possibile ottenere una sottoscrizione gratuita, partecipando attivamente al progetto oppure vincendo uno dei periodici concorsi dedicati alla scrittura di tutorial, esempi di codice o giochi. Durante la Beta del prodotto tutti i servizi sono gratuiti.

Il grande vantaggio di questa architettura è la possibilità di evitare di utilizzare diversi sistemi operativi, di installare diversi SDK o imparare nuovi linguaggi o API.

Negli ultimi mesi il progetto è in fase di reingegnerizzazione, come descritto nella roadmap ufficiale, e sia la documentazione sia il codice presentano alcuni buchi: ad esempio manca il tool di creazione del porting e quindi il supporto alle piattaforme non Windows. Entro la fine dell’anno il progetto dovrebbe essere completo, ma già ora se ne possono gustare le potenzialità.

Per lo sviluppo multipiattaforma vi sono già altri strumenti e framework di gran lunga più maturi: per citarne solo un paio direi Unity che è tra i più famosi ed è a pagamento e MonoGame che è dedicato agli sviluppatori XNA ed è open source e gratuito. Per non parlare naturalmente di HTML5 e framework come PhoneGap, oppure della suite di Xamarin.

Quindi, perché dedicarsi a Delta Engine? A me è piaciuto per diversi motivi, tra cui le pratiche moderne di sviluppo e la semplicità del motore, che offre molti helper e permette di ottenere velocemente i primi risultati. Il motore promette inoltre di supportare lo sviluppo a 360 gradi a prezzi competitivi e funziona perfettamente con Visual Studio e C#. La scelta di rendere disponibili i sorgenti, per lo meno del framework, permette di risolvere eventuali problemi e di comprendere in dettaglio il progetto.

Utilizzo

Come detto alcuni strumenti non sono ancora disponibili, ma in pratica l’utilizzo dovrebbe prevedere:

  • La creazione del progetto in Windows.
  • La gestione dei contenuto tramite un editor specializzato ContentManager.
  • La creazione del porting per le diversi piattaforme tramite il Launcher che si connette ai servizi online.

E’ possibile utilizzare una qualsiasi versione di Visual Studio, nonché SharpDevelop e MonoDevelop. Per i linguaggi e i frameworks supportati si veda la sezione Frameworks del sito ufficiale.

Showcase ed esempi

D’accordo, ma cosa si può ottenere? Per questo sono disponibili degli interessanti showcases, tra cui Soulcraft (disponibile nello store di Windows 8) e Arena Wars. Quest’ultimo è stato creato da unico sviluppatore ed è disponibile sulla piattaforma Steam.

Soulcraft ArenaWars1 ArenaWars2

Oltre agli showcase, il codice sorgente delle versioni 0.9.7.5 e 0.9.7.6 includono diversi esempi, facili da leggere e ottimi punti di partenza per conoscere il framework:

Breakout GameOfDeath

Game Jam 2.0 Da citare anche Tanfius must die! creato durante una delle Game Jam organizzate dal team di Delta Engine (la demo è stata sviluppata in 24 ore). Si è da poco conclusa la Game Jan di maggio con ben 8 team e 30 persone. La registrazione è disponibile su twitch.tv.

Tanfius

Come iniziare

Per iniziare è sufficiente creare un nuovo progetto Windows e installare tramite NuGet uno dei package DeltaEngine: DeltaEngine.OpenGL, DeltaEngine.DirectX o DeltaEngine.XNA. Per la versione 0.9.7.6 sono invece disponibili le seguenti versioni: DeltaEngine.SharpDX e DeltaEngine.OpenTK.

I sorgenti sono disponibili sia in CodePlex sia in GitHub (repository consigliato dal team DE), nonché come Zip o Installer (sconsigliato). Il sorgente è disponibile sia in C# sia in C++. In un prossimo post dedicato al progetto vedremo come creare una piccola demo.

Tag: Delta Engine, gaming, multipiattaforma, open source