
quando inizia qualcosa che può fare leva
l’ esperienza di tutte le squadre che possono essere
per loro ma non sono limitati da
le loro decisioni di progettazione perché non lo facciamo
almeno a meno che il team non voglia condividere
un codice che iniziano da zero
così quando una nuova squadra inizia, pensa
ok questo è quello che hanno fatto gli altri
le sfide che hanno avuto come possiamo fare
è meglio e questo porta ad un’evoluzione
che è guidato da un team
evoluzione e dimensioni diverse così
ad esempio il vizio della tecnologia abbiamo iniziato
fuori facendo PHP e MySQL sul back-end
questo è solo quattro anni fa, so che lo facciamo
servizio in linea e Scala akka tu
chiamarlo una grande tensione e quello che abbiamo fatto
sono tutti guidati da questi incrementali
passi di una nuova squadra che prova qualcosa di nuovo
e aggiungendolo alla conoscenza del
compagnia e la stessa vecchia scoreggia in realtà
ha iniziato questo stateless molto standard
servizio applicativo nel back-end e
al giorno d’oggi i giochi più complessi
ridurre il carico sul database è a
approccio statico e lo stesso vale per
piattaforma abbiamo iniziato su facebook.com
l’evento su Google+ è andato via e lo sono adesso
su iOS e Android
ma c’è un’evoluzione che voglio
parliamo di oggi e questo è utente
l’interazione è un po ‘come il game design
come possiamo abilitare i giochi più cool che tu
gioca insieme ad altri con il tuo
amici lo stesso gioco più significativo
e come possiamo abilitare questo con
tecnologia e di nuovo ne abbiamo avute alcune
passi nel passato questa è la parte che
Vi dirò circa e poi mi consegnerò
oltre a Patrick nella seconda parte di
il discorso è iniziato molto semplice e
condividere il gioco insieme a Spencer
come vedi quello che pensavano
pac-man ora spero che tu abbia giocato tutti
pac-man almeno conosci il gioco tu
ha giocato è un gioco davvero interessante ma è così
non giocato intellettualmente da solo
l’ unica interazione è che hai un massimo
punteggio e i tuoi amici cercano di battere il tuo
punteggio elevato è questo e in realtà
non risolve il gioco della vita è enorme
successo ma tecnicamente parlando è
non molto più avanzato e pac-man e
dobbiamo giocare a livelli se ne hai uno
segna sì ok c’erano 145 e qui
cosa è stato abbattuto sui miei punti e e
quelli dei miei amici così posso confrontare come
come hanno fatto e puoi anche vedere come
lontano hanno progredito su una mappa così qui voi
posso vedere che l’ oratore di Patrick Merkel è
sto solo suonando al livello 38 e fondamentalmente
succhia nel gioco mi dispiace dire che
non è fatto così e tecnicamente questo è
molto semplice voglio dire questo è il più
simile gola quando suono scrivo al mio
database e una tabella di scrittori che solo
nome punteggio o qualcosa e poi
qualcun altro arriva e legge da
la tabella così la sincronizzazione è facile
perché io ampia la mia roba in qualcun altro
abbiamo scelto semplicemente un po ‘più sofisticato
e questo è anche un approccio molto comune
che abbiamo in molti giochi che giocano
i social network come Facebook è dentro
la situazione della posta in arrivo pensa agli scacchi che hai inviato
invia la tua mossa piuttosto che una cartolina
a qualcuno e qualcuno lo prende
carta e lo applica al suo stato locale
la sua scacchiera
è un gioco a turni in evidenza
Impero che sembra un grande gioco e se
non l’hai giocato hai perso
qualcosa negli anni ’80 e
la civiltà è ancora lo stesso principio
quando gioco in multiplayer, faccio il mio turno e
poi aspetto mentre gli altri studenti
gira così metto il mio turno nella n-box
Re che questo è un gioco che abbiamo
fare così segue lo stesso principio
quando altre persone che sono nel mio villaggio
possono quindi riscuotere le tasse a casa mia
sembra come questo ora qui vedi era un
Cerchia, quindi qui penso che non sia così
ha raccolto le tasse e sicuramente posso
scegliere di accettare o rifiutare queste cose
e quando accetto, applico lì
le modifiche vengono lette dalla posta in arrivo e
applicato al mio stadio ma ho il controllo
del mio stato e lei non può direttamente
influenza che quindi è un sistema molto semplice
ancora di nuovo
quindi come sembro che io faccia il mio cliente e
il bianco nel database è lo stesso
la cosa è l’ unica differenza
un altro giocatore può cancellare direttamente nel mio
stato in un’area separata è un po ‘come
un cubo o a seconda dei dati può essere
tabella del database in modo sostanziale hanno spinto
qualcosa sulla mia indicazione del mio indice e io
saltar fuori ogni volta che voglio ulteriormente
cambia semplice la maggior parte dei giochi in tutto il
giorno e in facebook architettonico tu
coinvolto questo un po ‘il database era un
grosso collo di bottiglia e ora corriamo per lo più su
servizio di applicazione stateful tutto il caldo
memorie all’interno del server delle applicazioni
stesso ma questa parte riguarda la posta in arrivo
sempre lo stesso molto spesso è solo un
semplice database Redis perché funziona io
potrei dirti molto di più su questo come noi
evoluto a cose stateful ma questo
non è lo scopo di questa presentazione, se tu
vuoi saperne di più vai a questo URL
google slash back end e dare caramelle di
presentazione lì sul tema di
hopping fantasma dell’architettura ma andiamo
tornare a detrimento degli utenti, ma tu
volevo davvero avere è reale
interazione qualcuno lascia cadere qualcosa
sul pavimento e lo raccolgo così
di interazione cose che non hai
sopportare il dungeon multiutente ha fatto chiunque
hai mai giocato molto sì, pensa
vai a nord uccidi mostro buono tutte le volte
qui 23 anni fa penso di aver interpretato il
inizio nel 1990 e il mondo discendente di
Warcraft è probabilmente il più
gioco di successo, in pratica la sinistra
uno è nonno di quello giusto così
questo è ciò che riguarda l’interazione reale
e hanno fatto un gioco del genere
fantastica Fox e questo è come sembra
come hai curato molte cose lì e
può anche pescare che è se non puoi
pesce non posso, ma la cosa bella è lui
può anche essere visitato da amici, quindi lui a
amico arriva fammi afferrare quel dardo
ha detto che non me lo porta via
e per voi pescate insieme
quindi come funziona?
qualsiasi browser funziona su qualsiasi
firewall questo è solo un semplice flash
gioco da entrambi tecnicamente parlando
i nostri clienti hanno lasciato entrambe le linee e tu
avere un processo corrispondente all’interno
questo è application server stateful
scritto una linea
e quel processo mantiene il nostro stato e
controlla la connessione avanti e indietro
ma c’è anche un processo condiviso che
gestisce e tiene uno stato
falsificazione in questo caso la bella
panorama che abbiamo visto e il fiume così quando io
fare qualcosa applico il cambiamento a quello
processo di localizzazione e modifica lo stato
modifiche e lei può essere notificata su questo
sito in modo che vada dall’utente
la posizione per utente e quindi indietro e
la cosa migliore è che abbiamo un
back-channel è l’unica cosa quindi
può essere informato dal server per il cambiamento
è successo al mondo e usa HTTP
trasferimento chunked per quello che è il
la stessa cosa che vedi quando ha guardato a
YouTube video il client apre il
socket il server invia alcuni organi vitali ma
non lo chiude e continua a inviare byte
sopra il flusso e questo funziona
magnificamente anche su Internet Explorer
e tutto ciò che è molto meno dolore di
prese di profondità per esempio funziona
e poi puoi fare qualcosa come lui
frigge un pesce e lo do a calci così
c’è il pesce che vado e che afferro
il pesce rosso perché sono un cattivo bastardo
e io tipo di pesce ma lei può così il
cosa complessa con questo tipo di giochi
è quello che se lei ha scelto il pesce al
allo stesso tempo chi ottiene è questo il problema
quindi in quello che abbiamo fatto è fondamentalmente io
avere un approccio in cui il cliente deve
non aspettare mai sul server perché lui
si aspetta una latenza fino a uno o due
secondi in questo tipo di ambiente così
il cliente è molto ottimista, quindi se il mio
cose del cliente posso raccogliere il pesce
lasciami prendere il pesce poi il
il messaggio viene inviato al server ma
forse era veloce e già presa in braccio
il pesce che significa quando il mio utente elabora
vuole provare a tirar fuori il pesce in questo
cantanti per il processo che non ottiene lui
non riescono a prenderlo e lui si ritira e
quindi il cliente deve tornare indietro
tutto quello che è successo prima e te
ritorna indietro perché abbiamo come facciamo
è che abbiamo un blocco locale di tutto
che è stato lavorato prima così ogni
azione commessa dal server
viene messo sul lucchetto e poi torniamo indietro
fondamentalmente inizia l’intera sessione
mazzo l’intera sessione in su fino alla
punta e poi smetti di giocare di nuovo e
questo è come sembra davvero
ci sono voluti 30 minuti per registrare in questo modo
occasione perché non sono due secondi
ritardo ma molto più veloce e così è
molto raro e questo è il modo in cui siamo scappati
con esso ma funziona molto semplice questo
è stato il nostro primo passo nel regno di
vero multiplayer e probabilmente era questo
la tecnologia potrebbe fare qualcosa di simile
Diablo se lo volessi, a meno che tu non lo abbia
cinquemila giocatori ma più come dieci
questo funziona
ora se hai anche fatto una presentazione
uno come funziona all’ultimo dettaglio
anno su tecnologia controllalo se tu
voglio così, in pratica, l’abbiamo visto
potremmo fare vera interazione ciò che noi
volevo fare quando hai tempo in realtà
molto più veloce più come sparare a ciascuno
altre auto da corsa per fare Mario
Kart o Starcraft e questo è il tutto
una specie di gioco diverso molto di più
ospedale di affermazione e il vero problema
dietro c’è un sistema sgradevole
hai molti clienti là fuori minimi
ai clienti dei giocatori ma forse di più
a seconda del gioco e del tuo server
e hanno tutto lo stato divergente
sembra un po ‘ diverso perché c’è
sincronizzazione temporale e cosa viene
attraverso il servizio hai alcuni giocatori
chi vuole imbrogliare
sono in grado di essere in cima agli altri
e devi prevenirli
imbrogliare non è come un distribuito
sistema tutti collaborano ma noi abbiamo
alcune persone che attività per interrompere
il gameplay guadagnando vantaggio così noi
dobbiamo evitarlo e abbiamo il
il problema sembra buono dovrebbe guardare
bene sapere che compensazione non come oh
Creo il Serpente più scuro del
secondo dato sembra intendo che tipo
del gioco sarebbe accaduto sarebbe divertente
quindi c’è un sacco di informazioni fuori
c’è un mondo così fantastico per esempio è un
angolo in alto a sinistra
apriamo ora l’open source per poterlo guardare
il codice sorgente e ci sono molti blog
post di come l’hanno fatto ed è davvero
roba fresca e aspetto divento
contro-scioperare hanno un bel colpo
wiki spiega piuttosto come hanno fatto le cose
soprattutto a livello di rete Age of Empires
blog post davvero interessante, penso che sia
chiamato 1500 Arthur su un ventotto
punto otto kilo bit modem o qualcosa del genere
come quella
ed è davvero un problema perché come te
affermano che hanno migliaia di unità come
sincronizzi questo e anche tu con alone
lezione davvero anche in presentazione da
una volta di Game Developers Conference come
loro spiegano come fanno le cose e lui
anche giocato con questo e noi eravamo
abbastanza difficile costruire difficile tale
gioco finché possiamo contare su un decente
report della rete a bassa latenza di
la rete non ha troppi pacchetti
perdita e nessun jitter quindi tutto
senza problemi sì, ce n’era solo uno
problema
abbiamo spostato l’attenzione sulla nostra azienda per entrare
più compagnia quindi tutti i giochi erano ora
Sviluppare su dispositivi mobili per prima cosa facciamo tutto il gioco
file di sviluppo prima e media mobile
3G così prima che il dispositivo si connetta al
la connessione Internet è veramente veloce
a larghezza di banda limitata 3G e 3GS
soprattutto sul caricamento che significa non così
buon ritardo e vederlo come circa 100
millisecondi semplicemente non parliamo solo
perché è lì che abbiamo un sacco di
perdita di pacchetti quando ci si sposta da uno
Centro a un altro o se sei su un
stadio con 5.000 altre persone come
probabilmente ora hai un fusibile con Fuji
divertimento
e hai un sacco di jitter
tuttavia abbiamo detto che volevamo farlo e
lo facciamo lanciando una squadra e
lasciando che la squadra costruisca un gioco e poi
vediamo se possiamo farlo, così abbiamo deciso di farlo
un gioco che si chiama Banamine che qui
conosce i modi Bangla
quindi fondamentalmente più giocatori sulla mappa
Oliver sul lancio di bombe che hanno le ossa
ragioniere di un secondo o così quando
esplode e uccide il giocatore grande l’ultimo
spazio in piedi e la cosa bella è
un secondo count’em di una bomba che è un
davvero un bel modo per contrastare il collo, quindi come
abbiamo fatto quel Patrick per favore diccelo
ciao non va bene, va bene a tutti
sentirmi eccellente quindi sì abbiamo istituito a
crea il gioco in stile Wonder Man per
mobile e volevamo solo vedere se noi
può farlo perché non avevamo mai fatto tale
una cosa prima di ciò che vede ora
qui è ancora la lobby dove facciamo il
matchmaking quindi anche questo deve essere in a
modo casuale e così il
quindi abbiamo reso possibile ciò che penso sia
ancora giocabile nella mia esperienza anche
la latenza equivale a un minimo di 400
millisecondi siamo davvero molto bravi
Proverò una cosa dopo aver parlato se riesco a ottenere
per funzionare con il GPS qui vedremo
a tale proposito , come lo abbiamo costruito?
per prima cosa ho fatto molte ricerche perché noi
non ho mai costruito una cosa del genere e tu
non sapevamo come farlo e ci sono
vaste risorse là fuori e tu sei
cercando di capire cosa fai davvero
dobbiamo fare non abbiamo tempo per investire
come un anno o più in arrivo con tutto
quelle pazze soluzioni e quadri così
dovevamo andare rapidamente avanti e avanti
Posso dirti che è possibile così noi
non ha fatto tutte queste cose che
è quello che volevamo fare e noi
ha fatto piccoli passi
quindi, solo per capire cosa stiamo facendo
cosa dobbiamo cambiare dal monitoraggio
a quello successivo e questo non è scientifico
grafico è un grafico scientifico molto pop
ti dico solo che puoi andare lontano
modo nel gioco multiplayer senza fare
le cose super complesse dall’altra
mano se vuoi far piacere ai tuoi utenti
raggiungi un punto in cui devi aggiungere
più complessità ma normalmente accade
alla fine quindi diamo un’occhiata al primo
prototipo che abbiamo costruito da zero
e ha avuto questa struttura molto basilare
ancora fatto dai clienti il server il
i clienti si auto- sposterebbero e si sposterebbero
commenti sul server e
il server li inoltrerebbe a tutti gli altri
clienti e anche memorizzarlo internamente e
allo stesso modo in cui piazzerai fattorie e
ma e poi il server direbbe al
clienti che una bomba è esplosa così per favore
nota che inviamo solo in giro
comandi e non stato e non c’è
sincronizzazione qui per qualsiasi cosa
il gioco per risincronizzare e poi tu
servire alla fine decidiamo il game over
quindi, come abbiamo creato per il TCP
antipasti perché è facile e da ottenere
e TCP fa un sacco di cose come a
protocollo e volevamo solo farlo
molto rapidamente senza occuparsi di UDP
e i problemi dei verdi e usiamo
l’acuto di strizzacervelli non sembra molto
approccio tipico per un gioco multiplayer
soprattutto se si lascia leggere il
letteratura ma era vicino a noi no
la cosa più semplice ma una cosa facile da fare
ottenere qualcosa di lavoro e si scopre
ha funzionato molto bene sul Wi-Fi locale Wi-Fi
e anche su internet se tu avessi un
davvero buona connessione internet quindi
verificare il concetto di Bomberman che era
abbastanza buono
tuttavia su 3qi non ha funzionato, no
lavorare affatto e soprattutto sui nostri CTO
telefono cellulare penso che lo chiamo iPhone di
rovina perché riesce a far esplodere la rete
condizione in qualsiasi momento nel tempo desiderato
accadere e uno dei motivi di
fase II è un problema è chitter
non in latenza ma anche in larghezza di banda
la giusta profondità è un cambiamento costante in
larghezza di banda e latenza che avranno acceso
una rete mobile è condivisa
risorse dipende da una distanza da
tu alla torre cellulare quante persone
lo stanno usando quale protocollo sei tu
permesso di usare hai consumato tutto il tuo
dati mensili di coulomb devi cadere
indietro e lei Paris tutte quelle cose
pacchetti di caduta a destra la perdita di pacchetti è un grande
problema e quindi per cosa fa TCP
noi per aiutare che sta rinviando il
messaggi in modo che i pacchetti di rilascio possano essere
consegnato e anche li sta ordinando
perché in questa architettura abbiamo avuto
l’ordine è in realtà molto importante però
che ogni giorno è arrivato, in realtà c’è
un problema in decibel con l’ordine DeWitt
l’architettura è ma in generale quello
scoppiasse e ci proverebbe anche
ottimizzare per larghezza di banda e velocità di invio
l’ algoritmo giusto così male andrebbe e
prova ad ottimizzare la tua larghezza di banda al
spesa di latenza che non è credibile
cosa vuoi avere in questo tipo di
gioco non puoi spegnerlo
con TCP nessun ritardo come impostazione e anche
controlla la velocità di invio quanto è veloce
andando a censurare non lo farà
traboccare l’altro link quelli sono molto
buone caratteristiche di TCP ma non proprio cosa
vogliamo soprattutto in questo ambiente
con pacchetto alto anche così uno dei
fatti divertenti il costo che è quando
i pacchetti non verrebbero ricevuti da a
cliente per un periodo di tempo
per esempio, io vedo sì / sto giocando a questo
in alto a destra e pochi secondi
dopo tutto ad un tratto si deforma tutto il
modi attraverso lo schermo come il milione
dollaro, allora sai bene qualcosa
è rimasto bloccato nel modo in cui potevano ottenere
peggio su reti veramente instabili lo era
appena riproducibile perché le funzionalità del PC provano
fare la sua connessione magica con il
risultato che nulla quindi abbiamo dovuto risolvere
quel problema e se hai bisogno di leggere il
per un sacco di forum che si vede bene che si
ripeti la cosa che devi fare
okay in tempo reale avremmo voluto provare
è UDP che mantiene questa corrente
infrastruttura che è completamente
comando incolla e rispondendo al grande
domanda che ho avuto possiamo prenderti
lavoro ripetuto su reti 3G non l’ho fatto
scoprire le risorse su internet
che in realtà dice sì, puoi farcela
funziona perché anche loro devono lavorare
in entrambe le direzioni, a destra invia il cliente
informazioni al server e il server
risponde anche su un diverso porto di
ovviamente attraverso UDP e tu no
sapere se ci sono dei firewall t di
il tuo fornitore di dati supporta questo o
non se lo sta lasciando passare o no
quali sono le regole del firewall, quindi non l’abbiamo fatto
sai che si voleva mettere alla prova solo su e
per darci un senso di perdita di pacchetti e di
fare esperienza nello sviluppo della nostra
protocollo mutuo che abbiamo deciso di implementare
comanda TCP che è a proposito a
copia completa in carbonio di Glenn Fiddler’s
Catherine Gamescom descrizione su come
costruisci qualcosa del genere così abbiamo iniziato
aggiungendo la numerazione delle sequenze, così faremmo
conoscere l’ordine a volte ci sarà solo
decidere di lasciarli e anche un modo di
riconoscendo con un campo colonna che
è un numero intero a 32 bit che utilizza una bitmap
solo per capovolgere bit come a1 se lo avessi
se hai il numero di pacchetto 30 e il
il primo bit è capovolto, si direbbe bene
hai ricevuto il pacchetto precedente degli anni ’30
giusto in modo da poter dire quale specifico
numero ma solo il precedente 31 e
poiché usi monotonicamente l’aumento
numeri ti dà un senso di bene
qual è questo pacchetto riconosciuto nel
l’ultimo 30 master se non lo fossi tu probabilmente
non importa in questo scenario, quindi noi
toccherebbe e dovremmo aggiungere un ID utente così
questo ci permetterebbe di sopravvivere alla rete
cambia perché normalmente quello che fai è
usi la combinazione di indirizzo IP
e la porta remota per identificare il plagio
tuttavia se il tuo lettore sta passando
reti e cambiato il suo indirizzo IP se
non più non sai più chi loro
sono se ammettono di giocare così da
aggiungendo un ID utente come un ID di sessione
sai che è buono anche l’utente
interessante rete di template ball
ordina come il piccolo endian big-endian
importa a causa di una cosa una mattina
capirlo perché su Erlang eravamo
Là ordine di rete facendo cose e il
clienti per fare cose dentro
little-endian e questo ti causa
problemi se usi numeri interi errati
modo in giro
quindi diamo un’occhiata a quali date abbiamo fatto
ordinando sì come pacchetti di conoscenza sì
in una certa misura presentare pacchetti
nessun controllo di flusso nessun controllo di congestione
nodo e posso dirvi che ha funzionato
finora ciò che abbiamo testato da noi abbiamo testato in
Germania un po ‘nei Paesi Bassi
Ho provato solo mezz’ora fa fuori
del centro congressi così sembrava a
ho lavorato anche qui e pochi altri
paesi non posso parlare da tutti i discorsi
fornitori ma generalmente funziona in modo equo
bene però il gioco stesso funziona UDP
il gioco stesso
no nemmeno sul Wi-Fi giusto è malvagio
è solo il mio libro di esercizi sul discorso II
dimenticatene, per quale motivo?
sono ancora allo stesso pacchetto di problemi
perdita e se si guarda al protocollo
che stai solo in piedi
comandi e e mai stato e non c’è
nessuna sincronizzazione integrata in tutto il
i clienti a venire allo stesso concetto che
tutti vedrebbero qualcosa di completamente
diverso
hai avuto uno stato incoerente su tutto il
posto così dopo per un gioco competitivo
come la dinamo
questo è il risultato peggiore
possibile che potremmo anche solo non costruito
un gioco a tutti
quindi proviamo a risolvere ciò e il più semplice
cosa potrei venire dalla lettura
la letteratura era ben usata solo noi
aggiornamenti di stato quindi il server ora
avere un eights particolare e inviare lo stato
aggiornamenti ai clienti e al cliente
devono inviare le loro comandi al
server così in questo modo possiamo sincronizzarci
e in realtà invieremo lo stato completo
aggiornamenti
dieci volte al secondo che suona un po ‘
ormai eccessivo per cui vorresti mandare
aggiornamenti di stato quando potevi solo inviare
Delta aggiorna ora che la cosa è io
volevo averlo fatto velocemente e
capirlo e quindi abbiamo fatto un po ‘di
la matematica e io ero preoccupato che la fine per te
l’ unità di trasferimento massima sarà a
problema quindi T potrebbe iniziare l’IP Lee
frammentare nuovamente i miei pacchetti perché
prima che il TCP si prenderà cura di questo
ma lo faresti se non fosse così, l’ho fatto a
un po ‘di matematica si scopre che potrei
si adatta in tutto lo stato mondiale del mondo dei bombardieri
in meno di 1500 byte bene devi
sottrarre le intestazioni IP e UDP ma
sarebbe bene sotto quello che ti serve
per bordo quindi andava bene
quindi è nel tuo client di architettura
inviando i loro comandi al server
il fagotto li applica ai suoi
Stati autorevoli e poi manda su
gli aggiornamenti a tutti i client ma questo
succede circa 10 volte al secondo da
il server ma anche circa 10 volte a
secondo dal cliente perché questo
accade a velocità di camminata del tuo Bombur
uomo nel modo in cui abbiamo costruito il gioco è
circa 100 millisecondi che impiega
andare da un campo a
e risultato con il gameplay stesso
ha funzionato molto bene e lo eravamo davvero
felice intorno ad esso ne aveva ancora un po ‘
problemi perché abbiamo avuto a che fare con un
nuovo concetto che il cliente doveva fare
interpolazione tra fotogrammi proprio così
continui a ottenere cornici per cornici
ed è necessario capire bene cosa
è successo qui qual è il prossimo qual è il
differenza tra ciò e ciò di cui ho bisogno
animare e se farai cadere una bomba
e poi nei prossimi pochi si afferma
non sarebbe lì che hai dovuto rimuovere il
bomba dal cliente perché il cliente
quello ottimizzerebbe per uso di usabilità a
concetto chiamato previsione del cliente, quindi cosa
lo fai se metto a riposo te ne vai a sinistra
ma non si non si aspetta fino a quando il
riconoscere dal server che
in realtà camminava a sinistra perché se tu
attenderei prima di 200 millisecondi
in effetti fai la mossa che vorresti fare
gameplay davvero choppy in modo che non lo fa
sembra molto buono, quindi ottimizzi su a
cliente cosa significa se il tuo pacchetto
perduto devi correggere per questo
in seguito quindi ci sono alcuni problemi
dobbiamo occuparci di risolvere questo ma
nel complesso è stato un enorme miglioramento
comunque il nostro gioco principale era rotto così
recupero di punteggi alti durante la registrazione
out livellamento della tua lega cambia
il tuo nome utente tutte le cose su UDP
senza affidabilità integrata era
completamente rotto quindi abbiamo dovuto affrontare
quello dopo così il gioco di architettura
giocando lo stesso abbiamo mantenuto quello tuttavia noi
guardato il sistema abbiamo fatto un passo indietro
e ho pensato bene cos’altro da parte
dal gameplay abbiamo e così noi
avere matchmaking e punteggi alti e
cambiando i dati utente il nostro login e cose del genere
come quello e il giorno l’avrebbero idealmente
essere come una comunicazione affidabile
protocollo non mi piace quello che non voglio
costruire TCP personalmente che sarebbe pazzo
per questo progetto, perché dovrei anche preoccuparmi?
per fare questo quindi ci sono due distinti
cose che abbiamo trasmissione affidabile e
altra trasmissione affidabile
e non hanno nemmeno allo stesso
tempo giusto o sei in questo mondo
di comunicazione affidabile o su questo
mondo che gioca al tuo livello
quindi è ortogonale molto ortogonale a ciascuno
altri così gentili che siamo andati così
lo ha fatto in HTTP, non giocando nemmeno
TCP perché di nuovo è stato facile è molto
HTTP ben compreso all’interno di un’azienda
e ti dà già un protocollo come
per richiedere dati come pubblicare i dati che sono
Parlare qui riposa e va bene
con Jason e ce ne sono in abbondanza
biblioteche e non devi venire
con il protocollo di comunicazione in cima
di TCP come organizzi i dati su come tu
parlare tra loro e anche in forma
ben nella riorganizzazione di come il server
è stato costruito prima che fosse solo uno
a volte c’era un grosso prototipo di grumo
c’erano alcuni readie lì e
C’era un po ‘che vedo colander me che
si sta muovendo molto velocemente e questa volta
ha preso il tempo e sorta di riorganizzato
di nuovo le cose e si adattano bene
quindi il server è integrato
Erlang e quindi potresti costruire distinti
per i servizi aerei di cui si parla UDP
una logica di gioco e correre a Wunderland
processo in esecuzione di un gioco e sul
altra mano su HTTP fai il
abbinamento matchmaking di giocatori con
altri giocatori per cambiare i dati dell’utente
registrazione degli utenti che registrano l’utente in
registrazione degli outs dell’utente
consegnando i punteggi più alti calcolando
le foglie sono come quelle che saranno
sul lato HTTP delle cose e in ordine
per migliorare la larghezza di banda abbiamo deciso di muoverci
lontano da JSON e anche il nostro attuale
dati di gioco che vengono consegnati all’interno
il gioco per essere binario e così abbiamo preso
l’intestazione che avevamo già dalla nostra
Connessione virtuale UDP anche conosciuta come
prima intendeva il PCC e avevamo il carico utile
anche in binario e qui è il
riferimento questo è per i due giocatori
giochi David un paio di bombe abbiamo finito
con 180 byte come quello pagato per a
stato di gioco completo di una parola completa per
gioco così ho avuto 136 byte
e quindi se fai il messaggio di matematica 10 è
un secondo dal server ai tuoi clienti
come all’incirca un punto cinque kilobyte
al secondo e quindi sì, il mio passato
il mio primo modem era un modem 56k che
in realtà ha un rendimento di sette
kilobyte al secondo quindi sul letto
accanto a me penso che siamo dalla parte giusta
quindi nel complesso ciò ha migliorato il nostro gameplay
anche meglio ancora perché ora potremmo
a volte anche giocare con GPRS
connessioni avremmo una pessima fantasia
ricette più economiche equivalenti approssimative 256
consigli di kilo in termini di standard, quindi come
siamo in tempo 10 minuti
Guinea – ok vado per cinque tutto bene
le cose più importanti che facciamo sono noi
rendere i nostri giochi semplici e facili
capisci così non devi essere un
hardcore gamer per capire i nostri giochi
e il matchmaking di oggi è dove ho giocato
di solito giocava a contrattacco tutto
devi capire il server ma
arrivi ad altri server allora hai
scegliere un server dove vuoi
gioca e loro devono assicurarsi dell’altro
persone che giocano o non possono godere posso
vattene – faccio il mio server per fare il mio
proprio gioco di sorta e poi sono persone
venendo fuori c’è molto
conoscenza della sincronizzazione coinvolta e
noi non vogliamo fare quello che vuoi
fallo solo un tasto “chiavi in mano”
giusto così il primo matchmaking come noi
abbinare gruppi di giocatori a giocare
l’ uno contro l’altro era solo una coda FIFO
le persone entrano se è per iniziare una partita
le persone entrano in sit per il gioco iniziato se
sono solo le due che aspettiamo forse per 10
secondi se nessuno entra , iniziamo a
gioco ma non c’è logica in esso
ottimizzazione per brevi tempi di gioco o
ottimizzando le competenze quindi se lo sei
sfortunato ti capita solo di giocare contro
le persone che stanno attualmente giocando
ma perché fanno clic sul pulsante al
stessa ora non perché ci sono i migliori
partita per giocare contro di te giusto così noi
doveva venire con una soluzione per questo
triangolo che proveniva dal prodotto che era
vogliamo avere quattro giochi tutti i
tempo che costa
deve abbinarsi al meglio in termini di abilità
che sono perdite di punti esperienza xxp e
altri numeri che ho dimenticato in questo momento
e anche il tempo così che ha fatto l’attesa
tempo per l’aereo di darci del
eccezionalmente breve questo autunno e dopo
un po ‘di complicazioni abbiamo trovato la base
struttura dei dati e algoritmi di base
per farlo è chiamato gerarchico
il clustering è una serie di algoritmi che
puoi usare dove costruisci una piscina
costruisci un albero e trovi gli elementi
che sono simili tra loro usando a
funzione di distanza in modo da poter definire
certo la distanza parla da solo
per noi era un misto tra
esperienza punti là la lega di
le sfide settimanali quindi sei nel
maestro o nella lega del debuttante o NH
Anjali
così xB Challenger League e ad esempio
posizione potrebbe essere pure
b1 e anche il tempo lo chiamo disperazione
fattore perché più a lungo lo aspetti
più si avvicina a tutti perché
allora dovresti essere in grado di giocare contro
altri, perché se non lo facciamo
per esempio giocatori davvero bravi
completamente morire di fame in un principiante
torneo perché non potevano giocare
contro chiunque se non aggiungessi
il tempo come un altro fatto per questo perché
avrebbero dovuto essere un terribile
partita per tutti gli altri erano solo
siediti lì da solo mentre tutti gli altri
starebbe giocando così il tempo è importante
fattore anche qui , quindi passiamo attraverso
brevemente a un’iterazione che avresti
in coda poi andiamo
abbiamo costruito questo albero un paio di volte a
in secondo luogo e ricostruire questo albero e provare a
trova le partite e programma quelle partite
Sì, penso che questo sia effettivamente ordinato
sono entrati
Penso di sì sì e così tu fai il
iterazioni programmate per il lancio
e quindi l’atomo due gruppi è
programmato per il lancio e quindi si tenta di
lancia quel gioco del problema
Ovviamente nel frattempo i perdenti vengono e
andare tutto il diritto tempo e alcuni di loro
timeout e così via in una metropolitana in a
tunnel qualunque cosa così che cambia
costantemente, ma questo è come lo fate in
molti passaggi tutto il tempo che
accidentalmente capita anche di essere nel nostro
collo di bottiglia nel gioco il matchmaking
quindi allora hai una partita, allora lo dici
tutti i clienti per iniziare un gioco un dato
tipo II del server di gioco e del gioco
ID e poi passano a UDP e
avvia il gioco su UDP e torna a
GP sì, questo ha migliorato il nostro matchmaking
drammaticamente abbiamo fatto ovviamente diversi
iterazioni armeggiare nei grafici quanti
quattro giocatori due giochi e tre giocatori
gioco dei giocatori che avevamo così abbiamo potuto vedere come
abbiamo ottimizzato ogni volta cosa ha fatto anche lui
era giocare con gli amici quindi se la città noi
disperatamente potrebbe posare hit play local
pulsante e chiederebbe di chiedere
usa le nostre coordinate GPS per inviarlo al
server e potrebbe giocare contro yes per
giorno su Internet, quindi è un altro
modo di fare quel caldo Wi-Fi che è
usando la sovra-serving usando il GPS così
debuggando questa piccola cosa che ho costruito
per noi per essere meglio in grado di
eseguire il debug del gioco in modo da poter giocare il gioco
sul client terminale è una pila completa
integrazione in modo che comunichi HTTP aiuta
tu HTTP l’ UDP e puoi usare il tuo
tastiera che simula fino a quattro giocatori
quindi questo è davvero buono anche per il
sviluppatori client ma volevano
sviluppare una nuova funzionalità di cui non hanno bisogno
due iPhone hai solo bisogno del tuo simulato
un iPhone e tu simuli l’altro
i giocatori sulla tua tastiera usando il tuo
client terminal che è molto carino per
anche tu puoi usarlo per svilupparlo
BOT per vedere come si comportavano i miei robot
queste barche vengono poi utilizzate per
test di integrazione e prestazioni
test in modo da poter avere pienamente
BOT integrati Ho usato quello per questo come
bene e in realtà è scritto in Erlang
e maledice in Erlang in modo da poter costruire
i tuoi occhi in Erlang esattamente e ciò che era
Ho detto sì e l’abbiamo anche usato
assicurati di sviluppare più BOT nel gioco BOT
che abbiamo scritto così potremmo
riempire i giochi che non devi mai giocare
da solo avrebbe sempre giocato contro
qualcuno e io posso darti che tu abbia fatto questo
una bella sfida prova a capire come
per costruire nuovamente un vaso per mamma abbiamo iniziato
molto semplice ho appena scritto la sopravvivenza
BOT che proverebbero a non morire ma
venire con buone strategie e
gli edifici come bot sono molto interessanti
sfida e mi è piaciuto
e un altro strumento utile è la rete
condizionatore di collegamento in cui è possibile tipo di
simulare quella rete di rete
condizioni ma un’altra opzione sarà
solo per usare i nostri sitios ho trovato ma quello
funziona solo e lui lo sta usando, no
sai perché quindi devi essere in ordine
delude il mio co-presentatore e questo è su iOS
a sinistra se hai uno sviluppatore
account è possibile attivare questo e il
altro che devi scaricare da qualche parte
dal sito web di Apple così stessa cosa è in
Erlang login della nostra shell remota in lingua
al server che controlla cosa sta succedendo
funzionalità straordinarie in tempo reale che si ricaricano
codice da 200 giochi sono in esecuzione senza
interrompendo quei giochi è molto
potente funzionalità nelle tue linee che io
non so da molte altre lingue e
puoi farlo e il built-in
monitoraggio di Erlang VM
perché abbiamo ottenuto che le streghe VX funzionassero
e quindi puoi solo Rheem e tutto il
audio grafici fuori fino al vostro locale
macchina e vedi cosa succede dentro
la tua macchina e poi ci siamo fatti prendere dal panico una volta
perché pensavamo che avremmo usato anche noi
molta larghezza di banda nel nostro gioco si rivela lui
erano i widget 2vx che causavano tutto il
cattiveria e l’ ha spento è stato il prossimo
a nulla
così il segreto è tornato a casa così è stato
sì, un passo successivo per noi un solo gioco
provare qualcosa e aggiungere
qualcosa che sappiamo ora sappiamo
come ci sono i limiti e come
gestire il 3G quindi penso che abbiamo finito
livello, ma non lo abbiamo davvero padroneggiato
Penso che lo rivisiteremo e allora
La squadra di Patrick ha fatto stava aggiungendo
qualcosa di evoluzione verso il meglio
usando i giochi direzionali ma non lo siamo
c’è ancora così adesso ne abbiamo ancora due
i giochi in esecuzione ancora una volta è tutto così
Patrick non sta lavorando a un monitoraggio
gioco hanno requisiti ancora più elevati
per quanto riguarda la latenza, quindi niente bombe con
conti alla rovescia ma davvero come ritmo veloce
azione che in realtà è già un grande
gioco e abbiamo anche un altro gioco in esecuzione
su dove lo stato non si adatta a 200
byte ma è più simile a molti kilobyte
grande quindi hai bisogno di cose completamente diverse
modelli di sincronizzazione perché sei
non è in grado di inviare oltre il quattro pieno
stato, ma stiamo ancora lavorando su questo
non sono ancora completamente lì, quindi questo è
probabilmente una storia da raccontare l’ anno prossimo come
per ora hai qualche domanda che abbiamo
qualcosa sull’app, quindi sul primo
era se ogni squadra inizia da zero
con tecnologie diverse non te
perdere molto tempo reinventando lo stesso
le cose più e più volte è una buona cosa
domanda um sì no, dipende così no no
veramente
quindi in realtà non andiamo completamente
pazzo solo provare cose nuove le
le prime cose sono quelle persone che hanno costruito un
sistema devono eseguirlo e loro tutti
non devo nemmeno allenarmi a
sostituzione se vogliono ruotare a
la prossima squadra in modo da prendere questo in
considerazione è solo rende sicuro
questa è la responsabilità del
le app della squadra non diventeranno completamente pazze
e anche guardarsi intorno a tutti gli altri
fa e quali sono le competenze del resto del
aziende così che tipo di limiti simili
anche questo è ciò che usiamo molto
spesso come idee quindi non stai iniziando
da zero Todd completamente così giusto
digitando e il codice probabilmente qualcosa io
l’ipotesi mi ha fatto per settimane all’inizio
ma in seguito non si può andare a punti
qualcun altro hey hanno fatto un bug loro
dovresti risolverlo no hai compilato il codice
questo è il tuo bug che devi risolvere no
aspettando qualcun altro così a lungo
eseguirlo rende la velocità di sviluppo di
ogni squadra è più affidabile e
team di sviluppo la velocità di sviluppo
delle squadre non declina quando noi
aggiungi più squadre e adesso siamo
venti squadre che corrono in parallelo se tu
dovrebbe coordinare uno contro uno
piattaforma e ognuno di loro deve circa
cambiare le richieste su come aggiungere qualcosa
ci sarebbe un incubo quindi questo è un
bilanciare ciò che facciamo non è perfetto ma
funziona per noi perché lo facciamo molto
giochi separati e puoi andare via
da così così lo facciamo e abbiamo te
facendolo
Immagino che tu faccia progredire la tua tecnologia
facendo così perché se lo hai
piattaforma condivisa a cui sei testimone di essere
attaccato con esso e la gente sarebbe
esitante facciamo questo PHP sul mio schermo
probabilmente una domanda di sicurezza come puoi
fidati dei clienti dipende dal gioco
dipende molto dal gioco
dipende dalla motivazione su come imbrogliare
quindi per questi giochi distribuiti molti
cose così tante cose che puoi fare è
qualcosa come server di crittografia per
esempio puoi renderlo più difficile
tradire il cliente ma alla fine se
vuoi rendere un sistema davvero sicuro
devi avere la piena logica sul
server e sapere cos’è il client
sta facendo devi replicare sul
server e questo significa doppio
implementazione della logica anche un’altra
squadra lo stanno facendo solo condividendo
codice o qualche gioco con un obiettivo-c
e compilare quell’oggetto è protetto da
riscrivere alcune delle classi base che penso
questo è basato su LLVM in modo che lo stesso codice
può essere eseguito sul server e può essere validato
la battaglia completa così nel
non ti puoi fidare del cliente mai per
alcuni giochi non è importante
abbastanza per affrontarlo ma per se ne hai bisogno
per essere sicuri di dover replicare il
la logica sul server non c’è modo non lo farà
va bene
perché non usare WebSockets per quanto riguarda WebRTC
il tuo approccio è possibile solo su nativo
clienti o puoi avere accesso a gustosi
comunità usando qualcosa come PhoneGap
o bozzolo j / s oh questo è molto, quindi questo
era una domanda penso che gli ultimi due
sicuramente andrei da te forse uno
che usiamo per primi non ne abbiamo molti
mm web stuff in questi giorni, quindi non l’abbiamo fatto
considera WebSockets come hanno
costruito una versione multiplayer di diamante –
che è un gioco match 3 usiamo quello
costruire WebSockets ma a tale riguardo
sapevamo che saremo tutti solo in esecuzione
dispositivi mobili in esecuzione nativamente quindi noi
scelto gli strumenti per essere in grado di usare
nativamente che potremmo usare in modo nativo e
abbiamo il maggior controllo su onestamente
Non ho mai usato web RTC appena letto
su di esso non si può, ma il principale
la risposta è che le nostre cose sono per lo più in esecuzione
in modo nativo e non abbiamo mai avuto il
requisito di poter giocare anche a
gioco in un browser, così anche noi
questo gioco di corsa è una pesca fantastica
da noi avevamo eseguito un test WebSocket così
fondamentalmente abbiamo piggybacked il molto piccolo
Cliente WebSocket su Venezia, abbiamo solo
gioca per il gioco così ha disperato questo
per alcune centinaia di migliaia di giorni e il
lavoro per ottenere alcuni dati reali e penso
dal 92% dei giocatori ha funzionato davvero
bene e per il 97 °
un po ‘ ok e per il 3% non l’ha fatto
lavoro affatto ma quello era un test che hai fatto
nel 2012 ma ci ha fatto sentire bene
le mappe vanno bene, ma alcuni trasferimenti
solo più affidabile, quindi siamo andati per quello
un’altra domanda qui così con rispetto
al gioco del pesce
perché non hai costruito un lavandino /
questo meccanismo invece di avere due
i giocatori prendono la stessa cosa nello
stesso tempo in realtà SS nel
presentazione di cui ho parlato di cui abbiamo parlato
questo quindi il primo approccio che abbiamo fatto è stato
più come un approccio pessimistico sul
clienti o hanno un po ‘ come il consenso
Voglio dire che la cosa sono i clienti
non possono parlare tra loro così hanno
parlare al server quindi la prima cosa
era fondamentalmente trovare alcuni contenuti sul
server e quindi ricontrollare che sarebbe
introdurre la mancanza nel gioco che fai clic
qualcosa e poi aspettare per il
rispondi e non vuoi accettarlo
perché l’usabilità reale in questo
usabilità significa niente giocatori senza soldi
nessuna compagnia quindi la seconda cosa è allora
e effettivamente implementarlo è una specie di
come schizofrenico
è un po ‘come quei clienti erano
ottimista nel fare questo e quando è stato
aggiunto e conflitto vorremmo dividere mondi
e ognuno vedrebbe il loro mondo e
in realtà aveva implementato quello che è
davvero bello per il lato client ma è così
è stato tenuto a implementare e mantenere attivo
il lato server quindi alla fine abbiamo saltato
è arrivato a questo perché era giusto
la cosa più semplice da fare per farlo funzionare
e meccanismi di condensazione c’è a
progetto in corso in background sono
chiamato Locker quale gioco sincrono
gli stati sono quali giocatori stanno giocando
su su quale classe quale nodo nel
cluster ne avevamo abbastanza di contenuti
appeso lì ed era abbastanza complesso
già
tutte le altre domande sono tutte le
domande che sono arrivate
So che era a lei come a posto
notare questa versione di questo era già
eseguendo la versione binaria di esso va bene così
nessuna traccia più c’era un
punto intermedio in cui vorremmo g-sib
inseguendo un po ‘un po’ ma no
inseguito più penso proprio ora lavorando
un giocatore addirittura o sorseggiare binari per ottenere
in questo momento penso che da a
certo punto su Jason è troppo grande per fare
qualcun altro sì, è molto buono
punto a questo punto non lo siamo oh
scusa si, ma noi per il matchmaking noi
utilizzare la latenza della connettività del client
per il matchmaking e la risposta è no noi
non farlo, ma questo è un ottimo punto
era il nostro programma, ma sai come
è se i prototipi andate così
basta muovere su questa cosa stasera
ok grazie mille
l’ esperienza di tutte le squadre che possono essere
per loro ma non sono limitati da
le loro decisioni di progettazione perché non lo facciamo
almeno a meno che il team non voglia condividere
un codice che iniziano da zero
così quando una nuova squadra inizia, pensa
ok questo è quello che hanno fatto gli altri
le sfide che hanno avuto come possiamo fare
è meglio e questo porta ad un’evoluzione
che è guidato da un team
evoluzione e dimensioni diverse così
ad esempio il vizio della tecnologia abbiamo iniziato
fuori facendo PHP e MySQL sul back-end
questo è solo quattro anni fa, so che lo facciamo
servizio in linea e Scala akka tu
chiamarlo una grande tensione e quello che abbiamo fatto
sono tutti guidati da questi incrementali
passi di una nuova squadra che prova qualcosa di nuovo
e aggiungendolo alla conoscenza del
compagnia e la stessa vecchia scoreggia in realtà
ha iniziato questo stateless molto standard
servizio applicativo nel back-end e
al giorno d’oggi i giochi più complessi
ridurre il carico sul database è a
approccio statico e lo stesso vale per
piattaforma abbiamo iniziato su facebook.com
l’evento su Google+ è andato via e lo sono adesso
su iOS e Android
ma c’è un’evoluzione che voglio
parliamo di oggi e questo è utente
l’interazione è un po ‘come il game design
come possiamo abilitare i giochi più cool che tu
gioca insieme ad altri con il tuo
amici lo stesso gioco più significativo
e come possiamo abilitare questo con
tecnologia e di nuovo ne abbiamo avute alcune
passi nel passato questa è la parte che
Vi dirò circa e poi mi consegnerò
oltre a Patrick nella seconda parte di
il discorso è iniziato molto semplice e
condividere il gioco insieme a Spencer
come vedi quello che pensavano
pac-man ora spero che tu abbia giocato tutti
pac-man almeno conosci il gioco tu
ha giocato è un gioco davvero interessante ma è così
non giocato intellettualmente da solo
l’ unica interazione è che hai un massimo
punteggio e i tuoi amici cercano di battere il tuo
punteggio elevato è questo e in realtà
non risolve il gioco della vita è enorme
successo ma tecnicamente parlando è
non molto più avanzato e pac-man e
dobbiamo giocare a livelli se ne hai uno
segna sì ok c’erano 145 e qui
cosa è stato abbattuto sui miei punti e e
quelli dei miei amici così posso confrontare come
come hanno fatto e puoi anche vedere come
lontano hanno progredito su una mappa così qui voi
posso vedere che l’ oratore di Patrick Merkel è
sto solo suonando al livello 38 e fondamentalmente
succhia nel gioco mi dispiace dire che
non è fatto così e tecnicamente questo è
molto semplice voglio dire questo è il più
simile gola quando suono scrivo al mio
database e una tabella di scrittori che solo
nome punteggio o qualcosa e poi
qualcun altro arriva e legge da
la tabella così la sincronizzazione è facile
perché io ampia la mia roba in qualcun altro
abbiamo scelto semplicemente un po ‘più sofisticato
e questo è anche un approccio molto comune
che abbiamo in molti giochi che giocano
i social network come Facebook è dentro
la situazione della posta in arrivo pensa agli scacchi che hai inviato
invia la tua mossa piuttosto che una cartolina
a qualcuno e qualcuno lo prende
carta e lo applica al suo stato locale
la sua scacchiera
è un gioco a turni in evidenza
Impero che sembra un grande gioco e se
non l’hai giocato hai perso
qualcosa negli anni ’80 e
la civiltà è ancora lo stesso principio
quando gioco in multiplayer, faccio il mio turno e
poi aspetto mentre gli altri studenti
gira così metto il mio turno nella n-box
Re che questo è un gioco che abbiamo
fare così segue lo stesso principio
quando altre persone che sono nel mio villaggio
possono quindi riscuotere le tasse a casa mia
sembra come questo ora qui vedi era un
Cerchia, quindi qui penso che non sia così
ha raccolto le tasse e sicuramente posso
scegliere di accettare o rifiutare queste cose
e quando accetto, applico lì
le modifiche vengono lette dalla posta in arrivo e
applicato al mio stadio ma ho il controllo
del mio stato e lei non può direttamente
influenza che quindi è un sistema molto semplice
ancora di nuovo
quindi come sembro che io faccia il mio cliente e
il bianco nel database è lo stesso
la cosa è l’ unica differenza
un altro giocatore può cancellare direttamente nel mio
stato in un’area separata è un po ‘come
un cubo o a seconda dei dati può essere
tabella del database in modo sostanziale hanno spinto
qualcosa sulla mia indicazione del mio indice e io
saltar fuori ogni volta che voglio ulteriormente
cambia semplice la maggior parte dei giochi in tutto il
giorno e in facebook architettonico tu
coinvolto questo un po ‘il database era un
grosso collo di bottiglia e ora corriamo per lo più su
servizio di applicazione stateful tutto il caldo
memorie all’interno del server delle applicazioni
stesso ma questa parte riguarda la posta in arrivo
sempre lo stesso molto spesso è solo un
semplice database Redis perché funziona io
potrei dirti molto di più su questo come noi
evoluto a cose stateful ma questo
non è lo scopo di questa presentazione, se tu
vuoi saperne di più vai a questo URL
google slash back end e dare caramelle di
presentazione lì sul tema di
hopping fantasma dell’architettura ma andiamo
tornare a detrimento degli utenti, ma tu
volevo davvero avere è reale
interazione qualcuno lascia cadere qualcosa
sul pavimento e lo raccolgo così
di interazione cose che non hai
sopportare il dungeon multiutente ha fatto chiunque
hai mai giocato molto sì, pensa
vai a nord uccidi mostro buono tutte le volte
qui 23 anni fa penso di aver interpretato il
inizio nel 1990 e il mondo discendente di
Warcraft è probabilmente il più
gioco di successo, in pratica la sinistra
uno è nonno di quello giusto così
questo è ciò che riguarda l’interazione reale
e hanno fatto un gioco del genere
fantastica Fox e questo è come sembra
come hai curato molte cose lì e
può anche pescare che è se non puoi
pesce non posso, ma la cosa bella è lui
può anche essere visitato da amici, quindi lui a
amico arriva fammi afferrare quel dardo
ha detto che non me lo porta via
e per voi pescate insieme
quindi come funziona?
qualsiasi browser funziona su qualsiasi
firewall questo è solo un semplice flash
gioco da entrambi tecnicamente parlando
i nostri clienti hanno lasciato entrambe le linee e tu
avere un processo corrispondente all’interno
questo è application server stateful
scritto una linea
e quel processo mantiene il nostro stato e
controlla la connessione avanti e indietro
ma c’è anche un processo condiviso che
gestisce e tiene uno stato
falsificazione in questo caso la bella
panorama che abbiamo visto e il fiume così quando io
fare qualcosa applico il cambiamento a quello
processo di localizzazione e modifica lo stato
modifiche e lei può essere notificata su questo
sito in modo che vada dall’utente
la posizione per utente e quindi indietro e
la cosa migliore è che abbiamo un
back-channel è l’unica cosa quindi
può essere informato dal server per il cambiamento
è successo al mondo e usa HTTP
trasferimento chunked per quello che è il
la stessa cosa che vedi quando ha guardato a
YouTube video il client apre il
socket il server invia alcuni organi vitali ma
non lo chiude e continua a inviare byte
sopra il flusso e questo funziona
magnificamente anche su Internet Explorer
e tutto ciò che è molto meno dolore di
prese di profondità per esempio funziona
e poi puoi fare qualcosa come lui
frigge un pesce e lo do a calci così
c’è il pesce che vado e che afferro
il pesce rosso perché sono un cattivo bastardo
e io tipo di pesce ma lei può così il
cosa complessa con questo tipo di giochi
è quello che se lei ha scelto il pesce al
allo stesso tempo chi ottiene è questo il problema
quindi in quello che abbiamo fatto è fondamentalmente io
avere un approccio in cui il cliente deve
non aspettare mai sul server perché lui
si aspetta una latenza fino a uno o due
secondi in questo tipo di ambiente così
il cliente è molto ottimista, quindi se il mio
cose del cliente posso raccogliere il pesce
lasciami prendere il pesce poi il
il messaggio viene inviato al server ma
forse era veloce e già presa in braccio
il pesce che significa quando il mio utente elabora
vuole provare a tirar fuori il pesce in questo
cantanti per il processo che non ottiene lui
non riescono a prenderlo e lui si ritira e
quindi il cliente deve tornare indietro
tutto quello che è successo prima e te
ritorna indietro perché abbiamo come facciamo
è che abbiamo un blocco locale di tutto
che è stato lavorato prima così ogni
azione commessa dal server
viene messo sul lucchetto e poi torniamo indietro
fondamentalmente inizia l’intera sessione
mazzo l’intera sessione in su fino alla
punta e poi smetti di giocare di nuovo e
questo è come sembra davvero
ci sono voluti 30 minuti per registrare in questo modo
occasione perché non sono due secondi
ritardo ma molto più veloce e così è
molto raro e questo è il modo in cui siamo scappati
con esso ma funziona molto semplice questo
è stato il nostro primo passo nel regno di
vero multiplayer e probabilmente era questo
la tecnologia potrebbe fare qualcosa di simile
Diablo se lo volessi, a meno che tu non lo abbia
cinquemila giocatori ma più come dieci
questo funziona
ora se hai anche fatto una presentazione
uno come funziona all’ultimo dettaglio
anno su tecnologia controllalo se tu
voglio così, in pratica, l’abbiamo visto
potremmo fare vera interazione ciò che noi
volevo fare quando hai tempo in realtà
molto più veloce più come sparare a ciascuno
altre auto da corsa per fare Mario
Kart o Starcraft e questo è il tutto
una specie di gioco diverso molto di più
ospedale di affermazione e il vero problema
dietro c’è un sistema sgradevole
hai molti clienti là fuori minimi
ai clienti dei giocatori ma forse di più
a seconda del gioco e del tuo server
e hanno tutto lo stato divergente
sembra un po ‘ diverso perché c’è
sincronizzazione temporale e cosa viene
attraverso il servizio hai alcuni giocatori
chi vuole imbrogliare
sono in grado di essere in cima agli altri
e devi prevenirli
imbrogliare non è come un distribuito
sistema tutti collaborano ma noi abbiamo
alcune persone che attività per interrompere
il gameplay guadagnando vantaggio così noi
dobbiamo evitarlo e abbiamo il
il problema sembra buono dovrebbe guardare
bene sapere che compensazione non come oh
Creo il Serpente più scuro del
secondo dato sembra intendo che tipo
del gioco sarebbe accaduto sarebbe divertente
quindi c’è un sacco di informazioni fuori
c’è un mondo così fantastico per esempio è un
angolo in alto a sinistra
apriamo ora l’open source per poterlo guardare
il codice sorgente e ci sono molti blog
post di come l’hanno fatto ed è davvero
roba fresca e aspetto divento
contro-scioperare hanno un bel colpo
wiki spiega piuttosto come hanno fatto le cose
soprattutto a livello di rete Age of Empires
blog post davvero interessante, penso che sia
chiamato 1500 Arthur su un ventotto
punto otto kilo bit modem o qualcosa del genere
come quella
ed è davvero un problema perché come te
affermano che hanno migliaia di unità come
sincronizzi questo e anche tu con alone
lezione davvero anche in presentazione da
una volta di Game Developers Conference come
loro spiegano come fanno le cose e lui
anche giocato con questo e noi eravamo
abbastanza difficile costruire difficile tale
gioco finché possiamo contare su un decente
report della rete a bassa latenza di
la rete non ha troppi pacchetti
perdita e nessun jitter quindi tutto
senza problemi sì, ce n’era solo uno
problema
abbiamo spostato l’attenzione sulla nostra azienda per entrare
più compagnia quindi tutti i giochi erano ora
Sviluppare su dispositivi mobili per prima cosa facciamo tutto il gioco
file di sviluppo prima e media mobile
3G così prima che il dispositivo si connetta al
la connessione Internet è veramente veloce
a larghezza di banda limitata 3G e 3GS
soprattutto sul caricamento che significa non così
buon ritardo e vederlo come circa 100
millisecondi semplicemente non parliamo solo
perché è lì che abbiamo un sacco di
perdita di pacchetti quando ci si sposta da uno
Centro a un altro o se sei su un
stadio con 5.000 altre persone come
probabilmente ora hai un fusibile con Fuji
divertimento
e hai un sacco di jitter
tuttavia abbiamo detto che volevamo farlo e
lo facciamo lanciando una squadra e
lasciando che la squadra costruisca un gioco e poi
vediamo se possiamo farlo, così abbiamo deciso di farlo
un gioco che si chiama Banamine che qui
conosce i modi Bangla
quindi fondamentalmente più giocatori sulla mappa
Oliver sul lancio di bombe che hanno le ossa
ragioniere di un secondo o così quando
esplode e uccide il giocatore grande l’ultimo
spazio in piedi e la cosa bella è
un secondo count’em di una bomba che è un
davvero un bel modo per contrastare il collo, quindi come
abbiamo fatto quel Patrick per favore diccelo
ciao non va bene, va bene a tutti
sentirmi eccellente quindi sì abbiamo istituito a
crea il gioco in stile Wonder Man per
mobile e volevamo solo vedere se noi
può farlo perché non avevamo mai fatto tale
una cosa prima di ciò che vede ora
qui è ancora la lobby dove facciamo il
matchmaking quindi anche questo deve essere in a
modo casuale e così il
quindi abbiamo reso possibile ciò che penso sia
ancora giocabile nella mia esperienza anche
la latenza equivale a un minimo di 400
millisecondi siamo davvero molto bravi
Proverò una cosa dopo aver parlato se riesco a ottenere
per funzionare con il GPS qui vedremo
a tale proposito , come lo abbiamo costruito?
per prima cosa ho fatto molte ricerche perché noi
non ho mai costruito una cosa del genere e tu
non sapevamo come farlo e ci sono
vaste risorse là fuori e tu sei
cercando di capire cosa fai davvero
dobbiamo fare non abbiamo tempo per investire
come un anno o più in arrivo con tutto
quelle pazze soluzioni e quadri così
dovevamo andare rapidamente avanti e avanti
Posso dirti che è possibile così noi
non ha fatto tutte queste cose che
è quello che volevamo fare e noi
ha fatto piccoli passi
quindi, solo per capire cosa stiamo facendo
cosa dobbiamo cambiare dal monitoraggio
a quello successivo e questo non è scientifico
grafico è un grafico scientifico molto pop
ti dico solo che puoi andare lontano
modo nel gioco multiplayer senza fare
le cose super complesse dall’altra
mano se vuoi far piacere ai tuoi utenti
raggiungi un punto in cui devi aggiungere
più complessità ma normalmente accade
alla fine quindi diamo un’occhiata al primo
prototipo che abbiamo costruito da zero
e ha avuto questa struttura molto basilare
ancora fatto dai clienti il server il
i clienti si auto- sposterebbero e si sposterebbero
commenti sul server e
il server li inoltrerebbe a tutti gli altri
clienti e anche memorizzarlo internamente e
allo stesso modo in cui piazzerai fattorie e
ma e poi il server direbbe al
clienti che una bomba è esplosa così per favore
nota che inviamo solo in giro
comandi e non stato e non c’è
sincronizzazione qui per qualsiasi cosa
il gioco per risincronizzare e poi tu
servire alla fine decidiamo il game over
quindi, come abbiamo creato per il TCP
antipasti perché è facile e da ottenere
e TCP fa un sacco di cose come a
protocollo e volevamo solo farlo
molto rapidamente senza occuparsi di UDP
e i problemi dei verdi e usiamo
l’acuto di strizzacervelli non sembra molto
approccio tipico per un gioco multiplayer
soprattutto se si lascia leggere il
letteratura ma era vicino a noi no
la cosa più semplice ma una cosa facile da fare
ottenere qualcosa di lavoro e si scopre
ha funzionato molto bene sul Wi-Fi locale Wi-Fi
e anche su internet se tu avessi un
davvero buona connessione internet quindi
verificare il concetto di Bomberman che era
abbastanza buono
tuttavia su 3qi non ha funzionato, no
lavorare affatto e soprattutto sui nostri CTO
telefono cellulare penso che lo chiamo iPhone di
rovina perché riesce a far esplodere la rete
condizione in qualsiasi momento nel tempo desiderato
accadere e uno dei motivi di
fase II è un problema è chitter
non in latenza ma anche in larghezza di banda
la giusta profondità è un cambiamento costante in
larghezza di banda e latenza che avranno acceso
una rete mobile è condivisa
risorse dipende da una distanza da
tu alla torre cellulare quante persone
lo stanno usando quale protocollo sei tu
permesso di usare hai consumato tutto il tuo
dati mensili di coulomb devi cadere
indietro e lei Paris tutte quelle cose
pacchetti di caduta a destra la perdita di pacchetti è un grande
problema e quindi per cosa fa TCP
noi per aiutare che sta rinviando il
messaggi in modo che i pacchetti di rilascio possano essere
consegnato e anche li sta ordinando
perché in questa architettura abbiamo avuto
l’ordine è in realtà molto importante però
che ogni giorno è arrivato, in realtà c’è
un problema in decibel con l’ordine DeWitt
l’architettura è ma in generale quello
scoppiasse e ci proverebbe anche
ottimizzare per larghezza di banda e velocità di invio
l’ algoritmo giusto così male andrebbe e
prova ad ottimizzare la tua larghezza di banda al
spesa di latenza che non è credibile
cosa vuoi avere in questo tipo di
gioco non puoi spegnerlo
con TCP nessun ritardo come impostazione e anche
controlla la velocità di invio quanto è veloce
andando a censurare non lo farà
traboccare l’altro link quelli sono molto
buone caratteristiche di TCP ma non proprio cosa
vogliamo soprattutto in questo ambiente
con pacchetto alto anche così uno dei
fatti divertenti il costo che è quando
i pacchetti non verrebbero ricevuti da a
cliente per un periodo di tempo
per esempio, io vedo sì / sto giocando a questo
in alto a destra e pochi secondi
dopo tutto ad un tratto si deforma tutto il
modi attraverso lo schermo come il milione
dollaro, allora sai bene qualcosa
è rimasto bloccato nel modo in cui potevano ottenere
peggio su reti veramente instabili lo era
appena riproducibile perché le funzionalità del PC provano
fare la sua connessione magica con il
risultato che nulla quindi abbiamo dovuto risolvere
quel problema e se hai bisogno di leggere il
per un sacco di forum che si vede bene che si
ripeti la cosa che devi fare
okay in tempo reale avremmo voluto provare
è UDP che mantiene questa corrente
infrastruttura che è completamente
comando incolla e rispondendo al grande
domanda che ho avuto possiamo prenderti
lavoro ripetuto su reti 3G non l’ho fatto
scoprire le risorse su internet
che in realtà dice sì, puoi farcela
funziona perché anche loro devono lavorare
in entrambe le direzioni, a destra invia il cliente
informazioni al server e il server
risponde anche su un diverso porto di
ovviamente attraverso UDP e tu no
sapere se ci sono dei firewall t di
il tuo fornitore di dati supporta questo o
non se lo sta lasciando passare o no
quali sono le regole del firewall, quindi non l’abbiamo fatto
sai che si voleva mettere alla prova solo su e
per darci un senso di perdita di pacchetti e di
fare esperienza nello sviluppo della nostra
protocollo mutuo che abbiamo deciso di implementare
comanda TCP che è a proposito a
copia completa in carbonio di Glenn Fiddler’s
Catherine Gamescom descrizione su come
costruisci qualcosa del genere così abbiamo iniziato
aggiungendo la numerazione delle sequenze, così faremmo
conoscere l’ordine a volte ci sarà solo
decidere di lasciarli e anche un modo di
riconoscendo con un campo colonna che
è un numero intero a 32 bit che utilizza una bitmap
solo per capovolgere bit come a1 se lo avessi
se hai il numero di pacchetto 30 e il
il primo bit è capovolto, si direbbe bene
hai ricevuto il pacchetto precedente degli anni ’30
giusto in modo da poter dire quale specifico
numero ma solo il precedente 31 e
poiché usi monotonicamente l’aumento
numeri ti dà un senso di bene
qual è questo pacchetto riconosciuto nel
l’ultimo 30 master se non lo fossi tu probabilmente
non importa in questo scenario, quindi noi
toccherebbe e dovremmo aggiungere un ID utente così
questo ci permetterebbe di sopravvivere alla rete
cambia perché normalmente quello che fai è
usi la combinazione di indirizzo IP
e la porta remota per identificare il plagio
tuttavia se il tuo lettore sta passando
reti e cambiato il suo indirizzo IP se
non più non sai più chi loro
sono se ammettono di giocare così da
aggiungendo un ID utente come un ID di sessione
sai che è buono anche l’utente
interessante rete di template ball
ordina come il piccolo endian big-endian
importa a causa di una cosa una mattina
capirlo perché su Erlang eravamo
Là ordine di rete facendo cose e il
clienti per fare cose dentro
little-endian e questo ti causa
problemi se usi numeri interi errati
modo in giro
quindi diamo un’occhiata a quali date abbiamo fatto
ordinando sì come pacchetti di conoscenza sì
in una certa misura presentare pacchetti
nessun controllo di flusso nessun controllo di congestione
nodo e posso dirvi che ha funzionato
finora ciò che abbiamo testato da noi abbiamo testato in
Germania un po ‘nei Paesi Bassi
Ho provato solo mezz’ora fa fuori
del centro congressi così sembrava a
ho lavorato anche qui e pochi altri
paesi non posso parlare da tutti i discorsi
fornitori ma generalmente funziona in modo equo
bene però il gioco stesso funziona UDP
il gioco stesso
no nemmeno sul Wi-Fi giusto è malvagio
è solo il mio libro di esercizi sul discorso II
dimenticatene, per quale motivo?
sono ancora allo stesso pacchetto di problemi
perdita e se si guarda al protocollo
che stai solo in piedi
comandi e e mai stato e non c’è
nessuna sincronizzazione integrata in tutto il
i clienti a venire allo stesso concetto che
tutti vedrebbero qualcosa di completamente
diverso
hai avuto uno stato incoerente su tutto il
posto così dopo per un gioco competitivo
come la dinamo
questo è il risultato peggiore
possibile che potremmo anche solo non costruito
un gioco a tutti
quindi proviamo a risolvere ciò e il più semplice
cosa potrei venire dalla lettura
la letteratura era ben usata solo noi
aggiornamenti di stato quindi il server ora
avere un eights particolare e inviare lo stato
aggiornamenti ai clienti e al cliente
devono inviare le loro comandi al
server così in questo modo possiamo sincronizzarci
e in realtà invieremo lo stato completo
aggiornamenti
dieci volte al secondo che suona un po ‘
ormai eccessivo per cui vorresti mandare
aggiornamenti di stato quando potevi solo inviare
Delta aggiorna ora che la cosa è io
volevo averlo fatto velocemente e
capirlo e quindi abbiamo fatto un po ‘di
la matematica e io ero preoccupato che la fine per te
l’ unità di trasferimento massima sarà a
problema quindi T potrebbe iniziare l’IP Lee
frammentare nuovamente i miei pacchetti perché
prima che il TCP si prenderà cura di questo
ma lo faresti se non fosse così, l’ho fatto a
un po ‘di matematica si scopre che potrei
si adatta in tutto lo stato mondiale del mondo dei bombardieri
in meno di 1500 byte bene devi
sottrarre le intestazioni IP e UDP ma
sarebbe bene sotto quello che ti serve
per bordo quindi andava bene
quindi è nel tuo client di architettura
inviando i loro comandi al server
il fagotto li applica ai suoi
Stati autorevoli e poi manda su
gli aggiornamenti a tutti i client ma questo
succede circa 10 volte al secondo da
il server ma anche circa 10 volte a
secondo dal cliente perché questo
accade a velocità di camminata del tuo Bombur
uomo nel modo in cui abbiamo costruito il gioco è
circa 100 millisecondi che impiega
andare da un campo a
e risultato con il gameplay stesso
ha funzionato molto bene e lo eravamo davvero
felice intorno ad esso ne aveva ancora un po ‘
problemi perché abbiamo avuto a che fare con un
nuovo concetto che il cliente doveva fare
interpolazione tra fotogrammi proprio così
continui a ottenere cornici per cornici
ed è necessario capire bene cosa
è successo qui qual è il prossimo qual è il
differenza tra ciò e ciò di cui ho bisogno
animare e se farai cadere una bomba
e poi nei prossimi pochi si afferma
non sarebbe lì che hai dovuto rimuovere il
bomba dal cliente perché il cliente
quello ottimizzerebbe per uso di usabilità a
concetto chiamato previsione del cliente, quindi cosa
lo fai se metto a riposo te ne vai a sinistra
ma non si non si aspetta fino a quando il
riconoscere dal server che
in realtà camminava a sinistra perché se tu
attenderei prima di 200 millisecondi
in effetti fai la mossa che vorresti fare
gameplay davvero choppy in modo che non lo fa
sembra molto buono, quindi ottimizzi su a
cliente cosa significa se il tuo pacchetto
perduto devi correggere per questo
in seguito quindi ci sono alcuni problemi
dobbiamo occuparci di risolvere questo ma
nel complesso è stato un enorme miglioramento
comunque il nostro gioco principale era rotto così
recupero di punteggi alti durante la registrazione
out livellamento della tua lega cambia
il tuo nome utente tutte le cose su UDP
senza affidabilità integrata era
completamente rotto quindi abbiamo dovuto affrontare
quello dopo così il gioco di architettura
giocando lo stesso abbiamo mantenuto quello tuttavia noi
guardato il sistema abbiamo fatto un passo indietro
e ho pensato bene cos’altro da parte
dal gameplay abbiamo e così noi
avere matchmaking e punteggi alti e
cambiando i dati utente il nostro login e cose del genere
come quello e il giorno l’avrebbero idealmente
essere come una comunicazione affidabile
protocollo non mi piace quello che non voglio
costruire TCP personalmente che sarebbe pazzo
per questo progetto, perché dovrei anche preoccuparmi?
per fare questo quindi ci sono due distinti
cose che abbiamo trasmissione affidabile e
altra trasmissione affidabile
e non hanno nemmeno allo stesso
tempo giusto o sei in questo mondo
di comunicazione affidabile o su questo
mondo che gioca al tuo livello
quindi è ortogonale molto ortogonale a ciascuno
altri così gentili che siamo andati così
lo ha fatto in HTTP, non giocando nemmeno
TCP perché di nuovo è stato facile è molto
HTTP ben compreso all’interno di un’azienda
e ti dà già un protocollo come
per richiedere dati come pubblicare i dati che sono
Parlare qui riposa e va bene
con Jason e ce ne sono in abbondanza
biblioteche e non devi venire
con il protocollo di comunicazione in cima
di TCP come organizzi i dati su come tu
parlare tra loro e anche in forma
ben nella riorganizzazione di come il server
è stato costruito prima che fosse solo uno
a volte c’era un grosso prototipo di grumo
c’erano alcuni readie lì e
C’era un po ‘che vedo colander me che
si sta muovendo molto velocemente e questa volta
ha preso il tempo e sorta di riorganizzato
di nuovo le cose e si adattano bene
quindi il server è integrato
Erlang e quindi potresti costruire distinti
per i servizi aerei di cui si parla UDP
una logica di gioco e correre a Wunderland
processo in esecuzione di un gioco e sul
altra mano su HTTP fai il
abbinamento matchmaking di giocatori con
altri giocatori per cambiare i dati dell’utente
registrazione degli utenti che registrano l’utente in
registrazione degli outs dell’utente
consegnando i punteggi più alti calcolando
le foglie sono come quelle che saranno
sul lato HTTP delle cose e in ordine
per migliorare la larghezza di banda abbiamo deciso di muoverci
lontano da JSON e anche il nostro attuale
dati di gioco che vengono consegnati all’interno
il gioco per essere binario e così abbiamo preso
l’intestazione che avevamo già dalla nostra
Connessione virtuale UDP anche conosciuta come
prima intendeva il PCC e avevamo il carico utile
anche in binario e qui è il
riferimento questo è per i due giocatori
giochi David un paio di bombe abbiamo finito
con 180 byte come quello pagato per a
stato di gioco completo di una parola completa per
gioco così ho avuto 136 byte
e quindi se fai il messaggio di matematica 10 è
un secondo dal server ai tuoi clienti
come all’incirca un punto cinque kilobyte
al secondo e quindi sì, il mio passato
il mio primo modem era un modem 56k che
in realtà ha un rendimento di sette
kilobyte al secondo quindi sul letto
accanto a me penso che siamo dalla parte giusta
quindi nel complesso ciò ha migliorato il nostro gameplay
anche meglio ancora perché ora potremmo
a volte anche giocare con GPRS
connessioni avremmo una pessima fantasia
ricette più economiche equivalenti approssimative 256
consigli di kilo in termini di standard, quindi come
siamo in tempo 10 minuti
Guinea – ok vado per cinque tutto bene
le cose più importanti che facciamo sono noi
rendere i nostri giochi semplici e facili
capisci così non devi essere un
hardcore gamer per capire i nostri giochi
e il matchmaking di oggi è dove ho giocato
di solito giocava a contrattacco tutto
devi capire il server ma
arrivi ad altri server allora hai
scegliere un server dove vuoi
gioca e loro devono assicurarsi dell’altro
persone che giocano o non possono godere posso
vattene – faccio il mio server per fare il mio
proprio gioco di sorta e poi sono persone
venendo fuori c’è molto
conoscenza della sincronizzazione coinvolta e
noi non vogliamo fare quello che vuoi
fallo solo un tasto “chiavi in mano”
giusto così il primo matchmaking come noi
abbinare gruppi di giocatori a giocare
l’ uno contro l’altro era solo una coda FIFO
le persone entrano se è per iniziare una partita
le persone entrano in sit per il gioco iniziato se
sono solo le due che aspettiamo forse per 10
secondi se nessuno entra , iniziamo a
gioco ma non c’è logica in esso
ottimizzazione per brevi tempi di gioco o
ottimizzando le competenze quindi se lo sei
sfortunato ti capita solo di giocare contro
le persone che stanno attualmente giocando
ma perché fanno clic sul pulsante al
stessa ora non perché ci sono i migliori
partita per giocare contro di te giusto così noi
doveva venire con una soluzione per questo
triangolo che proveniva dal prodotto che era
vogliamo avere quattro giochi tutti i
tempo che costa
deve abbinarsi al meglio in termini di abilità
che sono perdite di punti esperienza xxp e
altri numeri che ho dimenticato in questo momento
e anche il tempo così che ha fatto l’attesa
tempo per l’aereo di darci del
eccezionalmente breve questo autunno e dopo
un po ‘di complicazioni abbiamo trovato la base
struttura dei dati e algoritmi di base
per farlo è chiamato gerarchico
il clustering è una serie di algoritmi che
puoi usare dove costruisci una piscina
costruisci un albero e trovi gli elementi
che sono simili tra loro usando a
funzione di distanza in modo da poter definire
certo la distanza parla da solo
per noi era un misto tra
esperienza punti là la lega di
le sfide settimanali quindi sei nel
maestro o nella lega del debuttante o NH
Anjali
così xB Challenger League e ad esempio
posizione potrebbe essere pure
b1 e anche il tempo lo chiamo disperazione
fattore perché più a lungo lo aspetti
più si avvicina a tutti perché
allora dovresti essere in grado di giocare contro
altri, perché se non lo facciamo
per esempio giocatori davvero bravi
completamente morire di fame in un principiante
torneo perché non potevano giocare
contro chiunque se non aggiungessi
il tempo come un altro fatto per questo perché
avrebbero dovuto essere un terribile
partita per tutti gli altri erano solo
siediti lì da solo mentre tutti gli altri
starebbe giocando così il tempo è importante
fattore anche qui , quindi passiamo attraverso
brevemente a un’iterazione che avresti
in coda poi andiamo
abbiamo costruito questo albero un paio di volte a
in secondo luogo e ricostruire questo albero e provare a
trova le partite e programma quelle partite
Sì, penso che questo sia effettivamente ordinato
sono entrati
Penso di sì sì e così tu fai il
iterazioni programmate per il lancio
e quindi l’atomo due gruppi è
programmato per il lancio e quindi si tenta di
lancia quel gioco del problema
Ovviamente nel frattempo i perdenti vengono e
andare tutto il diritto tempo e alcuni di loro
timeout e così via in una metropolitana in a
tunnel qualunque cosa così che cambia
costantemente, ma questo è come lo fate in
molti passaggi tutto il tempo che
accidentalmente capita anche di essere nel nostro
collo di bottiglia nel gioco il matchmaking
quindi allora hai una partita, allora lo dici
tutti i clienti per iniziare un gioco un dato
tipo II del server di gioco e del gioco
ID e poi passano a UDP e
avvia il gioco su UDP e torna a
GP sì, questo ha migliorato il nostro matchmaking
drammaticamente abbiamo fatto ovviamente diversi
iterazioni armeggiare nei grafici quanti
quattro giocatori due giochi e tre giocatori
gioco dei giocatori che avevamo così abbiamo potuto vedere come
abbiamo ottimizzato ogni volta cosa ha fatto anche lui
era giocare con gli amici quindi se la città noi
disperatamente potrebbe posare hit play local
pulsante e chiederebbe di chiedere
usa le nostre coordinate GPS per inviarlo al
server e potrebbe giocare contro yes per
giorno su Internet, quindi è un altro
modo di fare quel caldo Wi-Fi che è
usando la sovra-serving usando il GPS così
debuggando questa piccola cosa che ho costruito
per noi per essere meglio in grado di
eseguire il debug del gioco in modo da poter giocare il gioco
sul client terminale è una pila completa
integrazione in modo che comunichi HTTP aiuta
tu HTTP l’ UDP e puoi usare il tuo
tastiera che simula fino a quattro giocatori
quindi questo è davvero buono anche per il
sviluppatori client ma volevano
sviluppare una nuova funzionalità di cui non hanno bisogno
due iPhone hai solo bisogno del tuo simulato
un iPhone e tu simuli l’altro
i giocatori sulla tua tastiera usando il tuo
client terminal che è molto carino per
anche tu puoi usarlo per svilupparlo
BOT per vedere come si comportavano i miei robot
queste barche vengono poi utilizzate per
test di integrazione e prestazioni
test in modo da poter avere pienamente
BOT integrati Ho usato quello per questo come
bene e in realtà è scritto in Erlang
e maledice in Erlang in modo da poter costruire
i tuoi occhi in Erlang esattamente e ciò che era
Ho detto sì e l’abbiamo anche usato
assicurati di sviluppare più BOT nel gioco BOT
che abbiamo scritto così potremmo
riempire i giochi che non devi mai giocare
da solo avrebbe sempre giocato contro
qualcuno e io posso darti che tu abbia fatto questo
una bella sfida prova a capire come
per costruire nuovamente un vaso per mamma abbiamo iniziato
molto semplice ho appena scritto la sopravvivenza
BOT che proverebbero a non morire ma
venire con buone strategie e
gli edifici come bot sono molto interessanti
sfida e mi è piaciuto
e un altro strumento utile è la rete
condizionatore di collegamento in cui è possibile tipo di
simulare quella rete di rete
condizioni ma un’altra opzione sarà
solo per usare i nostri sitios ho trovato ma quello
funziona solo e lui lo sta usando, no
sai perché quindi devi essere in ordine
delude il mio co-presentatore e questo è su iOS
a sinistra se hai uno sviluppatore
account è possibile attivare questo e il
altro che devi scaricare da qualche parte
dal sito web di Apple così stessa cosa è in
Erlang login della nostra shell remota in lingua
al server che controlla cosa sta succedendo
funzionalità straordinarie in tempo reale che si ricaricano
codice da 200 giochi sono in esecuzione senza
interrompendo quei giochi è molto
potente funzionalità nelle tue linee che io
non so da molte altre lingue e
puoi farlo e il built-in
monitoraggio di Erlang VM
perché abbiamo ottenuto che le streghe VX funzionassero
e quindi puoi solo Rheem e tutto il
audio grafici fuori fino al vostro locale
macchina e vedi cosa succede dentro
la tua macchina e poi ci siamo fatti prendere dal panico una volta
perché pensavamo che avremmo usato anche noi
molta larghezza di banda nel nostro gioco si rivela lui
erano i widget 2vx che causavano tutto il
cattiveria e l’ ha spento è stato il prossimo
a nulla
così il segreto è tornato a casa così è stato
sì, un passo successivo per noi un solo gioco
provare qualcosa e aggiungere
qualcosa che sappiamo ora sappiamo
come ci sono i limiti e come
gestire il 3G quindi penso che abbiamo finito
livello, ma non lo abbiamo davvero padroneggiato
Penso che lo rivisiteremo e allora
La squadra di Patrick ha fatto stava aggiungendo
qualcosa di evoluzione verso il meglio
usando i giochi direzionali ma non lo siamo
c’è ancora così adesso ne abbiamo ancora due
i giochi in esecuzione ancora una volta è tutto così
Patrick non sta lavorando a un monitoraggio
gioco hanno requisiti ancora più elevati
per quanto riguarda la latenza, quindi niente bombe con
conti alla rovescia ma davvero come ritmo veloce
azione che in realtà è già un grande
gioco e abbiamo anche un altro gioco in esecuzione
su dove lo stato non si adatta a 200
byte ma è più simile a molti kilobyte
grande quindi hai bisogno di cose completamente diverse
modelli di sincronizzazione perché sei
non è in grado di inviare oltre il quattro pieno
stato, ma stiamo ancora lavorando su questo
non sono ancora completamente lì, quindi questo è
probabilmente una storia da raccontare l’ anno prossimo come
per ora hai qualche domanda che abbiamo
qualcosa sull’app, quindi sul primo
era se ogni squadra inizia da zero
con tecnologie diverse non te
perdere molto tempo reinventando lo stesso
le cose più e più volte è una buona cosa
domanda um sì no, dipende così no no
veramente
quindi in realtà non andiamo completamente
pazzo solo provare cose nuove le
le prime cose sono quelle persone che hanno costruito un
sistema devono eseguirlo e loro tutti
non devo nemmeno allenarmi a
sostituzione se vogliono ruotare a
la prossima squadra in modo da prendere questo in
considerazione è solo rende sicuro
questa è la responsabilità del
le app della squadra non diventeranno completamente pazze
e anche guardarsi intorno a tutti gli altri
fa e quali sono le competenze del resto del
aziende così che tipo di limiti simili
anche questo è ciò che usiamo molto
spesso come idee quindi non stai iniziando
da zero Todd completamente così giusto
digitando e il codice probabilmente qualcosa io
l’ipotesi mi ha fatto per settimane all’inizio
ma in seguito non si può andare a punti
qualcun altro hey hanno fatto un bug loro
dovresti risolverlo no hai compilato il codice
questo è il tuo bug che devi risolvere no
aspettando qualcun altro così a lungo
eseguirlo rende la velocità di sviluppo di
ogni squadra è più affidabile e
team di sviluppo la velocità di sviluppo
delle squadre non declina quando noi
aggiungi più squadre e adesso siamo
venti squadre che corrono in parallelo se tu
dovrebbe coordinare uno contro uno
piattaforma e ognuno di loro deve circa
cambiare le richieste su come aggiungere qualcosa
ci sarebbe un incubo quindi questo è un
bilanciare ciò che facciamo non è perfetto ma
funziona per noi perché lo facciamo molto
giochi separati e puoi andare via
da così così lo facciamo e abbiamo te
facendolo
Immagino che tu faccia progredire la tua tecnologia
facendo così perché se lo hai
piattaforma condivisa a cui sei testimone di essere
attaccato con esso e la gente sarebbe
esitante facciamo questo PHP sul mio schermo
probabilmente una domanda di sicurezza come puoi
fidati dei clienti dipende dal gioco
dipende molto dal gioco
dipende dalla motivazione su come imbrogliare
quindi per questi giochi distribuiti molti
cose così tante cose che puoi fare è
qualcosa come server di crittografia per
esempio puoi renderlo più difficile
tradire il cliente ma alla fine se
vuoi rendere un sistema davvero sicuro
devi avere la piena logica sul
server e sapere cos’è il client
sta facendo devi replicare sul
server e questo significa doppio
implementazione della logica anche un’altra
squadra lo stanno facendo solo condividendo
codice o qualche gioco con un obiettivo-c
e compilare quell’oggetto è protetto da
riscrivere alcune delle classi base che penso
questo è basato su LLVM in modo che lo stesso codice
può essere eseguito sul server e può essere validato
la battaglia completa così nel
non ti puoi fidare del cliente mai per
alcuni giochi non è importante
abbastanza per affrontarlo ma per se ne hai bisogno
per essere sicuri di dover replicare il
la logica sul server non c’è modo non lo farà
va bene
perché non usare WebSockets per quanto riguarda WebRTC
il tuo approccio è possibile solo su nativo
clienti o puoi avere accesso a gustosi
comunità usando qualcosa come PhoneGap
o bozzolo j / s oh questo è molto, quindi questo
era una domanda penso che gli ultimi due
sicuramente andrei da te forse uno
che usiamo per primi non ne abbiamo molti
mm web stuff in questi giorni, quindi non l’abbiamo fatto
considera WebSockets come hanno
costruito una versione multiplayer di diamante –
che è un gioco match 3 usiamo quello
costruire WebSockets ma a tale riguardo
sapevamo che saremo tutti solo in esecuzione
dispositivi mobili in esecuzione nativamente quindi noi
scelto gli strumenti per essere in grado di usare
nativamente che potremmo usare in modo nativo e
abbiamo il maggior controllo su onestamente
Non ho mai usato web RTC appena letto
su di esso non si può, ma il principale
la risposta è che le nostre cose sono per lo più in esecuzione
in modo nativo e non abbiamo mai avuto il
requisito di poter giocare anche a
gioco in un browser, così anche noi
questo gioco di corsa è una pesca fantastica
da noi avevamo eseguito un test WebSocket così
fondamentalmente abbiamo piggybacked il molto piccolo
Cliente WebSocket su Venezia, abbiamo solo
gioca per il gioco così ha disperato questo
per alcune centinaia di migliaia di giorni e il
lavoro per ottenere alcuni dati reali e penso
dal 92% dei giocatori ha funzionato davvero
bene e per il 97 °
un po ‘ ok e per il 3% non l’ha fatto
lavoro affatto ma quello era un test che hai fatto
nel 2012 ma ci ha fatto sentire bene
le mappe vanno bene, ma alcuni trasferimenti
solo più affidabile, quindi siamo andati per quello
un’altra domanda qui così con rispetto
al gioco del pesce
perché non hai costruito un lavandino /
questo meccanismo invece di avere due
i giocatori prendono la stessa cosa nello
stesso tempo in realtà SS nel
presentazione di cui ho parlato di cui abbiamo parlato
questo quindi il primo approccio che abbiamo fatto è stato
più come un approccio pessimistico sul
clienti o hanno un po ‘ come il consenso
Voglio dire che la cosa sono i clienti
non possono parlare tra loro così hanno
parlare al server quindi la prima cosa
era fondamentalmente trovare alcuni contenuti sul
server e quindi ricontrollare che sarebbe
introdurre la mancanza nel gioco che fai clic
qualcosa e poi aspettare per il
rispondi e non vuoi accettarlo
perché l’usabilità reale in questo
usabilità significa niente giocatori senza soldi
nessuna compagnia quindi la seconda cosa è allora
e effettivamente implementarlo è una specie di
come schizofrenico
è un po ‘come quei clienti erano
ottimista nel fare questo e quando è stato
aggiunto e conflitto vorremmo dividere mondi
e ognuno vedrebbe il loro mondo e
in realtà aveva implementato quello che è
davvero bello per il lato client ma è così
è stato tenuto a implementare e mantenere attivo
il lato server quindi alla fine abbiamo saltato
è arrivato a questo perché era giusto
la cosa più semplice da fare per farlo funzionare
e meccanismi di condensazione c’è a
progetto in corso in background sono
chiamato Locker quale gioco sincrono
gli stati sono quali giocatori stanno giocando
su su quale classe quale nodo nel
cluster ne avevamo abbastanza di contenuti
appeso lì ed era abbastanza complesso
già
tutte le altre domande sono tutte le
domande che sono arrivate
So che era a lei come a posto
notare questa versione di questo era già
eseguendo la versione binaria di esso va bene così
nessuna traccia più c’era un
punto intermedio in cui vorremmo g-sib
inseguendo un po ‘un po’ ma no
inseguito più penso proprio ora lavorando
un giocatore addirittura o sorseggiare binari per ottenere
in questo momento penso che da a
certo punto su Jason è troppo grande per fare
qualcun altro sì, è molto buono
punto a questo punto non lo siamo oh
scusa si, ma noi per il matchmaking noi
utilizzare la latenza della connettività del client
per il matchmaking e la risposta è no noi
non farlo, ma questo è un ottimo punto
era il nostro programma, ma sai come
è se i prototipi andate così
basta muovere su questa cosa stasera
ok grazie mille
Please follow and like us: