ArsLudica.org Forum

Effettua l'accesso o una nuova registrazione.

Inserisci il nome utente, la password e la durata della sessione.
Ricerca avanzata  

News:

Autore Topic: Gaming su cloud computing  (Letto 2463 volte)

Ziggybee

  • Administrator
  • Hero Member
  • *****
  • Offline Offline
  • Post: 8.383
  • Gamer Extraordinaire
    • Mostra profilo
Gaming su cloud computing
« il: Gennaio 16, 2009, 12:22:00 »

Microsoft pare interessata, tanto che mi hanno aperto subito un account su Azure.

La piattaforma non è ancora pubblica, ma il profilo che mi hanno assegnato (mi è stato detto), dovrebbero coincidere con quelli che saranno i parametri di servizio free a regime. Se si superano costantemente ci saranno tariffe a consumo o flat.

Siccome non c'è NDA li posto qui:

Total compute usage: 2000 VM hours
Cloud storage capacity: 50GB
Total storage bandwidth: 20GB/day

Non so a quanto ammonti esattamente il consumo di 2000VM/h in tempi di calcolo, ma gli altri parametri sconvolgeranno non poco il mercato dell'hosting, che al momento è veramente troppo caro (anche i piani più economici sono terribilmente costosi per il poco storage che danno). Per non parlare dell'housing, che è poi la categoria più sensata dove classificare Azure.
Connesso
Matteo Anelli

Vazkor: "Altro che Apple TV"

StM

  • Administrator
  • Hero Member
  • *****
  • Offline Offline
  • Post: 9.424
    • Mostra profilo
Re: Gaming su cloud computing
« Risposta #1 il: Gennaio 16, 2009, 12:53:01 »

20 GB al giorno non sono pochi per queste applicazioni? :mah:

E il total compute usage si riferisce a che periodo di tempo? Tutta la vita?
Connesso

Monopoli

  • Hero Member
  • *****
  • Offline Offline
  • Post: 4.296
    • Mostra profilo
Re: Gaming su cloud computing
« Risposta #2 il: Gennaio 16, 2009, 13:23:07 »

cosa e'?

E' una roba tipo "il gioco viene tutto elaborato in remoto ed io mi becco l'immagine finale e basta"?
Connesso
Il mio blog agghiacciante
http://monopoliano.blogspot.com
E' Uscito! Compra qui: http://itunes.apple.com/us/album/crystal/id461134607

"Monopoli hai la voce da frocio ma sei un figo sull'Arsludicast."

ccontinisio

  • Old Member
  • ****
  • Offline Offline
  • Post: 395
    • Mostra profilo
    • Tiny Colossus
Re: Gaming su cloud computing
« Risposta #3 il: Gennaio 16, 2009, 15:30:31 »

cosa e'?

E' una roba tipo "il gioco viene tutto elaborato in remoto ed io mi becco l'immagine finale e basta"?

Sì pure io me lo chiedo... secondo me le reti attuali non sono pronte a supportare una cosa del genere.
Che poi, che guadagno c'è? Se una società può permettersi tutto questo per ogni utente che ha, quanto paga l'utente? Non gli conviene comprarsi una console sua o un PC potente?
Connesso
Ciro Continisio
Tiny Colossus - UFHO2

StM

  • Administrator
  • Hero Member
  • *****
  • Offline Offline
  • Post: 9.424
    • Mostra profilo
Re: Gaming su cloud computing
« Risposta #4 il: Gennaio 16, 2009, 15:38:54 »

Navighicchiando un po' il sito mi pare di capire che aldilà delle prospettive di gaming (visto che parlano esplicitamente di quota di risorse di calcolo) è anche una sorta di hosting "next generation"...
Connesso

Joe

  • Global Moderator
  • Hero Member
  • *****
  • Offline Offline
  • Post: 7.580
    • Mostra profilo
Re: Gaming su cloud computing
« Risposta #5 il: Gennaio 16, 2009, 16:07:39 »

