Cube Slam è, come lo definisce Google stesso, un esperimento, ideato al fine di presentare ed esporre al pubblico le potenzialità della nuova tecnologia WebRTC, che promette un web più connesso, più veloce e più versatile. Ma Cube Slam è anche e soprattutto un web game divertente e innovativo, che, ancora una volta, rispecchia la filosofia di incontro e intrattenimento dell’utente finale, caratteristica del colosso di Mountain View. La particolarità di questo gioco-esperimento è quella di permettere agli utenti di giocare faccia a faccia e al contempo intrattenere una video chat, tutto nella stessa pagina web, senza bisogno di plug-in, semplicemente condividendo un link.
[youtube https://www.youtube.com/watch?v=8AdDbRz0SrU]
CUBE SLAM – come giocare
Per giocare a Cube Slam è sufficiente visitare la relativa pagina web, dove è possibile scegliere fra due modalità di gioco: gioca con un amico, per giocare faccia a faccia con un amico, e gioca con un orso, modalità single player con un orso chiamato Bob come avversario. Per poter usufruire della modalità multiplayer è necessario utilizzare Chrome come web browser, mentre se si utilizzano Firefox o Safari sarà comunque possibile giocare la modalità single player, ma niente di più.

Se non ci sono amici con cui giocare, c’è sempre l’orso Bob, la cui immagine va a rimpiazzare il video della webcam del nostro amico
Invitare un amico ad una partita è semplicissimo: una volta selezionata la modalità di gioco gioca con un amico, verrà mostrato il link da condividere per dare avvio alla partita (entrambi i giocatori devono visitare il medesimo link e permettere al sito di accendere la webcam). Una volta caricata la pagina, la partita ha inizio, mentre entrambi i giocatori hanno la possibilità di parlarsi e vedersi, come in una comune video chat. Il gioco in sé altro non è che un clone generazionale di Pong, con i due giocatori che si sfidano in un gioco a metà fra il tennis e l’hockey da tavolo, reso più movimentato da tutta una serie di ostacoli (barriere, deflettori, vortici gravitazionali…) e da un fornito set di power-up (palle multiple, palle esplosive, palle invisibili, scudi protettivi, comandi invertiti e molto altro ancora). I comandi, come da natura del gioco, sono essenziali e a prova di scemo, consistendo nelle semplici frecce direzionali destra e sinistra per muovere la racchetta e la barra spaziatrice per mettere il gioco in pausa.
CUBE SLAM – Dietro le quinte
Cube Slam si basa su WebRTC (Web Real Time Communications), tecnologia open source, nata nel 2011, che permette lo svolgimento di video chat, chiamate vocali e scambio peer-to-peer, il tutto via web browser, senza bisogno del supporto di plug-in esterni. WebRTC è strutturato in varie API (set di strumenti di programmazione) messi a disposizione dei programmatori che permettono lo svolgersi contemporaneo di più attività nella medesima pagina web:
- GetUserMedia gestisce il traffico di dati relativo alla webcam e al microfono
- PeerConnection invia i segnali audio/video
- DataChannel mantiene costante il traffico di bit per preservare la sincronizzazione del gioco
- Web Audio gestisce il tracker audio e i contenuti musicali della colonna sonora dinamica
Il comparto grafico, gradevole e curato, è interamente scritto in WebGL (Web Graphic Library), che ottimizza le funzionalità del browser al fine di elaborare e renderizzare grafica tridimensionale mediante calcoli svolti dalla GPU, lasciando così libera la CPU da questo ulteriore carico.
Il gioco è ospitato sul Google Cloud Platform e si avvale di alcuni strumenti che ne semplificano e migliorano la fruizione, come l’hosting temporaneo al fine di consentire il gioco anche se si è protetti da firewall, il boost al caricamento dei dati fornito da PageSpeed e la possibilità di giocare anche offline grazie ad AppCache.
Il progetto legato a Cube Slam, infine, è totalmente open source: Google ha reso disponibile il codice sorgente su Google Code ed è possibile abilitare dat.GUI (un’interfaccia per la modifica dei parametri) semplicemente aggiungendo all’URL il parametro ?dev, così da poter modificare a piacimento la struttura dei livelli di gioco.

