SlideShare une entreprise Scribd logo
1  sur  69
Télécharger pour lire hors ligne
ES
                      M t
                     A rip
                    G
                   B avaSc
                 E
               W L5 & J                                              es

             EN TM                                              bH
                                                                  aw
                                                                    k


           OP ing H                                           Ro

               s            U


Hi, I’m Rob Hawkes and I’m here today to talk about creating games on the open Web using
HTML5 and JavaScript.
If you don’t already know, I work at Mozilla.

Unsure about my devotion to Mozilla? This here is a beautiful chicken and leek pie with extra
Firefox goodness.

It was made by my talented girlfriend and it was delicious.
My official job title is Technical Evangelist, but I prefer what it says on my business card.

Part of my job is to engage with developers like you and I about cool new technologies on the
Web.

And for those of you with no idea of what a rawket is, I made a multiplayer game called
Rawkets in which players fly around in little rockets and shoot each other in the face with the
latest Web technologies. It’s quite addictive!

http://rawkets.com
I’m not sure how much time we’ll have for questions at the end, but feel free to grab me in
person after the talk or on Twitter.

These slides will go online after this talk and they’ll be available from my personal website.

I’ll put all the details up at the end.
Before we move on I just have a quick disclaimer.

This whole talk is about HTML5 and JavaScript as technologies for the creation of games.

They’re technologies that are intrinsically linked to each other by nature, but saying HTML5
and JavaScript every single time makes my head hurt.

So instead I’ll just be saying HTML5.

Just bear in mind that whenever I mention HTML5 I’m also referring to JavaScript as well.
So let’s go back in time for a moment.

Now I don’t actually remember when I first started playing computer games, although I know
that I started with consoles.
My first experience was with the ZX Spectrum and its amazing noises and epic loading times,
which I sorely miss…
Then there was the SNES, which really got me addicted to gaming.

Although it turns out my SNES was stolen when I was a kid. I did wonder where it went…
My parents replaced it with the Megadrive which, although not quite as awesome, was just as
fun.

From there it has been a constant stream of consoles, each smashing the performance and
functionality of its predecessor.

The N64, the Gamecube, the Dreamcast, the Playstation, the xBox.

You get the idea…
And spread throughout that time I dabbled in PC gaming, starting with games like Sim City…
And Megarace.

Who remembers this one?
And playing multiplayer Doom at my Dad’s Internet cafe.

What I’m getting at here is that gaming has been a big part of my life growing up, as it has
been with a lot of other people as well.

They’re fun to play, and they’re surprisingly fun to make.
ow
                                                            is n
                                                e                 cool
                                             tim            thing
                                          he             om
                                                           e
                                         T           do
                                                       fs
                                                   ol
                                               resh
                                             Th




Today we’re now on the threshold of something cool; being able to create awesome and
addictive games with nothing more than the technologies that we normally use to make
websites, namely HTML5 and JavaScript.

Since I began developing on the Web I really can’t remember a time when so many people are
working together to achieve something like this.
n ts
                                                  e ve ng
                                              ble       am
                                                           i

                                           ota       L5g
                                          N       HTM
                                                    in
                                               s-on
                                          going
                                       nt
                                    rta
                                  po
                                Im

Recently there have been some particularly notable events surrounding HTML5 gaming.
ns
                                                      itio
                                                  uis         up
                                               Acq g boug  ht
                                                     in
                                                        be
                                                     es
                                                  gin
                                        e       en
                                      am
                                    5g
                                 TML
                                H

The acquisition of HTML5 gaming engines by large companies.

Like Aves being bought by Zynga and Rocket Engine bought by Disney.
n t
                                                           e
                                                   itm ted
                                               ecru          an
                                              R         arew
                                                    ers
                                              velop
                                          e de
                                        am
                                     L5g
                                  HTM


The recent recruitment of HTML5 games developers for well-known gaming companies, like
Crytek.

http://crytek.com/career/offers/overview/frankfurt/programming-engineering/html5-
game-dev
in g
                                                          nd
                                                        Fu      eers
                                                             ion
                                                               thep
                                                            in
                                                    sting
                                                Inve




The huge amounts of funding being made available to games that help prove the Web as a
gaming platform.

Like the Game Lab from Bocoup and Atari’s general sponsorship of HTML5 games.

http://gamelab.bocoup.com
ce s
                                                       n
                                                    re mes
                                                 nfe       ga
                                               Co       L5
                                                     HTM
                                                      of
                                                 ture
                                               fu
                                           the
                                     ssing
                                   cu
                                Dis

The two large-scale HTML5 gaming conferences in the last few months.

onGameStart in Poland and New Game in San Francisco.

Each attended by hundreds of game and Web developers alike.
n t
                                               e
                                              m es
                                         olve am
                                        v
                                      in HTML  5g
                                  ser
                                          for
                               row e tech
                              B      th
                                          ing
                                     rovid
                                    P


The investing of time and resources by Google, Mozilla and Opera into the creation of
technologies and services for the benefit of gaming on the open Web.

Some of which we’ll be looking at in a moment.
nt
                                                   e
                                                m ce
                                       o  lve          an
                                   inv            rfo
                                                     rm
                                ok          ing
                                                pe
                              bo       tter
                           ace       Be
                          F

The involvement of Facebook in HTML5 gaming performance.

http://developers.facebook.com/blog/post/454/
e s
                                               g  a m
                                          iO S          ap
                                                          ab
                                                            le

                                     h it         than
                                                       c

                                 ing          ore
                              ort       L 5ism
                             P       HTM
                                     wing
                                  Sho


And the recent port to HTML5 of massively successful iOS games like Angry Birds and
Fieldrunners.

http://chrome.angrybirds.com
http://fieldrunnershtml5.appspot.com
es
                                                      g a m
                                                 ing            ples
                                              ist           exam
                                            Ex      he
                                                       be
                                                         st
                                                    ft
                                                  eo
                                               Som




Now there aren’t a huge amount of HTML5 games just yet, although that number is growing
every day.

In any case I thought I’d show you a selection of my favourites; some full blown games,
others demos of the technologies available to us.
Quake II




Multiplayer Quake II remake with Google GWT (Google Web Toolkit).

http://code.google.com/p/quake2-gwt-port/
Minecraftian worlds




Minecraft map viewer, using WebGL.

This isn’t really a game, but it’s not a long way from becoming a JavaScript port of Minecraft.

http://alteredqualia.com/three/examples/geometry_minecraft_ao.html
Freeciv




Freeciv, an open source Civilisation-type game that uses HTML5 canvas and WebSockets.

3D WebGL version currently being worked on.

http://freeciv.net
Rawkets




Rawkets is a multiplayer space shooter that I created while at university to explore HTML5
canvas and WebSockets.

http://rawkets.com
Angry Birds

There isn’t much to say about Angry Birds really, most of you probably know about it.

The HTML5 version uses WebGL for accelerated 2D graphics.
Fieldrunners

Fieldrunners was ported from iOS to HTML5 by Bocoup.

Like Angry Birds, it also uses WebGL for accelerated 2D graphics.
Created by Phil Banks (@emirpprime)


It’s clear that HTML5 is something that is really becoming a contender for games on the Web.
ipt
                                                           Scr
                                                       Java about?
                                        5 &           fuss
                                       L
                                      M at is all the
                                    HT    h     W




But why is it important?

Well to put it simply, HTML5 & JavaScript are the underlying technologies behind everything
related to the future of the Web.

Pretty much every new technology that is coming out within the browser-space is connected
to HTML5 and JavaScript in some way.

And what’s great is that every major browser has invested in them, so they won’t be going
anywhere any time soon.

But there’s more to it than that.
ies
                                                     log
                                                 n o         de
                                              ch source
                                          te he
                                                           co

                                       en          t
                                     Op      nv
                                               iew
                                           ca
                                           yone
                                         An



They are open technologies.

Anyone can get involved in their creation; through browser developers like Mozilla, or
through standards organisations like the W3C.

A few weeks ago I was in a W3C meeting to explore what is needed for making games with
these technologies. What was cool was that anyone was allowed to take part; which included
everyday developers, employees of major browsers, and games companies.

Also, these technologies are open in that anyone can view the resulting code that is used
within Web pages, which is a fantastic way of learning.
ie s
                                                        lo g
                                                   n  o           ith
                                             e c h           lop
                                                                 w

                                          e t            de
                                                           ve

                                       Fre        ree
                                                      to
                                              se.F
                                                  u
                                               to
                                          Free



They are free technologies.

Anyone can use these technologies without having to pay anything, both for using the
technology and developing with it.

This is unlike closed environments like Flash where you have to pay to use official code
editors and production environments.
less
                                                           -
                                                         in ware
                                                      lug
                                                     P       soft
                                                                rty
                                                            d-pa
                                                        thir
                                              on
                                           ce
                                      elian
                                  orer
                               Nom

They are technologies baked directly into the browser, which means no more plugins!

No longer do you have to rely on users having third-party software installed to use rich
media.
io n
                                                         t
                                                     ila ing
                                                 m p          st
                                               co        nd
                                                            te
                                            No      en
                                                       ta
                                                  pm
                                                 evelo
                                             ithd
                                        e   w
                                     tim
                                  ve
                                Sa

HTML5 and JavaScript don't require compiling, so development and testing can be extremely
rapid.

These technologies allow for quickly hacking stuff together to experiment then tidying things
up later.

It’s this rapid nature of JavaScript and HTML5 that make them so fun to develop with.
b  le
                                                        e  ra s
                                                    rop            rm
                                                Inte      ss
                                                             pla
                                                                tfo
                                                       cro
                                                   orka
                                               ttow
                                           buil
                                       are
                                    ey
                                  Th

These technologies are built to work across platforms; whether that’s desktop, mobile, TV, or
anything else!

This makes it great to develop this way because you can be sure that it will work on any
platform that has support.
o rt
                                                p p
                                           s u           ed
                                      se r         up
                                                     po
                                                       rt

                                  ro w         ares
                                -b        ures

                            ross ajor feat
                           C       m
                                       ost
                                      M


As with any technology on the Web it’s important that you can use it across all the major
browsers.

Fortunately the bigger features of HTML5 like video and audio are supported by all the major
browsers, with some of the newer and smaller features getting better support as time goes
on.

The situation isn’t perfect but we’re definitely in a position where these technologies can now
be used in production.

There’s a fantastic website called Can I Use? which lets you know what browsers support each
technology.

http://caniuse.com
But it’s not all rosy with HTML5.

Why might you not want to use it?

Here are just two of the major issues that are floating around right now.
ility
                                                      at ib
                                               m   p           ryt
                                                                  hing
                                             co             ve
                                         ull         pp
                                                        orte
                                        F      ers
                                                   su
                                              rows
                                          ll b
                                        ta
                                      No


Not every browser supports every part of HTML5.

For example, canvas isn’t supported out of the box by any IE below 9. Although, you can use
ExplorerCanvas to replicate canvas functionality, but it’s not ideal and as doesn’t perform as
well.

WebSockets is only support in IE10, and it isn’t supported in Android. But again, you can fake
this by using Flash for the sockets, like with Socket.IO.

WebGL also has patchy support with absolutely no support in IE, and Safari and Opera
requiring a development build.
RM
                                                              o D
                                                             N    ologies
                                                                 echn
                                                             eset
                                                           th
                                                        st
                                                   again
                                            goes
                                         It


If you need DRM or have a burning desire to hide absolutely everything about your code.

Remember, the code isn’t compiled, so where would the DRM go? The beauty of Web
technologies is that they can be read as plain text by simply viewing the page source.

However, DRM isn't bulletproof in itself and you can still crack into Flash.

You can obfuscate and minify your code if you think it will help, but even this can be worked
around with relative ease.
g y
                                                       o lo
                                                    chn         es
                                                  Te      L5g
                                                             am
                                                       TM
                                                        fH
                                                      so
                                                  cene
                                                 s
                                           he
                                         dt
                                      hin
                                    Be


There are a few key technologies that are involved in the development of HTML5 games.

Here are some of my favourites.
vas
                                                             an
                                                            C    tfo
                                                                    rm
                                                                    pla
                                                                ics
                                                            raph
                                                           g
                                                      2D




Canvas is a 2D graphics platform that uses both HTML5 and JavaScript.

It’s quite amazing what can be done with such simple drawing and image manipulation tools.

https://developer.mozilla.org/en/HTML/Canvas
Silk is a stunning example of what can be achieved by combining the simple drawing tools
available in canvas.

http://weavesilk.com
GL
                                                              eb
                                                             W form
                                                                     lat
                                                                   sp
                                                                hic
                                                            grap
                                                       3D




WebGL brings the ability to provide advanced 3D graphics directly within the browser.

https://developer.mozilla.org/en/WebGL
HelloRacer is a little game that lets you drive a Formula One car around your browser. It’s a
beautiful example of WebGL in action.

http://helloracer.com/webgl/
Rome is a music video created with WebGL. It’s an amazing example of what the technology
can achieve in a real-world situation given a large team.

http://ro.me
This is a rather freaky example of how interesting WebGL is.

It’s a demo that shows just how realistic WebGL can render materials, like skin. This isn’t
much unlike the quality of modern games consoles!

http://www.everyday3d.com/j3d/demo/014_Head.html
d io
                                                    a  u
                                                 L5          usic
                                               TM       nd
                                                           m
                                              H     grou
                                                        ck
                                                      ba
                                                   nd
                                               ctsa
                                           effe
                                      nd
                                   Sou


HTML5 audio allows for plugin-less game sound effects and background music.

Audio data APIs implemented by Mozilla and Google allow for manipulation of audio and
much more fine-grained control.

https://developer.mozilla.org/en/HTML/Element/audio
This is something I made especially for the ASSEMBLY 2011 event in Finland.

It’s an audio visualiser that uses WebGL and the HTML5 Audio Data API.

http://robhawkes.github.com/webgl-html5-audio-visualiser/
e ts
                                                     ock
                                                   bS       ation
                                                  e
                                                 W omm  un
                                                          ic

                                                      yerc
                                                ltipla
                                              Mu




WebSockets can be used for the real-time communication between a player and the game
server.

With WebSockets you can create multiplayer games with relative ease.

https://developer.mozilla.org/en/WebSockets
e.js
                                                              od
                                                             N    cation
                                                                   uni
                                                                  m
                                                               com
                                                    rk
                                                etwo
                                              dn
                                            an
                                      logic
                                    e
                                 Gam

Node is often used as a multiplayer game server, controlling the logic and handling the
WebSockets connections to the players.

It can be used for player authentication and the storage of data so gameplay can persist over
multiple game sessions.

This is all made relatively easy with great third-party modules, like Socket.IO for WebSockets,
and others that handle Redis and MongoDB for storage, for example.

http://nodejs.org
ge
                                                             ra
                                                         to vice
                                                    cal s r de
                                                  Lo       pla
                                                              ye
                                                        he t
                                                        on
                                                     ta
                                                   da
                                                ng
                                           Stori



Local storage is great for storing data locally on the player device.

This way you can cache game data and allow the game to pick up where the player left off.

https://developer.mozilla.org/en/DOM/Storage
PI
                                                          n  A
                                                    re  e           ul
                                                 Sc             we
                                                                  rf
                                             ull           et
                                                              po
                                            F      im
                                                      ple
                                                         ,y
                                                        S




The Full Screen API allows you to expand any HTML element to fill the users screen, even if
the browser isn’t running full screen itself.

The Mozilla implementation is not perfect yet because you can’t use the whole keyboard in
full-screen mode, but it’s in the latest Nightly builds and works in all other respects.

https://bugzilla.mozilla.org/show_bug.cgi?id=545812
http://blog.pearce.org.nz/2011/09/mozilla-full-screen-api-progress-update.html
https://wiki.mozilla.org/Platform/Features/Full_Screen_APIs
P I
                                                        d A
                                                   p a           eb
                                                 me         he
                                                               W
                                               Ga      et
                                                          ot
                                                     ol
                                                   ns co
                                                   he
                                                 gt
                                              gin
                                          Brin



The Gamepad API is one of the major improvements to input that is coming.

Both Mozilla and Google are working an an implementation of this and there is actually an
experimental build of Firefox available to the public that has it working.

What I find most interesting about the Gamepad API is that it might be just the thing we need
to finally justify HTML5 gaming on a TV or console.

Who wants to use a keyboard and mouse while sitting on the sofa?

https://wiki.mozilla.org/GamepadAPI
This is a little demo that I put together to show off the Gamepad API.

In this example I’ve connected my xBox 360 controller to my Mac, but I could also use a PS3
controller or practically any other USB controller.
P  I
                                                        A
                                                  o ck ace
                                                 L
                                             use       no
                                                         ne
                                                            pl

                                           Mo     rso
                                                     ri
                                                        cu
                                                     he
                                                   gt
                                              ockin
                                             L



The Mouse Lock API is an attempt at improving the mouse as an input device.

It would be used in situations like games and 3D visualisations where the mouse position
rotates or moves you around a 3D space.

As it stands there’d still be a cursor moving around the screen causing all sorts of trouble
when you want to click on something in your game.

With the new API you can lock your mouse position and stop it from getting in the way and
being a nuisance.

Both Google and Mozilla are working on an implementation of this right now.

https://bugzilla.mozilla.org/show_bug.cgi?id=633602
n s
                                                      tio
                                               plica bsite
                                             ap         yw
                                                          e
                                          eb     ta
                                                    fanc
                                         W ot jus
                                                     N




The concept of Web apps is something that is gaining a lot of traction at the moment.

HTML5 games are effectively glorified Web apps.

