Videogaming in JavaScript
Correva l’anno 2013. Eravamo in quattro, tutti innamorati del game development. Ma le cose non andavano come avevamo sperato, il mercato dei videogiochi era piuttosto complesso, e noi troppo giovani per capire che bisognava essere pazienti.
Lo imparammo presto, precisamente una mattina di marzo. Quel giorno ci accorgemmo che le revenues di uno dei nostri giochi pubblicati su Yahoo Game, Dragon Mahjong, stavano aumentando esponenzialmente.
Il numero di persone che giocavano on line quadruplicava ogni ora.
Cosa stava succedendo?
Semplicemente che Yahoo aveva pubblicato il nostro gioco in homepage, potenziando notevolmente la visibilità.
Da quel momento in poi, entrammo a far parte del mondo dei grandi.
Oggi il nostro team conta 13 persone, e sviluppiamo videogiochi sia per il mercato B2C che per lo scenario B2B.
Sviluppiamo in JavaScript/Html5: vediamo perché, oltre a spiegarne i vantaggi concreti.
Cosa significa sviluppare videogiochi per i mercati B2C e B2B?
Per il mercato B2C sviluppiamo giochi per l’utente finale, quindi pubblichiamo sulle più grandi piattaforme on line, come Game Distribution, Microsoft Edge e Yandex Games, e sui principali sistemi operativi, ossia Google Play e AppStore.
Per il mercato B2B sviluppiamo advergame e soluzioni customizzate per i brand e le aziende che vogliono raccontarsi e promuoversi attraverso il videogioco. È un mercato in crescita in Italia, sebbene lavoriamo da moltissimi anni con clienti esteri, soprattutto negli Stati Uniti e in Europa.
Quale tipologia di videogiochi sviluppiamo?
Siamo esperti nelle categorie Casual Game 2d, Hypercasual 2d, Board Game e Giochi Multiplayer.
Le nostre competenze sono legate, in fondo, alla nostra storia professionale, che inizia con Flash/Actionscript, il software di Adobe Flash che molti ricorderanno con un apostrofo di nostalgia.
Pillola Vintage: da Flash a JavaScript
Dal 2009 al 2014 abbiamo sviluppato i nostri videogiochi in Flash; la storia la conosciamo tutti: i vari browser, partendo da Safari, iniziarono a non supportare più la tecnologia di Adobe, bloccando di fatto il funzionamento dei giochi.
Per cui, era giunto il momento di scegliere il nuovo linguaggio per il nostro lavoro: di cosa avevamo bisogno?
Ci serviva un linguaggio di programmazione che fosse idoneo all’ ambiente web per Desktop, il nostro campo d’azione principale.
In effetti, non era ancora scoppiata la bomba-smartphone, sebbene fossimo consapevoli che, da lì a poco, sarebbero diventati i nostri prolungamenti digitali.
Qual era, dunque, il linguaggio funzionale al nostro obiettivo?
Senza dubbio JavaScript.
Si tratta di un linguaggio Cross-Platform, compilato da tutti i browser già dell’epoca senza alcun ostacolo. Questo significa che il gioco poteva essere fruito senza problemi dai principali browser come Chrome o Safari, ma anche Microsoft Edge, fino a Firefox e Opera.
Così come avviene oggi.
In Html5 utilizziamo il tag , il corrispettivo digitale di una tela trasparente sulla quale “disegniamo” il gioco a 30 FPS, dove FPS indica la frequenza dei fotogrammi.
Non scendiamo mai sotto i 30 FPS, per preservare la “fluidità” del gioco, ma ci riserviamo la possibilità di aumentare il Frame Rate in caso di necessità.
JavaScript, inoltre, ci dava la possibilità di programmare liberamente ed essere “padroni del codice”, a differenza di quello che succede con strumenti di terze parti.
Perché era così importante per noi la totale autonomia?
Perché il nostro mercato B2B era fortemente in crescita: le aziende e i brand internazionali chiedevano sempre di più la personalizzazione dei videogiochi, per le campagne di marketing o altre strategie di comunicazione; pertanto, era fondamentale avere il potere di modificare e modellare il gioco in ogni suo aspetto, dal reskin grafico fino al gameplay e alle componenti software del back-end.
Questo vantaggio, oggi, è ancora molto importante per il nostro lavoro.
E per Mobile?!
Con la diffusione degli smartphone, il gioco è “a portata di mano”.
Per poter atterrare con le nostre app di gaming sui principali Store, la scelta più funzionale è stata quella di partire dalle risorse che avevamo già, ottimizzando tempi e lavoro. Quindi ci siamo decisi a pubblicare i videogiochi in JavaScript su iOS e Android.
In che modo?
Decidendo di “embeddare” il codice JavaScript nelle webview di Google e Apple, anziché ri-programmare il gioco nei linguaggi proprietari dei sistemi operativi, come Swift (Apple).
Questa scelta ci ha permesso di pubblicare la maggior parte dei giochi in catalogo, con migliaia di download al mese su ogni Store.
Ecco, dunque, un’altra peculiarità importante di JavaScript: è un linguaggio Multi-Device, per cui accessibile e fruibile da tutti i dispositivi, dal Pc al Mobile, passando al Tablet, fino al Touch Screen.
Impossibile negare che, durante il primissimo periodo di porting su mobile, non sono mancati i problemi di performance, poiché gli smartphone di dieci anni fa non erano potenti come quelli attuali; tali problemi si sono dissolti quando sono state introdotte le nuove tecnologie di accelerazione 3d*.*
Come funziona il Multiplayer?
Sviluppiamo moltissimi giochi multiplayer, i quali risultano attrattivi perché più sfidanti.
In questo caso, sviluppiamo una parte del gioco con un linguaggio di tipo Server-side, cioè interpretato ed elaborato dal server prima di essere inviato al client (il browser dell’utente).
Usiamo, principalmente, i linguaggi C# e PHP.
Questa scelta risulta vantaggiosa soprattutto per i giochi destinati ai contest on line, i quali prevedono attività più complesse a livello di back-end, come il login, la leaderboard e altre dinamiche che richiedono maggiore sicurezza, in termini di dati.
Conclusioni Friendly
In sostanza, JavaScript è il punto di riferimento dei linguaggi client side, e offre numerosi vantaggi per gli sviluppatori che intendono dedicarsi ai webgame, ai videogiochi in 2d e/o alle categorie Casual e Hypercasual.
- È un linguaggio di programmazione semplice;
- Permette agevolmente la fruizione cross-device;
- Garantisce la pubblicazione cross-platform
È scontato comunque dire che per i/le developers che programmano esclusivamente applicazioni Mobile o giochi 3D con gameplay più complessi, siano indicati altri tipi di linguaggio.
La componente che non deve mancare mai è, notoriamente, l’amore. Se scompare, perdi tutte le vite!