Più che altro, Internet non imploderebbe?
Connesso

Monopoli

  • Hero Member
  • *****
  • Offline Offline
  • Post: 4.296
    • Mostra profilo
Re: Gaming su cloud computing
« Risposta #6 il: Gennaio 16, 2009, 16:10:39 »

La mia e' una opitesi, non so se e' davvero quello che si intende.
Comunque mandare il tutto in formato compresso, stile filmato, non sarebbe piu' pesante di uno stream di youtube.
Certo la qualita' sarebbe quella :D

Ma e' di questo che stiamo parlando? Zero, illuminaci :D
Connesso
Il mio blog agghiacciante
http://monopoliano.blogspot.com
E' Uscito! Compra qui: http://itunes.apple.com/us/album/crystal/id461134607

"Monopoli hai la voce da frocio ma sei un figo sull'Arsludicast."

StM

  • Administrator
  • Hero Member
  • *****
  • Offline Offline
  • Post: 9.424
    • Mostra profilo
Re: Gaming su cloud computing
« Risposta #7 il: Gennaio 16, 2009, 16:24:06 »

Sempre da ciò che leggo sul sito, sarebbe un'ulteriore delega di calcolo al server piuttosto che al client, un passo in più rispetto agli application server/preprocessori; e soprattutto potrebbe essere una sorta di "hosting non limitato al web" (il che farebbe scalpore se non altro per la presenza di un piano gratuito).

Ma z.e.r.o. potrebbe chiarire...
Connesso

memex

  • Senior Staff
  • Hero Member
  • *****
  • Offline Offline
  • Post: 1.859
    • Mostra profilo
Re: Gaming su cloud computing
« Risposta #8 il: Gennaio 16, 2009, 16:26:19 »

ma non è la versione evoluta di google apps? :look:
Connesso
...And there’s no use in tryin’/T’ deal with the dyin’/Though I cannot explain that in lines...

http://flic.kr/ps/ns8Sm

tatogame

  • Newbie
  • *
  • Offline Offline
  • Post: 18
  • Adepto del Rutto
    • Mostra profilo
    • My SH site!
Re: Gaming su cloud computing
« Risposta #9 il: Gennaio 16, 2009, 16:41:06 »

Sembra interessante, ma bisogna vedere come andrebbe gestita... potrebbe essere la cosa più geniale al mondo come quella più inutile dopo la torcia che si carica con la luce
Da quel poco che ho letto in giro sembra che sia un sistema di cluster (server loro che fanno calcolo distribuito) che riceve le istruzioni dall'utente e rispedisce indietro i dati "rielaborati"
Più che altro, Internet non imploderebbe?
Più che internet, per un sistema del genere servirebbe VERAMENTE una potenza di calcolo immane... Come utilizzo di banda non dovrebbe essere esosissimo, avrebbe al massimo una necessita di pochissima latenza (o magari nemmeno?)
Connesso
Burpd!

StM

  • Administrator
  • Hero Member
  • *****
  • Offline Offline
  • Post: 9.424
    • Mostra profilo
Re: Gaming su cloud computing
« Risposta #10 il: Gennaio 16, 2009, 17:11:36 »

Più che internet, per un sistema del genere servirebbe VERAMENTE una potenza di calcolo immane... Come utilizzo di banda non dovrebbe essere esosissimo, avrebbe al massimo una necessita di pochissima latenza (o magari nemmeno?)
Ma distribuire il calcolo vuol dire che i MBps/GBps che normalmente girano per la tua cpu/bus/gpu/ecc. devono girare da qualche altra parte... e da qualche altra parte bisogna portarceli... ergo ci vuole un bel po' di banda.

La potenza di calcolo non sempre è richiesta tutta quanta insieme...
Connesso

Ziggybee

  • Administrator
  • Hero Member
  • *****
  • Offline Offline
  • Post: 8.383
  • Gamer Extraordinaire
    • Mostra profilo
Re: Gaming su cloud computing
« Risposta #11 il: Gennaio 16, 2009, 17:56:24 »

La mia e' una opitesi, non so se e' davvero quello che si intende.
Comunque mandare il tutto in formato compresso, stile filmato, non sarebbe piu' pesante di uno stream di youtube.
Certo la qualita' sarebbe quella :D

Ma e' di questo che stiamo parlando? Zero, illuminaci :D

No non è di questo. Non parlo di calcolo distribuito 3D e mignottate alla marketing Sony :)

Azure funziona con un doppio concetto (che non è un concetto di Azure, ma la base per i sistemi di cloud computing), le applicazioni distribuite (che possono essere Web, RIA o semplci client) ed i worker process. I worker process sono replicabili e distribuibili su base geografica e, sostanzialmente sono un loop che si autodiagnostica e capisce quando le cose vanno prestazionalmente male (così si "clona" per mantenere le prestazioni elevate). Se la tua applicazione risiede nel cloud (perché è una Web Application, o una RIA, oppure un pluggozzo flash) anch'essa godrà dei vantaggi di replicazione e distribuzione amorfa.
Con un worker process puoi fare ad esempio il processo che aggiorna lo stato del mondo di gioco. Il vantaggio è che non esiste mai un solo worker process, ne esistono tanti quanti ne servono, sincronizzati tra di loro. Ogni worker process è in grado di valutare se sta "soffrendo" e lo comunica alla piattaforma, che magari lo replica se hai ancora quota a disposizione.

Immaginiamo una situazione che già adesso è piuttosto tipica nei giochi: il mio server gestisce tutto il traffico tra i client. Funziona tutto, il mio server (ed i miei client) perdono tantissimo a fare byte packing e a comprimere per non congestionare il flusso in tempo reale (o per non richiedere una connessione da qualche megabit obbligatoria). Il problema è che gran parte dei contenuti che trasferisco sono risorse per lo più statiche o di importanza secondaria rispetto al protocollo sincrono di cui ho bisogno per il gameplay, ammesso che abbia bisogno di un protocollo veramente sincrono e non possa simularlo.

Quello che fa il mio gioco è aggiornare costantemente dei database, fare l'appello dei client ad ogni network tick e applicare le regole di gioco poco altro. Gran parte di ogni tick lo perdo con il DB e gran parte del tempo di sviluppo lo perdo ad ottimizzare come aggiornare il DB senza che esso rimanga inconsistente permettendo exploit. Spesso i client mi fanno fare sempre le stesse cose con le stesse informazioni (come quando attacco con la mia arma o quando un nemico attacca me). In alcuni casi (giochi con eventi molto dinamici) parte dei risultati di script delle quest o delle missioni, devono essere mandati al client ogni volta che accadono. Non è semplice gestire tutta sta roba.

Ora, ottimizzazioni a parte, ad oggi questi scenari possono essere mitigati utilizzando le normali tecnologie web a disposizione (come i Web Service o le comunicazioni distribuite in generale), che sanno fare bene una cosa: il caching delle query e la gestione delle cose on demand. EVE Online è completamente gestito così (anche se sembra un gioco sincrono), Dofus, Wakfu, Trackmania anche (i server di Trackmania sono deployabilii anche come semplici script PHP). La sincronicità nella maggior parte dei giochi è del tutto non necessaria server-side (forse solo i giochi di sport e gli FPS la richiedono) e viene simulata client side. Inoltre, ormai nn esiste nemmeno più il modello alla ultima online, dove lo stato del mondo viene salvato ogni N tick: tutto è sincronizzato subito, paradossalmente questo vuol dire che sino a che il client non interagisce per modificare qualcosa, per il server sarebbe meglio se quel client non fosse proprio attivo! E questo col cloud computing riesci a farlo bene. Ci sono ambiti dove anche un protocollo usato in polling con un formato molto inefficiente per il real time (come i Web Service SOAP) è comunque migliore di un protocollo sincrono gestito a mano, proprio perché a me non serve controllare paranoicamente tutti i client ad ogni frame di rete!

