SlideShare une entreprise Scribd logo
1  sur  32
Rawkets - A Massively Multiplayer HTML5 Game [Mozilla GameOn10]
Rawkets - A Massively Multiplayer HTML5 Game [Mozilla GameOn10]
Rawkets - A Massively Multiplayer HTML5 Game [Mozilla GameOn10]
Rawkets - A Massively Multiplayer HTML5 Game [Mozilla GameOn10]
Rawkets - A Massively Multiplayer HTML5 Game [Mozilla GameOn10]
Rawkets - A Massively Multiplayer HTML5 Game [Mozilla GameOn10]
Rawkets - A Massively Multiplayer HTML5 Game [Mozilla GameOn10]
Rawkets - A Massively Multiplayer HTML5 Game [Mozilla GameOn10]
Rawkets - A Massively Multiplayer HTML5 Game [Mozilla GameOn10]
Rawkets - A Massively Multiplayer HTML5 Game [Mozilla GameOn10]
Rawkets - A Massively Multiplayer HTML5 Game [Mozilla GameOn10]
Rawkets - A Massively Multiplayer HTML5 Game [Mozilla GameOn10]
Rawkets - A Massively Multiplayer HTML5 Game [Mozilla GameOn10]
Rawkets - A Massively Multiplayer HTML5 Game [Mozilla GameOn10]
Rawkets - A Massively Multiplayer HTML5 Game [Mozilla GameOn10]
Rawkets - A Massively Multiplayer HTML5 Game [Mozilla GameOn10]
Rawkets - A Massively Multiplayer HTML5 Game [Mozilla GameOn10]
Rawkets - A Massively Multiplayer HTML5 Game [Mozilla GameOn10]
Rawkets - A Massively Multiplayer HTML5 Game [Mozilla GameOn10]
Rawkets - A Massively Multiplayer HTML5 Game [Mozilla GameOn10]
Rawkets - A Massively Multiplayer HTML5 Game [Mozilla GameOn10]
Rawkets - A Massively Multiplayer HTML5 Game [Mozilla GameOn10]
Rawkets - A Massively Multiplayer HTML5 Game [Mozilla GameOn10]
Rawkets - A Massively Multiplayer HTML5 Game [Mozilla GameOn10]
Rawkets - A Massively Multiplayer HTML5 Game [Mozilla GameOn10]
Rawkets - A Massively Multiplayer HTML5 Game [Mozilla GameOn10]
Rawkets - A Massively Multiplayer HTML5 Game [Mozilla GameOn10]
Rawkets - A Massively Multiplayer HTML5 Game [Mozilla GameOn10]
Rawkets - A Massively Multiplayer HTML5 Game [Mozilla GameOn10]
Rawkets - A Massively Multiplayer HTML5 Game [Mozilla GameOn10]
Rawkets - A Massively Multiplayer HTML5 Game [Mozilla GameOn10]
Rawkets - A Massively Multiplayer HTML5 Game [Mozilla GameOn10]

Contenu connexe

En vedette

Rawkets: An inside look at a multiplayer HTML5 game
Rawkets: An inside look at a multiplayer HTML5 gameRawkets: An inside look at a multiplayer HTML5 game
Rawkets: An inside look at a multiplayer HTML5 gameRobin Hawkes
 
海峽西岸經濟區
海峽西岸經濟區海峽西岸經濟區
海峽西岸經濟區Toomore
 
Keluarga Galaksi, Sebuah Tinjauan Genotip
Keluarga Galaksi, Sebuah Tinjauan GenotipKeluarga Galaksi, Sebuah Tinjauan Genotip
Keluarga Galaksi, Sebuah Tinjauan GenotipNur Agustinus
 
財務個案分析報告 尖美建設
財務個案分析報告 尖美建設財務個案分析報告 尖美建設
財務個案分析報告 尖美建設Toomore
 
fclkarinabatat
fclkarinabatatfclkarinabatat
fclkarinabatatDov Winer
 
080724 Mosaica Content Related Rtd
080724 Mosaica Content Related Rtd080724 Mosaica Content Related Rtd
080724 Mosaica Content Related RtdDov Winer
 