It’s no doubt this this traction is as a result of the success of native applications and games
on the desktop and mobile, particularly with iOS and Android.
Google are spending a lot of time on Web apps with the Chrome platform.

https://chrome.google.com/webstore
It’s something we’re also spending a lot of time on at Mozilla.

Although we’re approaching things a little differently.

We envisage Web apps to run on any device, any browser, and to be distributed through any
store or website.

https://apps.mozillalabs.com
https://developer.mozilla.org/en/OpenWebApps
se  ts
                                                         a s
                                                   line           yw
                                                                    ay

                                                Off       ern
                                                             et
                                                                an
                                                       Int
                                                     he
                                                   st
                                                 ed
                                               ne
                                           Who



One of the main differences between Web apps and native apps is that native apps can be run
offline.

New technologies like the application cache allow for a website or Web app to cache
necessary assets to that it can still run while offline.

This includes things like JavaScript files, CSS and images.

Combining this technique with intelligent use of things like local storage will allow your game
to continue working even if the Internet connection goes down. You just sync up all the
changes when it gets connected again.

https://developer.mozilla.org/en/Offline_resources_in_Firefox
nce
                                                            erie
                                                         exp      scre
                                                                      en

                                         like                  ho
                                                                 me
                                       p-                op
                                                            or
                                     Ap              eskt
                                                 thed
                                         from
                                     Run


Something that needs to be tackled with Web apps is how to make them feel like real
applications rather than websites.

One way that is being considered is completely removing the browser chrome and running
the application in it’s own window.

This will effectively mean that you have full control of the app UI and it won’t look like it’s
being run in a browser.
This kind of approach isn’t anything new but it will be the first time it will be baked into
browsers themselves.

For now you can use things like Fluid, which is a Mac app that lets you turn a website into an
app that you can run from an icon on the desktop.

It uses a browser engine behind the scenes but it hides away all the unnecessary chrome so it
looks native.
I currently use this approach for music streaming websites like Grooveshark to turn them into
an app.

That way I don’t have to remember which tab they’re open in my browser.
e s
                                                      gin
                                                  e n         ay
                                                e
                                               m game     st
                                                            od
                                             Ga
                                                  ML5
                                                     HT
                                                  te
                                              Crea




If you haven’t already then I encourage you to give HTML5 game development a go.

And you don't have to create an entire game infrastructure from scratch, you can use some of
the existing engines that are proving popular.
Impact.

I used this recently, and it’s really well made.

The documentation is great and the author is active and very helpful.

http://impactjs.com/
Crafty.

It’s a free engine and is doing much better than other free engines out there.

http://craftyjs.com/
Isongenic Engine.

One of the most promising engines out there today.

Massively multiplayer networking built in, uses Node and MongoDB, and has canvas or DOM-
based graphics.

http://www.isogenicengine.com
tu  re
                                                            e fu        ng
                                                          Th       gin
                                                                      ni
                                                                 be
                                                                   tthe
                                                             is jus
                                                        is
                                                      Th




It’s still early days with HTML5 games.

There are a few things that I’d like to see in the near future that will help.

Need better ways to benchmark browser performance, network connections and operating
systems specifically for games.

Better HTML5 audio. Right now things can be a little tricky, the ideal situation would be to
have consistent support across browsers.

Hardware accelerated canvas on Mac and mobile devices. This is a small ask but one that I
feel will make all the difference.

Better documentation for game development in JavaScript. This is something I’m working on
with Mozilla, but more documentation is needed in general. I’d love to see more game
developers sharing their solutions to problems that they encountered during the creation of
their games.
Rob Hawkes
                       @robhawkes




             Rawkes.com
             Personal website and blog

    RECENT PROJECTS                               MORE COOL STUFF


             Twitter sentiment analysis                     Rawket Scientist
             Delving into your soul                         Technical Evangelist at Mozilla


             Rawkets.com                                    jsCraft
             HTML5 & WebSockets game                        Minecraft port to JavaScript



Get in touch with me on Twitter: @robhawkes

Follow my blog (Rawkes) to keep up to date with stuff that I’m working on: http://rawkes.com

I’ve recently worked on a project that analysis sentiment on Twitter: http://rawkes.com/blog/
2011/05/05/people-love-a-good-smooch-on-a-balcony

Rawkets is my multiplayer HTML5 and JavaScript game. Play it, it’s fun: http://rawkets.com

I’m currently experimenting with WebGL to see how feasible a JavaScript port of Minecraft
would be. The working title is jsCraft.
O U
                             Y s?
                           K tion
                          N ues
                         A yq
                       TH An                                    R b
                                                                       es
                                                                     wk es
                                                                   Ha wk
                                                                 ob ha
                                                                  ro
                                                                 @




Thank you.

If you have any questions feel free to grab me on Twitter (@robhawkes), or email
rob@rawkes.com

Contenu connexe

En vedette

040502 Ejewish SemanticWeb Jewishlife
040502 Ejewish SemanticWeb Jewishlife040502 Ejewish SemanticWeb Jewishlife
040502 Ejewish SemanticWeb JewishlifeDov Winer
 
Learning sessions #6 Residency Incubator brazilian arts foundation
Learning sessions #6 Residency Incubator   brazilian arts foundationLearning sessions #6 Residency Incubator   brazilian arts foundation
Learning sessions #6 Residency Incubator brazilian arts foundationjvielman
 
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
 
Oscar Gamero Garate - Canciones italianas
Oscar Gamero Garate - Canciones italianasOscar Gamero Garate - Canciones italianas
Oscar Gamero Garate - Canciones italianasmeroga
 
Dov Winer at Info2010 Conference
Dov Winer at Info2010 ConferenceDov Winer at Info2010 Conference
Dov Winer at Info2010 ConferenceDov Winer
 
ZinZin - Para Pengunjung Misterius
ZinZin - Para Pengunjung MisteriusZinZin - Para Pengunjung Misterius
ZinZin - Para Pengunjung MisteriusNur Agustinus
 
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
 
