News, Open Source

Ladies and Gentlemen…Mr Paperworld!

La notizia è fresca e arriva giusto per scombussolare il weekend 🙂
Paperworld3D è tra noi!

logo.gif

Da tempo un velo di mistero aleggiava attorno al dominio paperworld3d.com e in pi√π di un’occasione sono state ignorate le pressanti domande a riguardo nelle mailing list di papervision3D e red5… ma ora tutto è svelato!

Diamo un’occhiata pi√π da vicino…

Cos’è e come funziona

Paperworld3D è il punto di contatto di due importanti frameworks: Papervision3D e Red5. Il team di sviluppo capeggiato da John Grden e Trevor Burton ha sviluppato questa piattaforma partendo da una semplice idea “If you can do it in Papervision, you can do it multiplayer over the network with PaperWorld.” (se lo puoi fare con papervision, lo puoi fare in multiutenza online con paperworld).
Principalmente Paperworld3D si pone a metà strada tra due frameworks sopracitati automatizzando la comunicazione tra client e server e permettendo ai developer di non curarsi di tutti gli aspetti di trasmissione dati e sicronizzazione ma di concentrarsi sulle funzionalità da implementare nell’applicazione. Paperworld è stato pensato in modo da rendere il pi√π veloce possibile operazioni quali la creazione di scene 3D remote (RemoteScene class) e la loro sincronizzazione con i client connessi (PaperworldObject class)….e quando si dice “semplice”, si intende DAVVERO SEMPLICE!:

var scene:RemoteScene = new RemoteScene();
scene.addChild(GamePlayer.getInstance().avatar);

…due righe di codice che aprono un mondo pieno di aspettative…:D
Ma come funziona esattamente?
Tutto ruota attorno a questi due nuovi elementi: RemoteScene e PaperworldObject, che risiedono rispettivamente su server e client.

RemoteScene è appunto un nuovo tipo di scena, pensatela come una stanza di una chat, un ambiente virtuale remoto in cui avvengono scambi di informazioni. Essa viene creata  alla connessione del primo client e viene condivisa con tutti i client connessi. Tutte le interazioni tra i client vengono computate sul server e trasmesse tramite data push ai client i quali mantengono la sincronizzazione automaticamente attraverso la classe PaperworldObject.

La personalizzazione dei comandi

Come sarebbe “personalizzazione”? esistono dei comandi già fatti?
La risposta giusta è “ni”…
Paperworld ha degli handler di comando collegati ai diversi input che può ricevere, ad ogni tipo di input è possibile correlare una funzione specifica, che comunque verrà computata sul server e verrà comunicata con un certo delay al client stesso da cui parte l’input. I singoli input vengono trasmessi al server come valori booleani, quindi triggereranno una determinata funzione a seconda del loro valore (e ovviamente se a quel determinato handler corrisponde una funzione 🙂 ) che verrà eseguita dalla classe Avatar.

La classe Avatar

Avatar è un elemento che risiede sia sui client che sul server e interpreta i comandi trasmessi aldal server. Il coder è l’artefice dell’avatar (almeno quello! :D) quindi le funzioni associate ai comandi influenzeranno questo elemento. Un avatar quindi è il nostro “burattino” esistente in “n” universi paralleli: il nostro, quello del server, e quello di ogni singolo client connesso…è il nostro Behaviour Manager condiviso.

Curiosità…

Paperworld3D era partito come progetto per fare “pubblicità” a Papervision… ma una volta capito che Papervision non aveva bisogno di spinte in tal senso il nome di paperworld è stato utilizzato per questa promettente engine… com’è strano questo mondo (di carta 🙂 )

A cosa serve Paperworld?
…games, apps, cool sites…non basta? 😀

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s