mercoledì 2 novembre 2016

Blogger, Medium ed altri strumenti.

Come recita la massima: il primo amore non si scorda mai. E' comunque veramente destabilizzante osservare quanto le informazioni su Internet appaiano e poi scompaiano troppo velocemente. Si percepisce tutta la fallibilità delle informazioni che, per qualche imprevisto, potrebbero scomparire dalle rete e non essere più reperibili. Qualcuno potrebbe obbiettare che non sarebbe una grande perdita, ma mi cullo nell'illusione che quanto da me scritto sia di qualche aiuto ed interesse ;-)

La motivazioni principale è, comunque, che ho scoperto un'altra piattaforma (https://medium.com/) Ha un'interfaccia veramente incredibile ed alcuni post relativi alle ultime info sui "Metaverse" li ho scritti direttamente con Medium, li ripropongo comunque anche su MayaVerse:



giovedì 23 giugno 2016

Antiche cività digitali?

Uno degli argomenti più sentiti e seguiti in rete, relativo ai mondi virtuali, è sicuramente la valutazione del successo ed il futuro di Second Life. E' indubbio che tutti (o quasi tutti, comunque la maggioranza...) abbiamo un account su Facebook, molti di meno sono i "cittadini" di SL. Si badi bene, SL non è morta. Le ultime statistiche riportavano un numero consistente di giocatori/utenti che ancora usano il proprio account regolarmente. L'esperienza a riguardo, non a caso, dimostra che piattaforme sociali come mondi virtuali, anche molto vecchie, vengono tuttora visitate ed utilizzate soprattutto da uno stesso gruppo di utenti che si è particolarmente affezionato. A meno di possibili chiusure forzate (vedi l'esempio CloudParty per acquisizione diretta o per cancellazione da parte della società creatrice, qualcuno ricorda Lively?) una volta creati e sviluppati, dunque ammortizzati i costi, questi mondi virtuali diventano dei rifugi/santuario in cui è possibile rivivere le emozioni della "prima volta" in un MMO. Come veri e propri "archeologi" esiste un meraviglioso filmato di diversi mondi virtuali visitati e brevemente descritti, molti sono tuttora attivi.


Qui il link per scaricare il file .mp4: un vero e proprio reperto storico ;-)


Notizia di pochi giorni fa riportata su Vice parla persino di un presunto perduto bot automatico che  è ancora in funzione ed è decisamente "inquietante":




Come vestigia di antiche civiltà perdute, é possibile rintracciare in rete diversi progetti e tentativi di mondi virtuali rilasciati sotto licenze open source. Sono diverse sedimentazioni di tecnologie ed architetture apparentemente superate, in realtà molto utili per chiunque voglia comprendere più approfonditamente come funziona un mondo virtuale.

Gli articoli, ad esempio, del progetto Sirikata chiariscono molto bene le complesse difficoltà tecniche per la condivisione di contenuti:


L'attesissimo gioco Crowfall, un MMORPG basato su motore VoxelFarm sta utilizzando la stessa tecnologia che inizialmente era stata usata da HighFidelity con la sua implementazione dello "Sparse Voxel Octree"

Non sembra esserci nulla di analogo:

Alcuni Mondi Virtuali "scomparsi":

domenica 28 febbraio 2016

Corsi e ricorsi storici?