Making the Web Multilingual
Making the Web MultilingualMaking the Web Multilingual
Making the Web MultilingualJessica Spengler
 
E Commerce V4 Changes
E Commerce V4 ChangesE Commerce V4 Changes
E Commerce V4 ChangesGordon Heydon
 
Bendiciones
BendicionesBendiciones
Bendicionesgsierra
 
Session4 pl online_course_6_june2011
Session4  pl online_course_6_june2011Session4  pl online_course_6_june2011
Session4 pl online_course_6_june2011LeslieOflahavan
 
2015teleyedaB
2015teleyedaB2015teleyedaB
2015teleyedaBDov Winer
 
Governance as Sustainability in the Enterprise Architecture Discipline
Governance as Sustainability in the Enterprise Architecture Discipline Governance as Sustainability in the Enterprise Architecture Discipline
Governance as Sustainability in the Enterprise Architecture Discipline Eric Stephens
 
Windygallery's infographics 2011
Windygallery's infographics 2011Windygallery's infographics 2011
Windygallery's infographics 2011Rawin Windygallery
 

En vedette (18)

Rawkets: An inside look at a multiplayer HTML5 game
Rawkets: An inside look at a multiplayer HTML5 gameRawkets: An inside look at a multiplayer HTML5 game
Rawkets: An inside look at a multiplayer HTML5 game
 
海峽西岸經濟區
海峽西岸經濟區海峽西岸經濟區
海峽西岸經濟區
 
Keluarga Galaksi, Sebuah Tinjauan Genotip
Keluarga Galaksi, Sebuah Tinjauan GenotipKeluarga Galaksi, Sebuah Tinjauan Genotip
Keluarga Galaksi, Sebuah Tinjauan Genotip
 
Pakej Perkhidmatan INSPIRASI BAKAT
Pakej Perkhidmatan INSPIRASI BAKATPakej Perkhidmatan INSPIRASI BAKAT
Pakej Perkhidmatan INSPIRASI BAKAT
 
財務個案分析報告 尖美建設
財務個案分析報告 尖美建設財務個案分析報告 尖美建設
財務個案分析報告 尖美建設
 
fclkarinabatat
fclkarinabatatfclkarinabatat
fclkarinabatat
 
080724 Mosaica Content Related Rtd
080724 Mosaica Content Related Rtd080724 Mosaica Content Related Rtd
080724 Mosaica Content Related Rtd
 
Making the Web Multilingual
Making the Web MultilingualMaking the Web Multilingual
Making the Web Multilingual
 
Back To The Real World
Back To The Real WorldBack To The Real World
Back To The Real World
 
How To Use Chinswing
How To Use ChinswingHow To Use Chinswing
How To Use Chinswing
 
E Commerce V4 Changes
E Commerce V4 ChangesE Commerce V4 Changes
E Commerce V4 Changes
 
1234
12341234
1234
 
Bendiciones
BendicionesBendiciones
Bendiciones
 
Session4 pl online_course_6_june2011
Session4  pl online_course_6_june2011Session4  pl online_course_6_june2011
Session4 pl online_course_6_june2011
 
2015teleyedaB
2015teleyedaB2015teleyedaB
2015teleyedaB
 
Welcome
WelcomeWelcome
Welcome
 
Governance as Sustainability in the Enterprise Architecture Discipline
Governance as Sustainability in the Enterprise Architecture Discipline Governance as Sustainability in the Enterprise Architecture Discipline
Governance as Sustainability in the Enterprise Architecture Discipline
 
Windygallery's infographics 2011
Windygallery's infographics 2011Windygallery's infographics 2011
Windygallery's infographics 2011
 

Plus de Robin Hawkes

ViziCities - Lessons Learnt Visualising Real-world Cities in 3D
ViziCities - Lessons Learnt Visualising Real-world Cities in 3DViziCities - Lessons Learnt Visualising Real-world Cities in 3D
ViziCities - Lessons Learnt Visualising Real-world Cities in 3DRobin Hawkes
 