Mekatronika edisi khusus ufo (1978)
Mekatronika edisi khusus ufo (1978)Mekatronika edisi khusus ufo (1978)
Mekatronika edisi khusus ufo (1978)Nur Agustinus
 
Blue Rose Jf
Blue Rose JfBlue Rose Jf
Blue Rose Jfyangbqada
 
AQA English - Unit 1 Understanding non-fiction texts
AQA English - Unit 1 Understanding non-fiction textsAQA English - Unit 1 Understanding non-fiction texts
AQA English - Unit 1 Understanding non-fiction textsmissbec
 
Kitab Pertama tentang Masa Kecil Yesus Kristus
Kitab Pertama tentang Masa Kecil Yesus KristusKitab Pertama tentang Masa Kecil Yesus Kristus
Kitab Pertama tentang Masa Kecil Yesus KristusNur Agustinus
 
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
 
Making the Web Multilingual
Making the Web MultilingualMaking the Web Multilingual
Making the Web MultilingualJessica Spengler
 

En vedette (20)

040502 Ejewish SemanticWeb Jewishlife
040502 Ejewish SemanticWeb Jewishlife040502 Ejewish SemanticWeb Jewishlife
040502 Ejewish SemanticWeb Jewishlife
 
Learning sessions #6 Residency Incubator brazilian arts foundation
Learning sessions #6 Residency Incubator   brazilian arts foundationLearning sessions #6 Residency Incubator   brazilian arts foundation
Learning sessions #6 Residency Incubator brazilian arts foundation
 
That's not what he said!
That's not what he said!That's not what he said!
That's not what he said!
 
Penilaian hasil dan dampak program
Penilaian hasil dan dampak program Penilaian hasil dan dampak program
Penilaian hasil dan dampak program
 
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
 
eun
euneun
eun
 
Oscar Gamero Garate - Canciones italianas
Oscar Gamero Garate - Canciones italianasOscar Gamero Garate - Canciones italianas
Oscar Gamero Garate - Canciones italianas
 
Dov Winer at Info2010 Conference
Dov Winer at Info2010 ConferenceDov Winer at Info2010 Conference
Dov Winer at Info2010 Conference
 
ZinZin - Para Pengunjung Misterius
ZinZin - Para Pengunjung MisteriusZinZin - Para Pengunjung Misterius
ZinZin - Para Pengunjung Misterius
 
12 34
12 3412 34
12 34
 
LOS ASTRONOMOS-3
LOS ASTRONOMOS-3LOS ASTRONOMOS-3
LOS ASTRONOMOS-3
 
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
 
Mekatronika edisi khusus ufo (1978)
Mekatronika edisi khusus ufo (1978)Mekatronika edisi khusus ufo (1978)
Mekatronika edisi khusus ufo (1978)
 
Blue Rose Jf
Blue Rose JfBlue Rose Jf
Blue Rose Jf
 
AQA English - Unit 1 Understanding non-fiction texts
AQA English - Unit 1 Understanding non-fiction textsAQA English - Unit 1 Understanding non-fiction texts
AQA English - Unit 1 Understanding non-fiction texts
 
Nrrc promising resilience perspectives 7 2013 f
Nrrc promising resilience perspectives 7 2013 fNrrc promising resilience perspectives 7 2013 f
Nrrc promising resilience perspectives 7 2013 f
 
Kitab Pertama tentang Masa Kecil Yesus Kristus
Kitab Pertama tentang Masa Kecil Yesus KristusKitab Pertama tentang Masa Kecil Yesus Kristus
Kitab Pertama tentang Masa Kecil Yesus Kristus
 
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
 
Atlanta Georgia
Atlanta GeorgiaAtlanta Georgia
Atlanta Georgia
 
Making the Web Multilingual
Making the Web MultilingualMaking the Web Multilingual
Making the Web Multilingual
 

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
 
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
 
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
 
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 - 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
 
Geek Meet - Boot to Gecko: The Future of Mobile?
Geek Meet - Boot to Gecko: The Future of Mobile?Geek Meet - Boot to Gecko: The Future of Mobile?
Geek Meet - Boot to Gecko: The Future of Mobile?Robin Hawkes
 
HTML5 Games - Not Just for Gamers
HTML5 Games - Not Just for GamersHTML5 Games - Not Just for Gamers
HTML5 Games - Not Just for GamersRobin Hawkes
 
Open Web Apps and the Mozilla Labs Apps project
Open Web Apps and the Mozilla Labs Apps projectOpen Web Apps and the Mozilla Labs Apps project
Open Web Apps and the Mozilla Labs Apps projectRobin Hawkes
 
Tomorrow's Web and Future Technologies - WDC2011
Tomorrow's Web and Future Technologies - WDC2011Tomorrow's Web and Future Technologies - WDC2011
Tomorrow's Web and Future Technologies - WDC2011Robin 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
 
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
 
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
 
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 - 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
 
Geek Meet - Boot to Gecko: The Future of Mobile?
Geek Meet - Boot to Gecko: The Future of Mobile?Geek Meet - Boot to Gecko: The Future of Mobile?
Geek Meet - Boot to Gecko: The Future of Mobile?
 
HTML5 Games - Not Just for Gamers
HTML5 Games - Not Just for GamersHTML5 Games - Not Just for Gamers
HTML5 Games - Not Just for Gamers
 
Open Web Apps and the Mozilla Labs Apps project
Open Web Apps and the Mozilla Labs Apps projectOpen Web Apps and the Mozilla Labs Apps project
Open Web Apps and the Mozilla Labs Apps project
 
Tomorrow's Web and Future Technologies - WDC2011
Tomorrow's Web and Future Technologies - WDC2011Tomorrow's Web and Future Technologies - WDC2011
Tomorrow's Web and Future Technologies - WDC2011
 

Dernier

Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
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
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 

Dernier (20)

Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
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
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 