Inizio a pensare di essere vecchio, soprattutto per la netta sensazione di aver già visto tutto. Con l'età si scoprono degli schemi ricorrenti nel tempo e questo porta alla consapevolezza che troppe primavere sono ormai trascorse senza qualcosa di veramente innovativo. I titoli dei giornali incominciano a parlare di "inverno della realtà virtuale", quando nemmeno siamo riusciti a vedere una diffusione minimale degli HMD tale da poter soltanto immaginare lo sviluppo di qualcosa più complicato di una demo. Tutto già visto e sperimentato: non c'era giorno nei ruggenti anni 90 in cui non venisse tirata fuori un'immagine delle "magnifiche sorti e progressive..." della VR con tanto di workstation con logo della Silicon Graphics (qualcuno ricorda?) con visore VPL (ricordate?). Tesi, studi, progetti poi incredibilmente scomparsi dopo pochi anni. C'è stato un momento nella storia della VR in ci siamo girati e tutto quello che era stato promesso sembrava essere scomparso, sparito nel nulla, dimenticato e mai esistito. E di questi sentori oggi i giornali sembrano essere pieni. Accadrà nuovamente? Nessuno, a dispetto dei molti pronostici, può fare una previsione. I costi dei visori sono veramente alti (per maggiori info vedi qui e qui), ma è anche vero che le prevendite hanno superato ogni aspettativa. Il problema real, a mio parere, è cosa questa tecnologia può darci. Si stanno sviluppando troppe applicazioni create per singoli utenti, quando la "killer application" dovrebbe essere quello che da anni ormai vado predicando, ovvero:
Metaverse: ambiente virtuale tridimensionale immersivo ricreato al computer condiviso tra più utenti attraverso Internet con possibilità persistente di inserimento, modifica e cancellazione di oggetti ed agenti, programmabile attraverso un linguaggio di scripting.
Sistemi come l'ultimo SDK di Leap Motion (Orion) potrebbero essere integrati in piattaforme codivise per permettere a migliaia di utenti di interagire fra di loro.


E la vera rivoluzione, come avevo anticipato in un mio precedente post è che sono disponibili sistemi per la condivisione nuovi ed innovativi come SpatialOS di Improbable:


Qui il primo esempio di semplice MMORPG da studiare:


OculusVR + Leap Motion (Orion) + SpatialOS = il MayaVerse è molto vicino!

Virtual Reality oggi

Coloro che si avvicinano incuriositi al mondo della realtà virtuale spesso partono direttamente dallo sviluppo di Demo con i due motori grafici 3D (Unity ed Unreal) che più stanno supportando i visori Oculus VR ed HTC Vive. Pochi, pochissimi cercano informazioni sui concetti fondamentali alla base di questi sistemi che sono disponibili liberamente online. Steven LaValle è stato uno dei primi sviluppatori presso Oculus VR. Sta portando avanti un progetto straordinario ovvero un libro dedicato all'argomento scritto da lui che è poi alla base delle sue lezioni. 



Per comprendere appieno il presente credo sia necessario indagare e capire il passato. E quindi anche questo libro è un "MUST":


mercoledì 2 settembre 2015

Soltanto una serie di tubi...