Quello che fa il cloud è spingere in concetto un pelino più avanti: il DB non mi serve proprio. Piuttosto che usare un vero database (che non mi risolve i problemi e serve per fare altro, in sostanza), strutturo un sistema ad oggetti relazionale distribuito, con diversi modelli di storage (ma integrabili tra di loro), in grado di autosincronizzarsi su base geografica tramite una backbone ad alte prestazioni. In questo modo creo i presupposti per i miei client di lavorare in maniera quasi-sincrona anche su base planetaria (cosa che oggi non è possibile), senza degrado percettibile delle prestazioni, grazie anche al fatto che ogni mio nodo di storage è replicato almeno a 3 volte. Inoltre, spostando tutto da un real time ad un quasi real time, ho il vantaggio di lasciare un sacco di tempo in idle sui server per fare altro (in questo altro ci va pure la gestione delle app distribuite di qualcun'altro). Questa è la ragione per cui EVE riesce a tenere anche qualche migliaio di giocatori "a vista" con un server unico (la lag che si percepisce è un problema di client, non di server): se un client non fa nulla, non aggiorna nemmeno la sua posizione e non ha keepalive da mantenere o tick da gestire.

Lo scenario è sicuramente molto buono per giochi che hanno uno scarso bisogno di sincronicità ma che vogliono però garantire una infrastruttura online omogenea per i suoi giocatori. Se ci pensate non sono pochissimi. Anche i giochi sincroni (ad es FPS) possono trarne molto vantaggio: ad esempio per i sistemi di matchmaking centralizzato o per le contact list, le friend list, i gruppi, etc... Sono attività che se fatte utilizzando le tecnologie moderne distribuite si fanno in pochissimo tempo con risultati di molto superiori ad una gestione dedicata (questo è perché Microsoft ha un ottimo sistema come Live mentre gli altri sono ancora a delle proto-piattaforme: Microsoft sa come è fatto un sistema distribuito a servizi di classe enterprise e lo ha semplicemente replicato per la sua piattaforma di gioco).

Si parla addirittura di fare l'offload di task sincroni non criticissimi, come ad esempio le collisioni con l'ambiente, che normalmente non vengono calcolate ad ogni tick, come avviene invece per le traiettorie dei proiettili e la posizione dei giocatori.

Anche solo poter mettere sul cloud la gestione di aspetti secondari per un gioco online come la chat, la gestione dei contatti, elementi di gioco secondari come la posta, le auction house, il crafting, etc.. ha un vantaggio altissmo sui costi di gestione. Anche SOE in piccolo ha una struttura simile per gli elementi secondari dei suoi MMOG e non a caso, tranne Microsoft è l'unica che offre un sacco di servizi web ai propri giocatori, tutti innestati direttamente nella sua piattaforma online. Solo che SOE ne paga la gestione in prima persona e con poche applicazioni è vero che ottimizzi ma non ottimizzi molto.

Qui si tratta di far sincronizzare tutta sta roba ad un attore terzo che più applicazioni ha e più, paradossalmente, riduce i suoi costi di gestione ed i tuoi costi d'esercizio (anche se ho 10 applicazioni che sono a fare qualcosa il 90% del tempo, con quello che rimane ho le risorse per gestire una undicesima applicazione).

Ho banalizzato tutto per far capire il senso generale.
Connesso
Matteo Anelli

Vazkor: "Altro che Apple TV"

Ziggybee

  • Administrator
  • Hero Member
  • *****
  • Offline Offline
  • Post: 8.383
  • Gamer Extraordinaire
    • Mostra profilo
Re: Gaming su cloud computing
« Risposta #12 il: Gennaio 16, 2009, 18:01:10 »

Sembra interessante, ma bisogna vedere come andrebbe gestita... potrebbe essere la cosa più geniale al mondo come quella più inutile dopo la torcia che si carica con la luce
Da quel poco che ho letto in giro sembra che sia un sistema di cluster (server loro che fanno calcolo distribuito) che riceve le istruzioni dall'utente e rispedisce indietro i dati "rielaborati"
Più che altro, Internet non imploderebbe?
Più che internet, per un sistema del genere servirebbe VERAMENTE una potenza di calcolo immane... Come utilizzo di banda non dovrebbe essere esosissimo, avrebbe al massimo una necessita di pochissima latenza (o magari nemmeno?)
Non è vero. Calcola che il criterio minimo per garantire affidabilità in un'applicazione client-server è che tutta la tua infrastruttura sia in idle per circa il 50% del tempo (per gestire i picchi e per essere certo che se qualcosa si rompe non vai in sofferenza). Tu quel 50% lo paghi lo stesso. Un operatore molto grande (come Amazon, Google o Microsoft), possono gestire milioni di applicazioni contemporaneamente con tutte le risorse che hanno al momento. Statisticamente, non è che si romperà sempre qualcosa a tutte, quindi quel 50% che ti garantiscono, in realtà lo usano per far girare altro.

Facebook gestisce gli utenti (ed in particolare le chat) che gestisce proprio grazie al cloud di Amazon.
Connesso
Matteo Anelli

Vazkor: "Altro che Apple TV"

Ziggybee

  • Administrator
  • Hero Member
  • *****
  • Offline Offline
  • Post: 8.383
  • Gamer Extraordinaire
    • Mostra profilo
Re: Gaming su cloud computing
« Risposta #13 il: Gennaio 16, 2009, 18:07:24 »

Sembra interessante, ma bisogna vedere come andrebbe gestita... potrebbe essere la cosa più geniale al mondo come quella più inutile dopo la torcia che si carica con la luce
Da quel poco che ho letto in giro sembra che sia un sistema di cluster (server loro che fanno calcolo distribuito) che riceve le istruzioni dall'utente e rispedisce indietro i dati "rielaborati"

Non è proprio un cluster, in quanto non esiste un'architettura tipica da sistema operativo. In realtà non esiste nemmeno un vero DB. E' più uno spazio di memoria gigantesco, partizionato, geolocalizzato e replicato dinamicamente per ottimizzare al meglio il calcolo e la gestione dei dati. Sicuramente al momento ci sono dei cluster dietro, ma l'idea è quello di essere un non-sistema operativo (che è notoriamente inefficiente e superfluo sui server).

L'implementazione di Google (il googleplex) è simile ad un cluster (ed infatti è molto più costoso da gestire a parità di servizio di quello di Amazon, tanto che, essendo fuori mercato, non è stato ancora reso pubblico per terze parti), le implementazioni più moderne sono... diverse. Non saprei dirti come, nel senso che è proprio "cloud" il termine che rende meglio :)

Per farti capire la portata della differenza, Google gira su un'architettura di server linux opportunamente strutturata per il calcolo parallelo, per questa roba invece si inizia a pensare a dell'hardware a basso costo che permetta di espanderla senza necessariamente dover approntare un server nel senso stretto del termine.
Connesso
Matteo Anelli

Vazkor: "Altro che Apple TV"

Ziggybee

  • Administrator
  • Hero Member
  • *****
  • Offline Offline
  • Post: 8.383
  • Gamer Extraordinaire
    • Mostra profilo
Re: Gaming su cloud computing
« Risposta #14 il: Gennaio 16, 2009, 18:09:32 »

Aggiungo che il cloud di Amazon si limita allo storage ad alte prestazioni.

Mentre Google e Azure permettono di gestire anche attività di calcolo e logiche applicative.
Connesso
Matteo Anelli

Vazkor: "Altro che Apple TV"
 

Pagina creata in 0.019 secondi con 15 interrogazioni al database.