Open Web Games using HTML5 & JavaScript

  • 1. ES M t A rip G B avaSc E W L5 & J es EN TM bH aw k OP ing H Ro s U Hi, I’m Rob Hawkes and I’m here today to talk about creating games on the open Web using HTML5 and JavaScript.
  • 2. If you don’t already know, I work at Mozilla. Unsure about my devotion to Mozilla? This here is a beautiful chicken and leek pie with extra Firefox goodness. It was made by my talented girlfriend and it was delicious.
  • 3. My official job title is Technical Evangelist, but I prefer what it says on my business card. Part of my job is to engage with developers like you and I about cool new technologies on the Web. And for those of you with no idea of what a rawket is, I made a multiplayer game called Rawkets in which players fly around in little rockets and shoot each other in the face with the latest Web technologies. It’s quite addictive! http://rawkets.com
  • 4. I’m not sure how much time we’ll have for questions at the end, but feel free to grab me in person after the talk or on Twitter. These slides will go online after this talk and they’ll be available from my personal website. I’ll put all the details up at the end.
  • 5. Before we move on I just have a quick disclaimer. This whole talk is about HTML5 and JavaScript as technologies for the creation of games. They’re technologies that are intrinsically linked to each other by nature, but saying HTML5 and JavaScript every single time makes my head hurt. So instead I’ll just be saying HTML5. Just bear in mind that whenever I mention HTML5 I’m also referring to JavaScript as well.
  • 6. So let’s go back in time for a moment. Now I don’t actually remember when I first started playing computer games, although I know that I started with consoles.
  • 7. My first experience was with the ZX Spectrum and its amazing noises and epic loading times, which I sorely miss…
  • 8. Then there was the SNES, which really got me addicted to gaming. Although it turns out my SNES was stolen when I was a kid. I did wonder where it went…
  • 9. My parents replaced it with the Megadrive which, although not quite as awesome, was just as fun. From there it has been a constant stream of consoles, each smashing the performance and functionality of its predecessor. The N64, the Gamecube, the Dreamcast, the Playstation, the xBox. You get the idea…
  • 10. And spread throughout that time I dabbled in PC gaming, starting with games like Sim City…
  • 12. And playing multiplayer Doom at my Dad’s Internet cafe. What I’m getting at here is that gaming has been a big part of my life growing up, as it has been with a lot of other people as well. They’re fun to play, and they’re surprisingly fun to make.
  • 13. ow is n e cool tim thing he om e T do fs ol resh Th Today we’re now on the threshold of something cool; being able to create awesome and addictive games with nothing more than the technologies that we normally use to make websites, namely HTML5 and JavaScript. Since I began developing on the Web I really can’t remember a time when so many people are working together to achieve something like this.
  • 14. n ts e ve ng ble am i ota L5g N HTM in s-on going nt rta po Im Recently there have been some particularly notable events surrounding HTML5 gaming.
  • 15. ns itio uis up Acq g boug ht in be es gin e en am 5g TML H The acquisition of HTML5 gaming engines by large companies. Like Aves being bought by Zynga and Rocket Engine bought by Disney.
  • 16. n t e itm ted ecru an R arew ers velop e de am L5g HTM The recent recruitment of HTML5 games developers for well-known gaming companies, like Crytek. http://crytek.com/career/offers/overview/frankfurt/programming-engineering/html5- game-dev
  • 17. in g nd Fu eers ion thep in sting Inve The huge amounts of funding being made available to games that help prove the Web as a gaming platform. Like the Game Lab from Bocoup and Atari’s general sponsorship of HTML5 games. http://gamelab.bocoup.com
  • 18. ce s n re mes nfe ga Co L5 HTM of ture fu the ssing cu Dis The two large-scale HTML5 gaming conferences in the last few months. onGameStart in Poland and New Game in San Francisco. Each attended by hundreds of game and Web developers alike.
  • 19. n t e m es olve am v in HTML 5g ser for row e tech B th ing rovid P The investing of time and resources by Google, Mozilla and Opera into the creation of technologies and services for the benefit of gaming on the open Web. Some of which we’ll be looking at in a moment.
  • 20. nt e m ce o lve an inv rfo rm ok ing pe bo tter ace Be F The involvement of Facebook in HTML5 gaming performance. http://developers.facebook.com/blog/post/454/
  • 21. e s g a m iO S ap ab le h it than c ing ore ort L 5ism P HTM wing Sho And the recent port to HTML5 of massively successful iOS games like Angry Birds and Fieldrunners. http://chrome.angrybirds.com http://fieldrunnershtml5.appspot.com
  • 22. es g a m ing ples ist exam Ex he be st ft eo Som Now there aren’t a huge amount of HTML5 games just yet, although that number is growing every day. In any case I thought I’d show you a selection of my favourites; some full blown games, others demos of the technologies available to us.
  • 23. Quake II Multiplayer Quake II remake with Google GWT (Google Web Toolkit). http://code.google.com/p/quake2-gwt-port/
  • 24. Minecraftian worlds Minecraft map viewer, using WebGL. This isn’t really a game, but it’s not a long way from becoming a JavaScript port of Minecraft. http://alteredqualia.com/three/examples/geometry_minecraft_ao.html
  • 25. Freeciv Freeciv, an open source Civilisation-type game that uses HTML5 canvas and WebSockets. 3D WebGL version currently being worked on. http://freeciv.net
  • 26. Rawkets Rawkets is a multiplayer space shooter that I created while at university to explore HTML5 canvas and WebSockets. http://rawkets.com
  • 27. Angry Birds There isn’t much to say about Angry Birds really, most of you probably know about it. The HTML5 version uses WebGL for accelerated 2D graphics.
  • 28. Fieldrunners Fieldrunners was ported from iOS to HTML5 by Bocoup. Like Angry Birds, it also uses WebGL for accelerated 2D graphics.
  • 29. Created by Phil Banks (@emirpprime) It’s clear that HTML5 is something that is really becoming a contender for games on the Web.
  • 30. ipt Scr Java about? 5 & fuss L M at is all the HT h W But why is it important? Well to put it simply, HTML5 & JavaScript are the underlying technologies behind everything related to the future of the Web. Pretty much every new technology that is coming out within the browser-space is connected to HTML5 and JavaScript in some way. And what’s great is that every major browser has invested in them, so they won’t be going anywhere any time soon. But there’s more to it than that.
  • 31. ies log n o de ch source te he co en t Op nv iew ca yone An They are open technologies. Anyone can get involved in their creation; through browser developers like Mozilla, or through standards organisations like the W3C. A few weeks ago I was in a W3C meeting to explore what is needed for making games with these technologies. What was cool was that anyone was allowed to take part; which included everyday developers, employees of major browsers, and games companies. Also, these technologies are open in that anyone can view the resulting code that is used within Web pages, which is a fantastic way of learning.
  • 32. ie s lo g n o ith e c h lop w e t de ve Fre ree to se.F u to Free They are free technologies. Anyone can use these technologies without having to pay anything, both for using the technology and developing with it. This is unlike closed environments like Flash where you have to pay to use official code editors and production environments.
  • 33. less - in ware lug P soft rty d-pa thir on ce elian orer Nom They are technologies baked directly into the browser, which means no more plugins! No longer do you have to rely on users having third-party software installed to use rich media.
  • 34. io n t ila ing m p st co nd te No en ta pm evelo ithd e w tim ve Sa HTML5 and JavaScript don't require compiling, so development and testing can be extremely rapid. These technologies allow for quickly hacking stuff together to experiment then tidying things up later. It’s this rapid nature of JavaScript and HTML5 that make them so fun to develop with.
  • 35. b le e ra s rop rm Inte ss pla tfo cro orka ttow buil are ey Th These technologies are built to work across platforms; whether that’s desktop, mobile, TV, or anything else! This makes it great to develop this way because you can be sure that it will work on any platform that has support.
  • 36. o rt p p s u ed se r up po rt ro w ares -b ures ross ajor feat C m ost M As with any technology on the Web it’s important that you can use it across all the major browsers. Fortunately the bigger features of HTML5 like video and audio are supported by all the major browsers, with some of the newer and smaller features getting better support as time goes on. The situation isn’t perfect but we’re definitely in a position where these technologies can now be used in production. There’s a fantastic website called Can I Use? which lets you know what browsers support each technology. http://caniuse.com
  • 37. But it’s not all rosy with HTML5. Why might you not want to use it? Here are just two of the major issues that are floating around right now.
  • 38. ility at ib m p ryt hing co ve ull pp orte F ers su rows ll b ta No Not every browser supports every part of HTML5. For example, canvas isn’t supported out of the box by any IE below 9. Although, you can use ExplorerCanvas to replicate canvas functionality, but it’s not ideal and as doesn’t perform as well. WebSockets is only support in IE10, and it isn’t supported in Android. But again, you can fake this by using Flash for the sockets, like with Socket.IO. WebGL also has patchy support with absolutely no support in IE, and Safari and Opera requiring a development build.
  • 39. RM o D N ologies echn eset th st again goes It If you need DRM or have a burning desire to hide absolutely everything about your code. Remember, the code isn’t compiled, so where would the DRM go? The beauty of Web technologies is that they can be read as plain text by simply viewing the page source. However, DRM isn't bulletproof in itself and you can still crack into Flash. You can obfuscate and minify your code if you think it will help, but even this can be worked around with relative ease.
  • 40. g y o lo chn es Te L5g am TM fH so cene s he dt hin Be There are a few key technologies that are involved in the development of HTML5 games. Here are some of my favourites.
  • 41. vas an C tfo rm pla ics raph g 2D Canvas is a 2D graphics platform that uses both HTML5 and JavaScript. It’s quite amazing what can be done with such simple drawing and image manipulation tools. https://developer.mozilla.org/en/HTML/Canvas
  • 42. Silk is a stunning example of what can be achieved by combining the simple drawing tools available in canvas. http://weavesilk.com
  • 43. GL eb W form lat sp hic grap 3D WebGL brings the ability to provide advanced 3D graphics directly within the browser. https://developer.mozilla.org/en/WebGL
  • 44. HelloRacer is a little game that lets you drive a Formula One car around your browser. It’s a beautiful example of WebGL in action. http://helloracer.com/webgl/
  • 45. Rome is a music video created with WebGL. It’s an amazing example of what the technology can achieve in a real-world situation given a large team. http://ro.me
  • 46. This is a rather freaky example of how interesting WebGL is. It’s a demo that shows just how realistic WebGL can render materials, like skin. This isn’t much unlike the quality of modern games consoles! http://www.everyday3d.com/j3d/demo/014_Head.html
  • 47. d io a u L5 usic TM nd m H grou ck ba nd ctsa effe nd Sou HTML5 audio allows for plugin-less game sound effects and background music. Audio data APIs implemented by Mozilla and Google allow for manipulation of audio and much more fine-grained control. https://developer.mozilla.org/en/HTML/Element/audio
  • 48. This is something I made especially for the ASSEMBLY 2011 event in Finland. It’s an audio visualiser that uses WebGL and the HTML5 Audio Data API. http://robhawkes.github.com/webgl-html5-audio-visualiser/
  • 49. e ts ock bS ation e W omm un ic yerc ltipla Mu WebSockets can be used for the real-time communication between a player and the game server. With WebSockets you can create multiplayer games with relative ease. https://developer.mozilla.org/en/WebSockets
  • 50. e.js od N cation uni m com rk etwo dn an logic e Gam Node is often used as a multiplayer game server, controlling the logic and handling the WebSockets connections to the players. It can be used for player authentication and the storage of data so gameplay can persist over multiple game sessions. This is all made relatively easy with great third-party modules, like Socket.IO for WebSockets, and others that handle Redis and MongoDB for storage, for example. http://nodejs.org
  • 51. ge ra to vice cal s r de Lo pla ye he t on ta da ng Stori Local storage is great for storing data locally on the player device. This way you can cache game data and allow the game to pick up where the player left off. https://developer.mozilla.org/en/DOM/Storage
  • 52. PI n A re e ul Sc we rf ull et po F im ple ,y S The Full Screen API allows you to expand any HTML element to fill the users screen, even if the browser isn’t running full screen itself. The Mozilla implementation is not perfect yet because you can’t use the whole keyboard in full-screen mode, but it’s in the latest Nightly builds and works in all other respects. https://bugzilla.mozilla.org/show_bug.cgi?id=545812 http://blog.pearce.org.nz/2011/09/mozilla-full-screen-api-progress-update.html https://wiki.mozilla.org/Platform/Features/Full_Screen_APIs
  • 53. P I d A p a eb me he W Ga et ot ol ns co he gt gin Brin The Gamepad API is one of the major improvements to input that is coming. Both Mozilla and Google are working an an implementation of this and there is actually an experimental build of Firefox available to the public that has it working. What I find most interesting about the Gamepad API is that it might be just the thing we need to finally justify HTML5 gaming on a TV or console. Who wants to use a keyboard and mouse while sitting on the sofa? https://wiki.mozilla.org/GamepadAPI
  • 54. This is a little demo that I put together to show off the Gamepad API. In this example I’ve connected my xBox 360 controller to my Mac, but I could also use a PS3 controller or practically any other USB controller.
  • 55. P I A o ck ace L use no ne pl Mo rso ri cu he gt ockin L The Mouse Lock API is an attempt at improving the mouse as an input device. It would be used in situations like games and 3D visualisations where the mouse position rotates or moves you around a 3D space. As it stands there’d still be a cursor moving around the screen causing all sorts of trouble when you want to click on something in your game. With the new API you can lock your mouse position and stop it from getting in the way and being a nuisance. Both Google and Mozilla are working on an implementation of this right now. https://bugzilla.mozilla.org/show_bug.cgi?id=633602
  • 56. n s tio plica bsite ap yw e eb ta fanc W ot jus N The concept of Web apps is something that is gaining a lot of traction at the moment. HTML5 games are effectively glorified Web apps. It’s no doubt this this traction is as a result of the success of native applications and games on the desktop and mobile, particularly with iOS and Android.
  • 57. Google are spending a lot of time on Web apps with the Chrome platform. https://chrome.google.com/webstore
  • 58. It’s something we’re also spending a lot of time on at Mozilla. Although we’re approaching things a little differently. We envisage Web apps to run on any device, any browser, and to be distributed through any store or website. https://apps.mozillalabs.com https://developer.mozilla.org/en/OpenWebApps
  • 59. se ts a s line yw ay Off ern et an Int he st ed ne Who One of the main differences between Web apps and native apps is that native apps can be run offline. New technologies like the application cache allow for a website or Web app to cache necessary assets to that it can still run while offline. This includes things like JavaScript files, CSS and images. Combining this technique with intelligent use of things like local storage will allow your game to continue working even if the Internet connection goes down. You just sync up all the changes when it gets connected again. https://developer.mozilla.org/en/Offline_resources_in_Firefox
  • 60. nce erie exp scre en like ho me p- op or Ap eskt thed from Run Something that needs to be tackled with Web apps is how to make them feel like real applications rather than websites. One way that is being considered is completely removing the browser chrome and running the application in it’s own window. This will effectively mean that you have full control of the app UI and it won’t look like it’s being run in a browser.
  • 61. This kind of approach isn’t anything new but it will be the first time it will be baked into browsers themselves. For now you can use things like Fluid, which is a Mac app that lets you turn a website into an app that you can run from an icon on the desktop. It uses a browser engine behind the scenes but it hides away all the unnecessary chrome so it looks native.
  • 62. I currently use this approach for music streaming websites like Grooveshark to turn them into an app. That way I don’t have to remember which tab they’re open in my browser.
  • 63. e s gin e n ay e m game st od Ga ML5 HT te Crea If you haven’t already then I encourage you to give HTML5 game development a go. And you don't have to create an entire game infrastructure from scratch, you can use some of the existing engines that are proving popular.
  • 64. Impact. I used this recently, and it’s really well made. The documentation is great and the author is active and very helpful. http://impactjs.com/
  • 65. Crafty. It’s a free engine and is doing much better than other free engines out there. http://craftyjs.com/
  • 66. Isongenic Engine. One of the most promising engines out there today. Massively multiplayer networking built in, uses Node and MongoDB, and has canvas or DOM- based graphics. http://www.isogenicengine.com
  • 67. tu re e fu ng Th gin ni be tthe is jus is Th It’s still early days with HTML5 games. There are a few things that I’d like to see in the near future that will help. Need better ways to benchmark browser performance, network connections and operating systems specifically for games. Better HTML5 audio. Right now things can be a little tricky, the ideal situation would be to have consistent support across browsers. Hardware accelerated canvas on Mac and mobile devices. This is a small ask but one that I feel will make all the difference. Better documentation for game development in JavaScript. This is something I’m working on with Mozilla, but more documentation is needed in general. I’d love to see more game developers sharing their solutions to problems that they encountered during the creation of their games.
  • 68. Rob Hawkes @robhawkes Rawkes.com Personal website and blog RECENT PROJECTS MORE COOL STUFF Twitter sentiment analysis Rawket Scientist Delving into your soul Technical Evangelist at Mozilla Rawkets.com jsCraft HTML5 & WebSockets game Minecraft port to JavaScript Get in touch with me on Twitter: @robhawkes Follow my blog (Rawkes) to keep up to date with stuff that I’m working on: http://rawkes.com I’ve recently worked on a project that analysis sentiment on Twitter: http://rawkes.com/blog/ 2011/05/05/people-love-a-good-smooch-on-a-balcony Rawkets is my multiplayer HTML5 and JavaScript game. Play it, it’s fun: http://rawkets.com I’m currently experimenting with WebGL to see how feasible a JavaScript port of Minecraft would be. The working title is jsCraft.
  • 69. O U Y s? K tion N ues A yq TH An R b es wk es Ha wk ob ha ro @ Thank you. If you have any questions feel free to grab me on Twitter (@robhawkes), or email rob@rawkes.com