https://flic.kr/p/9tYsSH
Ipotizziamo di avere un bel motore grafico 3D in grado di visualizzare oggetti, avatar e quant'altro. Per poter "condividere" la simulazione con altri client avete la necessità di comunicare alcuni dati sugli oggetti presenti a video. E da questo nascono infiniti problemi che devono essere risolti: quale protocollo usare nella comunicazione? Ma soprattutto quali dati trasmettere? Cercando idee e suggerimenti in rete ho visto che pochi esperti trattano queste tematiche a livello tecnico e divulgativo. Per fortuna di chi vuole approfondire queste tematiche, uno sviluppatore, Glenn Fiedler, ha creato alcuni articoli introduttivi sulla programmazione via internet di giochi. Scopriamo quindi subito che è necessario abbandonare come protocollo TCP ed adottare UDP. Questo scelta è dettata dal fatto che il protocollo TCP è stato creato  per una comunicazione sicura nell'invio e ricezione del dato, situazione questa che non può essere adottata nei moderni MMO che hanno tempi di reazione dell'ordine dei millisecondi. Non è possibile in nessun modo attendere la verifica dell'avvenuta consegna del pacchetto e l'eventuale reinvio, questo creerebbe dei ritardi su una comunicazione che è già piena di ritardi. Il "lag" o ritardo è infatti intrinseco al funzionamento di internet che non può essere considerato come una "serie di tubi", ma come una rete di reti dove milioni di router, switch e computer dialogando ricevendo e ritrasmettendo pacchetti. Non dobbiamo poi dimenticare il limite fisico di propagazione della luce che comunque su lunghi tragitti inizia ad essere sensibile (se si parla di millisecondi). Ecco allora la strategia vincente:  trasferire piccole quantità di dati (quanto più possibile compresse ed in formato binario), su protocollo UDP (che è anche più snello del TCP), riscrivendo un semplice sistema per il sequenziamento dei diversi pacchetti e la conferma della ricezione. Nei tutorial e negli esempi tutto questo viene spiegato nel dettaglio, ma soprattutto vengono mostrate alcune strategie di "lag compensatio" ovvero compensazione del ritardo e di "prediction" ovvero di predizione ad esempio della posizione degli oggetti. Queste ultimi concetti sono molto utili soprattutto negli FPS in cui è essenziale una corretta gestione degli obiettivi colpiti e della posizione degli avversari. Non sono riuscito a capire se questi algoritmi siano utili nei Metaverse alla SecondLife e se ad esempio siano stati utilizzati proprio in SL per minimizzare l'onnipresente lag delle sim.

Sito principale: http://gafferongames.com/networking-for-game-programmers/
Codice di esempio: https://code.google.com/archive/p/netgame/

Studiare tutto questo non è certo uno scherzo, ma per fortuna esistono delle librerie che hanno già implementato queste logiche (o parte di esse). Soprattutto ENET sembra essere la soluzione ideale per l'ottima documentazione e per i numerosi esempi in rete. Riporto qui di seguito una breve lista di librerie:


Un bello studio che dimostra i problemi nell'utilizzo del TCP nei giochi:
Con questo secondo post credo ci sia tutto il materiale necessario per la creazione di una semplice demo. Uno spazio tridimensionale in cui inserire oggetti e magari spostarli, ruotarli e scalarli. Possiamo dire che ci potremmo trovare dinanzi ad un microscopico abbozzo di "Metaverse". Parlo di abbozzo perchè mancano ancora tantissime possibilità che che non sono state nemmeno indagate. Manca infatti l'utilizzo di un motore fisico, i sistemi per la gestione delle collisioni, l'uso di mesh animate e tantissimo altro. Questo a dimostrare l'estrema complessità di questi software che richiedono anni ed anni di pratica oltre a conoscenze che spaziano dalla matematica alla programmazione avanzata cross-platform.  Per non parlare poi della VR che aggiunge ulteriore complessità al sistema. Se infatti, secondo i consigli di Oculus, i motori grafici per avere un'ottima visualizzazione in VR devono girare a ben 75 FPS, allora tutte le latenze di rete devono essere attentamente valutate ed aggirate per creare l'illusione perfetta di un' ambiente virtuale tridimensionale condiviso.

martedì 1 settembre 2015

OK, abbiamo la data ed adesso?