Understanding cities using ViziCities and 3D data visualisation
Understanding cities using ViziCities and 3D data visualisationUnderstanding cities using ViziCities and 3D data visualisation
Understanding cities using ViziCities and 3D data visualisationRobin Hawkes
 
Calculating building heights using a phone camera
Calculating building heights using a phone cameraCalculating building heights using a phone camera
Calculating building heights using a phone cameraRobin Hawkes
 
WebVisions – ViziCities: Bringing Cities to Life Using Big Data
WebVisions – ViziCities: Bringing Cities to Life Using Big DataWebVisions – ViziCities: Bringing Cities to Life Using Big Data
WebVisions – ViziCities: Bringing Cities to Life Using Big DataRobin Hawkes
 
Understanding cities using ViziCities and 3D data visualisation
Understanding cities using ViziCities and 3D data visualisationUnderstanding cities using ViziCities and 3D data visualisation
Understanding cities using ViziCities and 3D data visualisationRobin Hawkes
 
ViziCities: Creating Real-World Cities in 3D using OpenStreetMap and WebGL
ViziCities: Creating Real-World Cities in 3D using OpenStreetMap and WebGLViziCities: Creating Real-World Cities in 3D using OpenStreetMap and WebGL
ViziCities: Creating Real-World Cities in 3D using OpenStreetMap and WebGLRobin Hawkes
 
Beautiful Data Visualisation & D3
Beautiful Data Visualisation & D3Beautiful Data Visualisation & D3
Beautiful Data Visualisation & D3Robin Hawkes
 
ViziCities: Making SimCity for the Real World
ViziCities: Making SimCity for the Real WorldViziCities: Making SimCity for the Real World
ViziCities: Making SimCity for the Real WorldRobin Hawkes
 
The State of WebRTC
The State of WebRTCThe State of WebRTC
The State of WebRTCRobin Hawkes
 
Bringing Cities to Life Using Big Data & WebGL
Bringing Cities to Life Using Big Data & WebGLBringing Cities to Life Using Big Data & WebGL
Bringing Cities to Life Using Big Data & WebGLRobin Hawkes
 
Mobile App Development - Pitfalls & Helpers
Mobile App Development - Pitfalls & HelpersMobile App Development - Pitfalls & Helpers
Mobile App Development - Pitfalls & HelpersRobin Hawkes
 
Boot to Gecko – The Web as a Platform
Boot to Gecko – The Web as a PlatformBoot to Gecko – The Web as a Platform
Boot to Gecko – The Web as a PlatformRobin Hawkes
 
Mozilla Firefox: Present and Future - Fluent JS
Mozilla Firefox: Present and Future - Fluent JSMozilla Firefox: Present and Future - Fluent JS
Mozilla Firefox: Present and Future - Fluent JSRobin Hawkes
 
The State of HTML5 Games - Fluent JS
The State of HTML5 Games - Fluent JSThe State of HTML5 Games - Fluent JS
The State of HTML5 Games - Fluent JSRobin Hawkes
 
HTML5 Technologies for Game Development - Web Directions Code
HTML5 Technologies for Game Development - Web Directions CodeHTML5 Technologies for Game Development - Web Directions Code
HTML5 Technologies for Game Development - Web Directions CodeRobin Hawkes
 
MelbJS - Inside Rawkets
MelbJS - Inside RawketsMelbJS - Inside Rawkets
MelbJS - Inside RawketsRobin Hawkes
 
Melbourne Geek Night - Boot to Gecko – The Web as a Platform
Melbourne Geek Night - Boot to Gecko – The Web as a PlatformMelbourne Geek Night - Boot to Gecko – The Web as a Platform
Melbourne Geek Night - Boot to Gecko – The Web as a PlatformRobin Hawkes
 
Hacking with B2G – Web Apps and Customisation
Hacking with B2G – Web Apps and CustomisationHacking with B2G – Web Apps and Customisation
Hacking with B2G – Web Apps and CustomisationRobin Hawkes
 
MDN Hackday London - Open Web Games with HTML5 & JavaScript
MDN Hackday London - Open Web Games with HTML5 & JavaScriptMDN Hackday London - Open Web Games with HTML5 & JavaScript
MDN Hackday London - Open Web Games with HTML5 & JavaScriptRobin Hawkes
 
MDN Hackday London - Boot to Gecko: The Future of Mobile
MDN Hackday London - Boot to Gecko: The Future of MobileMDN Hackday London - Boot to Gecko: The Future of Mobile
MDN Hackday London - Boot to Gecko: The Future of MobileRobin Hawkes
 

Plus de Robin Hawkes (20)

ViziCities - Lessons Learnt Visualising Real-world Cities in 3D
ViziCities - Lessons Learnt Visualising Real-world Cities in 3DViziCities - Lessons Learnt Visualising Real-world Cities in 3D
ViziCities - Lessons Learnt Visualising Real-world Cities in 3D
 
Understanding cities using ViziCities and 3D data visualisation
Understanding cities using ViziCities and 3D data visualisationUnderstanding cities using ViziCities and 3D data visualisation
Understanding cities using ViziCities and 3D data visualisation
 
Calculating building heights using a phone camera
Calculating building heights using a phone cameraCalculating building heights using a phone camera
Calculating building heights using a phone camera
 
WebVisions – ViziCities: Bringing Cities to Life Using Big Data
WebVisions – ViziCities: Bringing Cities to Life Using Big DataWebVisions – ViziCities: Bringing Cities to Life Using Big Data
WebVisions – ViziCities: Bringing Cities to Life Using Big Data
 
Understanding cities using ViziCities and 3D data visualisation
Understanding cities using ViziCities and 3D data visualisationUnderstanding cities using ViziCities and 3D data visualisation
Understanding cities using ViziCities and 3D data visualisation
 
ViziCities: Creating Real-World Cities in 3D using OpenStreetMap and WebGL
ViziCities: Creating Real-World Cities in 3D using OpenStreetMap and WebGLViziCities: Creating Real-World Cities in 3D using OpenStreetMap and WebGL
ViziCities: Creating Real-World Cities in 3D using OpenStreetMap and WebGL
 
Beautiful Data Visualisation & D3
Beautiful Data Visualisation & D3Beautiful Data Visualisation & D3
Beautiful Data Visualisation & D3
 
ViziCities: Making SimCity for the Real World
ViziCities: Making SimCity for the Real WorldViziCities: Making SimCity for the Real World
ViziCities: Making SimCity for the Real World
 
The State of WebRTC
The State of WebRTCThe State of WebRTC
The State of WebRTC
 
Bringing Cities to Life Using Big Data & WebGL
Bringing Cities to Life Using Big Data & WebGLBringing Cities to Life Using Big Data & WebGL
Bringing Cities to Life Using Big Data & WebGL
 
Mobile App Development - Pitfalls & Helpers
Mobile App Development - Pitfalls & HelpersMobile App Development - Pitfalls & Helpers
Mobile App Development - Pitfalls & Helpers
 
Boot to Gecko – The Web as a Platform
Boot to Gecko – The Web as a PlatformBoot to Gecko – The Web as a Platform
Boot to Gecko – The Web as a Platform
 
Mozilla Firefox: Present and Future - Fluent JS
Mozilla Firefox: Present and Future - Fluent JSMozilla Firefox: Present and Future - Fluent JS
Mozilla Firefox: Present and Future - Fluent JS
 
The State of HTML5 Games - Fluent JS
The State of HTML5 Games - Fluent JSThe State of HTML5 Games - Fluent JS
The State of HTML5 Games - Fluent JS
 
HTML5 Technologies for Game Development - Web Directions Code
HTML5 Technologies for Game Development - Web Directions CodeHTML5 Technologies for Game Development - Web Directions Code
HTML5 Technologies for Game Development - Web Directions Code
 
MelbJS - Inside Rawkets
MelbJS - Inside RawketsMelbJS - Inside Rawkets
MelbJS - Inside Rawkets
 
Melbourne Geek Night - Boot to Gecko – The Web as a Platform
Melbourne Geek Night - Boot to Gecko – The Web as a PlatformMelbourne Geek Night - Boot to Gecko – The Web as a Platform
Melbourne Geek Night - Boot to Gecko – The Web as a Platform
 