Logo ufficiale Project Sansar da VRFocus.com
La notizia è rimbalzata sulla rete ovunque: l'Oculus Rift nella sua versione Consumer Version 1.0 sarà commercializzata a partire dal primo trimestre del 2016. Abbiamo finalmente la tanto attesa "data" che ha fatto così discutere sviluppatori, utenti ed appassionati. Eppure un misto di agitazione ed ansia pervade la mia mente: la VR è finalmente diventata una tecnologia consolidata e sopratutto utilizzata? Può un visore con l'attuale e più avanzata tecnologia essere lo scopo ultimo del mondo del gaming? Incomincio a pensare che l'arrivo dell'Oculus VR sia sicuramente una tappa molto importante nel cammino della Realtà Virtuale, siamo però ben lontani dall'avere una piattaforma che possa esprime tutte le potenzialità legate a questa tecnologia. Non si sono ancora visti protocolli e/o standard capaci di far "dialogare" i diversi dispositivi, ma sopratutto sono ancora pochi e di nicchia i sistemi che offrono la possibilità di condividere l'esperienza virtuale tra più utenti.  Non comprendo la foga e la rincorsa di singole avventure grafiche sicuramente ben realizzate grazie a motori grafici 3D come Unity ed Unreal Engine che tuttavia trascurano altri sistemi per l'interazione dell'utente con l'ambiente virtuale. Si é un po' troppo utenti passivi immobilizzati in una meravigliosa avventura quando invece potremmo essere i "demiurghi" in grado di creare un nuovo mondo. Va oltre tutto fatto notare che i Mondi Virtuali Immersivi in lavorazione stanno ancora implementando sistemi per offrire agli utenti la possibilità di inserire contenuti di vario tipo. La discussione è quanto mai accesa al riguardo: gli strumenti necessari devono essere inseriti nel mondo stesso oppure si devono utilizzare programmi appositi per la creazione?
La risposta è la più diversa (ma non troppo ;-): HighFidelity.io prevede per il momento la possibilità di importare mesh (e non solo) e di operare su di essi, in parte, anche attraverso gli strumenti in-world. Le operazioni base di traslazione, rotazione ed ingrandimento sono sempre possibili, come il rezzing di oggetti base, tuttavia creare oggetti complessi richiede l'utilizzo di modellatori avanzati come Maya o Blender. I problemi tecnici alla base di queste scelte non sono banali. Un oggetto potrebbe essere infatti composto di milioni di triangoli e quindi troppo oneroso nella sua ricostruzione a video ed anche nella sua trasmissione da client a server (o tra peer ;-) Ci sono quindi diversi trucchi sia nella visualizzazione come l'uso di diversi Livelli di Dettaglio (o LOD) della singola mesh, sia sistemi per rendere l'oggetto più semplice e quindi più facilmente visualizzabile. Il formato scelto per il salvataggio delle mesh nel caso ad esempio di HighFidelity, ma anche di altri motori grafici, è FBX. Si tratta di un formato proprietario di Autodesk molto utilizzato per via dei diversi modellatori della stessa casa che lo utilizzano per l'esportazione ed è quindi intuibile che i motori grafici 3D l'abbiano subito adottato da Unity ad Unreal Engine.
Il famoso e tanto atteso Project Sansar sta adottando, molto probabilmente, lo stesso sistema di caricamento delle mesh, tanto che viene dichiarato sul loro comunicato (libera mia traduzione) "..che un ristretto numero di persone potrà caricare modelli 3D creati con Maya(R)..":

The small group of initial creators invited to help test Project Sansar will create 3D content using Autodesk’s Maya® software and will export their creations to the new platform.
Vedi:http://www.lindenlab.com/releases/linden-lab-invites-first-virtual-experience-creators-to-project-sansar-testing

Per una più dettagliata disamina delle possibili caratteristiche di Project Sansar potete vedere qui. Dalle dichiarazioni fatte tuttavia si evince che saranno presenti successivamente anche strumenti direttamente in-world e l'importazione anche da altri modellatori 3D. 
Si procede quindi in ordine sparso, ma soprattutto in modalità diverse senza appoggiarsi a formati non proprietari od a protocolli open source e questo è un vero peccato per la diffusione di questi nuovi mondi virtuali. Sophia Elizabeth su medium.com ha scritto un bel articolo in due parti che mostra la vera e propria "battaglia" che sta iniziando tra le diverse piattaforme e che agli occhi di un programmatore sembra uno spreco di risorse e denaro incredibile. Dove sono protocolli e gli standard aperti e comuni su cui creare un Metaverso diffuso così come è successo per il Web. Se esiste HTTP, HTML e tanti altri standard e protocolli perchè non creare un "Metaverse Transfer Protocol"? I tentativi nel passato al riguardo ci sono e non hanno portato ahinoi a nulla di concreto. Perchè non utilizzare e rendere completamente open source/royalty free standard e protocolli di comunicazione e dare a tutti la possibilità di entrare in un "mercato" più vasto con regole comuni? Domande forse a cui mai potremo dare una risposta...

The fight for metaverse articolo:

  1. https://medium.com/@sophiaedm/the-fight-for-the-metaverse-811aef87d16a
  2. https://medium.com/@sophiaedm/the-fight-for-the-metaverse-part-ii-f68f91283a6d 
  3. http://recode.net/2015/07/31/in-the-shadow-of-second-life-virtual-reality-startups-say-this-time-itll-work-really/
Mi consola il fatto che il creatore di ConVRge abbia rilasciato dei bellissimi tutorial per creare un mini-metaverse basato su Unity 3D utilizzando la piattaforma di comunicazione Photon:
E non sarà certo un caso che molte delle "nuove" piattaforme siano basate sul motore 3D Unity per la sua estrema semplicità di integrazione. Rimane tuttavia il problema per me fondamentale di come queste piattaforme siano state realizzate. Quale gli algoritmi, le tecniche e le tecnologie, i protocolli utilizzati? Forse è meglio ripartire dalla base ed iniziare un bel corso sulle librerie grafiche OpenGL. Un primo e piccolo passo verso forse un Metaverse completamente Open Source basato su standard/protocolli quanto più possibili aperti e liberi. Un sogno o forse un' utopia, ma il MayaVerse non è forse questo?

Corsi OpenGL:


lunedì 1 giugno 2015

Cookie: informativa estesa

Cookie: informativa estesa

In questa pagina trovate l'informativa estesa relativa ai cookie, come richiesto dal Garante per la protezione dei dati personali tramite il provvedimento datato 8 maggio 2014 “Individuazione delle modalità semplificate per l’informativa e l’acquisizione del consenso per l’uso dei cookie” e nel rispetto dell’art. 13 del Codice privacy (D.Lgs. n. 196/2003).

Cosa sono i cookie? 

I cookie sono file di testo che un sito visitato invia al browser del visitatore. La funzione dei cookie è quella di monitorare l'attività svolta durante la visita a un sito, tenendo in memoria, per esempio, chiavi di accesso o preferenze, così che il visitatore non debba inserire i dati nuovamente a ogni sessione di utilizzo di internet.

Informativa sui cookie di questo blog 

Questo blog, come è evidente dall'indirizzo, è ospite della piattaforma Blogger a titolo del tutto gratuito. Questo significa che i cookie presenti sono gestiti dalla piattaforma Blogger e il titolare del blog non può intervenire sui criteri della gestione né conoscere il contenuto dei cookie.

Questo sito può presentare collegamenti ad altri siti e collegamenti ad applicazioni di social network (per esempio i bottoni di condivisione). Anche i cookie di tali applicazioni e siti sfuggono del tutto al controllo del titolare di questo blog. Per i criteri di gestione dei cookie di terze parti si deve fare riferimento ai criteri esplicitati dalle parti stesse: FacebookTwitterGooglePinterest.

Cosa fare se non volete accettare i cookie di questo blog 

Se non volete installare i cookie di questo blog non dovete far altro che modificare le impostazioni del vostro browser in maniera tale da rifiutare l'installazione (usualmente i browser sono configurati per accettare i cookie, così da rendere la navigazione su internet meno farraginosa). Potete trovare qui di seguito le istruzioni per modificare la configurazione dei principali browser per PC. Mi raccomando, se usate un altro dispositivo, premunitevi di configurare il browser come preferite. Per modificare le impostazioni relative ai cookie sui vostri browser potete consultare i seguenti link: ChromeExplorer,FirefoxOperaSafari.
***

Chi volesse informazioni precise sulla normativa le può trovare sul sito del Garante