Hacking with B2G – Web Apps and Customisation
Hacking with B2G – Web Apps and CustomisationHacking with B2G – Web Apps and Customisation
Hacking with B2G – Web Apps and Customisation
 
MDN Hackday London - Open Web Games with HTML5 & JavaScript
MDN Hackday London - Open Web Games with HTML5 & JavaScriptMDN Hackday London - Open Web Games with HTML5 & JavaScript
MDN Hackday London - Open Web Games with HTML5 & JavaScript
 
MDN Hackday London - Boot to Gecko: The Future of Mobile
MDN Hackday London - Boot to Gecko: The Future of MobileMDN Hackday London - Boot to Gecko: The Future of Mobile
MDN Hackday London - Boot to Gecko: The Future of Mobile
 

Dernier

Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 

Dernier (20)

Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 

Notes de l'éditeur

  1. Hi everyone, I'm going to talk to you briefly about Rawkets, my HTML5 canvas and WebSockets game.\n
  2. - For those who don't know me, which I imagine is a lot of you, my name is Rob Hawkes.\n- If you're into Twitter, then feel free to follow me, my username is @robhawkes.\n- I've worked on all sorts of projects, but the most recent and well known are the HTML5 version of the Google balls logo, and Rawkets.\n- I'm also working on a few things which I hope you don't mind me mentioning.\n- The first is my book on making games using HTML5 canvas. It's called Foundation HTML5 Canvas and will be out next spring. If you're interested in it you can always pre-order it from Amazon right now, it won't cost you a penny until the book is actually released. I can promise you I'm putting my all into it and I'm really enjoying writing it.\n- The second thing is the Web design and development podcast I co-host, called ExplicitWeb. Myself and my good friends John O'Nolan, and Hannah talk about all thing related to the Web industry in a light-hearted, completely random sort of way. We're on iTunes if you want to have a listen.\n
  3. As I mentioned at the beginning, Rawkets is a game that is built using HTML5 canvas and WebSockets.\n
  4. - To be more precise, you could describe it as a massively multiplayer online space shooter game, or a mamossga for short.\n- The purpose of the game is to be…\n
  5. … massive…\n
  6. …simple…\n
  7. … experimental…\n
  8. …and social.\n
  9. \n
  10. - Rawkets it actually the major project for my university degree in interactive media. It's still in very early development, in fact it's not even 2 months old yet.\n- I created it for a few reasons.\n
  11. - Firstly, because I'm massively interested in open Web technologies. They fascinate me and I'm constantly left amazed at what can be achieved with them.\n
  12. - Secondly, I'm passionate about the Web and technology in general. I thrive on mucking around stuff to see how it works and how I can break it.\n
  13. - And finally, I absolutely love learning new things, whether that's game development theory or WebSockets. If it interests me, I want to learn more about it.\n
  14. - Developing Rawkets seemed like the perfect way to satisfy all those things, but really I can’t think of a legitimate reason why not to make it!\n
  15. - Rawkets came as a result of wanting to learn more about HTML5 canvas and WebSockets, so the technologies behind it were very much decided in advance.\n
  16. - On the client-side I'm using HTML5 canvas for the graphics…\n
  17. - …and WebSockets for the communication between the player and the server.\n
  18. - On the server-side I'm using node.js for the game logic and WebSockets communication.\n
  19. - And, although not implemented yet, data storage on the server is going to be done via MongoDB a document-based database.\n- It's honestly quite amazing what can be achieved by mashing together a few open technologies.\n
  20. - Overall, I'm quite shocked at how well these technologies perform. Even with my shoddy code I've been able to knock together a fully functional real-time multiplayer game that is generally very playable.\n- However, there are a few issues with performance that I'd like to highlight.\n
  21. – The main issues have been with network communication and the WebSockets protocol.\n- For those who aren't that clued up on WebSockets, it's basically a way for a server to send data to a user, while at the same time allowing that user to send data back to the server, practically instantaneously. In comparison, Web traffic normally only allows data to be sent in one direction at a time, which can quite slow and annoying if you're wanting to send lots of data back and forth at the same time.\n- Originally I was sending data, like the position of players, through WebSockets as quite verbose, plain text.\n- This caused a lot of bottlenecks and performance issues because there was helluva lot of position data being sent back and forth.\n- To get around this I did 2 things…\n
  22. - Firstly, I created a communication protocol that dictated how data would be sent back and forth. I coupled this with the use of BISON (a binary version of JSON), which compressed the data a bit and chopped off anything unnecessary – for example, by cutting down large floating point numbers for pixel values.\n- The data is still sent as plain text, such is the nature of WebSockets, but putting this protocol in place cut the size of data immensely, allowing for more users to be on at the same time whilst having less of an impact on network performance.\n
  23. - Secondly, I limited the rate position data was sent at. At first I was sending position data every time a keyDown event was fired. What I failed to realise was that this event fired much faster than 30ms, the framerate of the game. By limiting the rate position data is sent to 30ms, it also cut down the amount of data being sent back and forth immensely.\n- Even with these 2 issues solved, each player still currently receives data for all players in the game, regardless of whether they appear on your screen or not. This is a really bad way to do things, for one very good reason. It requires a stupid amount of resources. Let me explain…\n
  24. - Having only one player in the game is easy, you have one message coming in to the server, saying the player has moved, for example, and one message coming back out, updating the player with details from the server.\n- But one lonely player does not equal a multiplayer game, let alone a massively multiplayer one.\n
  25. - So say we now have two players, meaning the game is now technically multiplayer, but still not massively.\n- There is still only 1 message in from each player, but now each player receives 2 messages back from the server; one for them, and one for the other player.\n- This isn’t too bad, but notice how the server is having to send 4 messages – 2 for each player.\n
  26. - 4 players now. It’s still not quite massive, but look how the server is having to send 16 messages, yet it only receives 4.\n- If you haven’t already noticed, the messages out from the server are the square of the number of players.\n- But 16 messages out is alright, it’s hardly going to tax the server.\n
  27. - So imagine if we now move into properly multiplayer territory, although still not quite massive.\n- 30 players in the game would mean 30 messages coming in to the server, and 900 – NINE HUNDRED – messages going out, every 30ms. That’s a silly amount of data for just 30 people.\n- But let’s go further still…\n
  28. - Say we really do go massive and have 100 players in the game at one time.\n- It’s not so bad for each individual player, they send one message in and get 100 back – that’s bearable. \n- But check out the server, it’s getting 100 messages in and is having to send out 10,000 back, every 30ms. That’s just a mentally stupid number that’s going to cause a lot of grief.\n- Fortunately there is a way around this that cuts down the amount of messages sent from the server; you just need to send data only for players visible to another player, in essence filtering out game data that doesn't affect the current player. It’s such a simple solution, but it’s one that I never even considered at first.\n
  29. - Now, canvas also has a performance issue, but only really when doing lots of animation – it just loves to hog the CPU.\n- Fortunately this will get much better with the introduction of things like hardware accelerated JavaScript that delegates intensive work with canvas to the graphics card.\n
  30. - Aside from technical limitations, the main issue has been with cheating, or manipulation of the game code.\n- Because the game is built in JavaScript, the code is easily accessible and is open for attack.\n- But there are ways to stop this…\n- One way to foil cheaters would be to perform all important calculations on the server, rather than on the client-side. That way, although the cheater may be able to manipulate his own game, it shouldn't affect other players.\n- Another way is to use private properties and methods in JavaScript objects in an effort to prevent them from being manipulated. This is a really simple way of making it difficult for cheaters to override the game code.\n- Finally, you could just obfuscate the code and minify it to make it unreadable. That’d help too.\n
  31. - All in all, I've been left enlightened by the open Web technologies that lie behind Rawkets, and its development is proving to be a valuable experience for me. I really hope that it has a bright future ahead of it as I’m enjoying developing it.\n- I'll be putting these slides up soon, so check out my website rawkes.com if you're interested in seeing them or finding out more about Rawkets and what I get up to.\n
  32. Thank you for listening, and I hope you enjoy the rest of your evening.\n