• Save
HTML5 and Other Modern Browser Game Tech
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

HTML5 and Other Modern Browser Game Tech

on

  • 17,316 views

Overview of HTML5 and other modern browser game technologies. Presented at Game Developers Conference 2011 by Vincent Scheib

Overview of HTML5 and other modern browser game technologies. Presented at Game Developers Conference 2011 by Vincent Scheib

Statistics

Views

Total Views
17,316
Views on SlideShare
10,107
Embed Views
7,209

Actions

Likes
10
Downloads
0
Comments
0

55 Embeds 7,209

http://beautifulpixels.blogspot.com 3197
http://zho.pe.kr 2662
http://feeds.feedburner.com 612
http://www.scoop.it 310
http://192.168.1.56 63
http://theoldreader.com 42
http://static.slidesharecdn.com 33
http://beautifulpixels.blogspot.co.uk 30
http://monkeyispig.com 22
http://beautifulpixels.blogspot.ca 21
http://paper.li 20
http://beautifulpixels.blogspot.de 19
http://beautifulpixels.blogspot.fr 17
http://www.beautifulpixels.blogspot.com 17
http://beautifulpixels.blogspot.kr 15
http://beautifulpixels.blogspot.com.au 11
http://beautifulpixels.blogspot.com.ar 9
http://beautifulpixels.blogspot.se 8
http://beautifulpixels.blogspot.ch 7
http://beautifulpixels.blogspot.com.es 6
http://www.mefeedia.com 6
http://beautifulpixels.blogspot.ro 6
http://beautifulpixels.blogspot.com.br 6
http://beautifulpixels.blogspot.it 5
http://www.hanrss.com 5
http://beautifulpixels.blogspot.ru 5
http://newsblur.com 5
http://webcache.googleusercontent.com 4
http://beautifulpixels.blogspot.in 4
http://beautifulpixels.blogspot.jp 4
http://beautifulpixels.blogspot.dk 3
http://beautifulpixels.blogspot.fi 3
http://www.newsblur.com 3
http://beautifulpixels.blogspot.sg 2
http://beautifulpixels.blogspot.co.nz 2
http://beautifulpixels.blogspot.no 2
http://beautifulpixels.blogspot.hk 2
http://beautifulpixels.blogspot.sk 2
http://www.xfruits.com 2
http://beautifulpixels.blogspot.pt 2
http://beautifulpixels.blogspot.co.il 1
http://beautifulpixels.blogspot.be 1
http://localhost 1
http://beautifulpixels.blogspot.com.tr 1
http://translate.googleusercontent.com 1
https://theoldreader.com 1
http://beautifulpixels.blogspot.gr 1
http://www.monkeyispig.com 1
http://beautifulpixels.blogspot.ae 1
http://web.archive.org 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • - New and Upcoming tech- Why care - Zero friction – available in browser, no plugins - Forward looking – Some tech ready today, more coming - Mobile – Many platforms, ubiquity
  • - No Flash on iOS browser- Security an issue with plugins
  • - Important metric is how many users will play, if a plugin is installed already or not
  • -Plugins worst – full permission for any web page
  • -Lots of options on desktop-iOS limited!-Webkit on several
  • -WebKit over 50%-HTML5 support pervasive
  • -WebKit over 50%-HTML5 support pervasive
  • - Android allows C++/Java from JS- Rich input if correct forms used- Android has simple touch, iOSmultitouch
  • 120M Chrome users
  • - Synced between browsers- Easy offline- Permissions cleared at “install” time
  • CWS is a new platform for distributing games and apps on the webTargeted at 120M Chrome usersMonetization currently includes in-store payments and adsIn-app payments solution is coming soon and is a perfect fit for gamesSign up for early betaMore details at the booth
  • - 2D context, widely supported (IE9)- Procedural images- Dynamic OK, but not designed specifically for “animated frames”
  • -Simple 2D- Physics- Shooters (typing shooter) “Z-type”-Retro Sprite “Onslaught”- MMO Scrabble “Word Squared”-3D (mostly flat, though textured possible to)
  • -DrawImage takes Sub Regions as well
  • - Implementations around for 5 years, standard started 10 years ago
  • -EXTERNAL Javascript tool-Capturevis HUD-Step Draw Calls-State-Texture state-Texture Browser-Shader programs, view parameters-View shaders-View data buffers as well
  • -Optional to use Google API, but easy
  • -Larger API
  • -Larger API
  • -Editor’s Draft
  • -W3C Editors Draft of Spec
  • -3 component accelerations, rotations-interval in milliseconds
  • -Session storage clears at end of session
  • -HTML5
  • -Copies message data between processes-No DOM access
  • -Plugins have full access to OS-JS safely sandboxed, browser offers security-NaCl does the same for C++

HTML5 and Other Modern Browser Game Tech Presentation Transcript

  • 1. HTML5 and other Modern Browser Game Tech
    Vincent Scheib
    Software Engineer, Chrome GPU team
    February 28, 2011
    1
  • 2. This is an Overview
    Overview & Motivation
    Browsers, Platforms
    Technology Survey
    Graphics, Audio, Networking, Storage…
    Libraries, Benchmarks
    2
  • 3. Overview & Motivation
    3
  • 4. My Perspective on the Last Decade & Web Tech
    4
    GPU Acceleration
    C++ in Browser
    Chrome OS
  • 5. April 1 2010 – Quake II in HTML5
    Ray Cromwell, Stefan Haustein, Joel Webber – Google
    - WebGL, canvas
    - Web Sockets
    - Local Storage
    - Audio
    Chrome & Safari
    5
  • 6. No Plugins
    6
    Not discussing: Flash, Java, Silverlight, Unity
  • 7. Plugin Use / Installation% of Chrome Users
    7
    iOS
    * Data from users opting in to reporting usage statistics, 2010
  • 8. Low Friction, Better Security
    8
  • 9. Browsers and Platforms
    9
  • 10. Browser Trends
    10
    IE
    Firefox
    Chrome
  • 11. Mobile Trends
    Opera
    iPhone
    Nokia
    BlackBerry
    Android
    11
  • 12. Mobile Trends
    iPhone
    Android
    Nokia
    BlackBerry
    Opera
    iPhone
    Nokia
    BlackBerry
    Android
    12
  • 13. Mobile Native or Web App?
    iOS & Android Monetize Native Apps
    WebApp wrappers: PhoneGap, appMobi
    Performance
    Native has greater perf, but
    On Android, can call through to C++ from JS
    Forms Input
    HTML5 input forms produce correct input device
    Touch
    13
  • 14. Chrome Web Store – Distribution & Monetization
    14
  • 15. Chrome Web Store – Chrome Integration
    15
  • 16. Chrome Web Store
    Discovery, Distribution and Monetization on the Web
    16
    Web Apps
    120 million users
    In-app payments coming soongoogle.com/checkout/inapp
    … And Monetization
  • 17. The Browser is the Platform
    ChromeOS
    webOS
    17
  • 18. Browser Technologies
    18
  • 19. Canvas 2D
    19
  • 20. Canvas 2D –Examples
    20
  • 21. Canvas 2D – Overview
    Mostly Sprites
    Flash
    Widely supported (mobile & desktop)
    IE9 brings GPU performance
    Javscript Shim Libraries run on old IE, e.g. ExplorerCanvas
    GPU upgrades Hundreds to Thousands of Draws @30fps
    Immediate Mode
    Popular
    21
  • 22. Canvas 2D – API
    Primitives
    rect, circle arcs, lines, bezier curves, text, images
    Drawing
    fill and stroke
    Effects
    shadows, gradients, image patterns, line styles, clipping, compositing operations
    Transforms
    rotate, scale, matrix transform (2x2 + translation)
    22
    Text
  • 23. Canvas 2D – Simple Sample
    <canvas id="e" width="200" height="100"></canvas><script>  var context =document.getElementById("e").getContext("2d");  var cat = new Image();  cat.src = "images/cat.png";  cat.onload = function() {    context.drawImage(cat, 0, 0); };</script>
    23
  • 24. Canvas 2D – Fill and Stroke Sample
    // Draw eyesctx.fillRect(160, 130, 20, 80);ctx.fillRect(220, 130, 20, 80);// Draw mouthctx.beginPath();ctx.moveTo(100, 230); // Start smilectx.bezierCurveTo(100, 230, 200, 380, 300, 230);ctx.moveTo(219, 298); // Start tonguectx.bezierCurveTo(278, 351, 315, 315, 277, 258);ctx.lineWidth = 20;ctx.stroke();
    (adapted from IE9 sample)
    24
  • 25. Canvas 2D – Availability
    Chrome – Firefox – Safari: GO!
    Internet Explorer: Soon in IE9
    Mobile: GO!
    25
    - caniuse.com, Feb 2011
  • 26. Scalable Vector Graphics
    SVG
    26
  • 27. SVG – Examples
    27
  • 28. SVG – Overview
    Vector markup language
    Declarative or retainedprocedural API
    Tools (Illustrator, Inkscape)
    HTML5 Enables SVG Markup Inline with HTML
    Retained API
    GPU Acceleration Friendly - Retained data structures allow caching
    Little Groundswell
    Complex API? Retained?
    28
  • 29. SVG – Sample
    <!DOCTYPE html><html><body>
    <svg id=“mySVG”>
    <circle id="circle0"
    cx="100" cy="75" r="50"
    fill="grey"
    stroke="black"
    stroke-width="5“
    onmousedown="alert('clicked');">
    <text x="60" y="155">Hello World</text>
    </svg>
    ...
    29
  • 30. SVG – Sample
    <script>
    var circle = document.createElementNS(
    "http://www.w3.org/2000/svg", "circle");
    circle.setAttribute('cx', 90);
    circle.setAttribute('cy', 90);
    circle.setAttribute('r', 30);
    circle.setAttribute('onmousedown', "alert('no, me!');");
    document.getElementById("svg0").appendChild(circle);
    </script>
    </body></html>
    30
  • 31. SVG – Links
    raphaeljs.com
    Ease of use, charts, etc.
    burst.bocoup.com
    Renders SVG into Canvas 2D
    31
  • 32. SVG – Availability
    Chrome – Firefox – Safari: GO!
    Internet Explorer: Soon in IE9
    Mobile: iOS GO! – Android: No
    32
    - caniuse.com, Feb 2011
  • 33. Canvas 3D
    WebGL
    33
  • 34. WebGL – Examples
    34
  • 35. WebGL – Overview
    Open GL ES 2
    Textures, Framebuffers, Blending
    Vertex and Fragment Shaders (GLSL)
    Khronos group specification 1.0 Q1 2011
    Matrix libraries come separately
    What will Microsoft do?
    35
  • 36. WebGL – Libraries
    Many Higher Level Libraries
    C3DL
    Copperlicht
    GLGE
    O3D
    Processing.js
    SpiderGL
    SceneJS
    three.js
    WebGLU
    XB PointStream
    36
  • 37. WebGL Inspector (Ben Vanik)
    37
  • 38. WebGL – Sample Spinning Box
    38
  • 39. WebGL – Sample Spinning Box
    <script id="vshader" type="x-shader/x-vertex">
    uniform mat4 u_modelViewProjMatrix;
    uniform mat4 u_normalMatrix;
    uniform vec3 lightDir;
    attribute vec3 vNormal;
    attribute vec4 vColor;
    attribute vec4 vPosition;
    varying float v_Dot;
    varying vec4 v_Color;
    void main() {
    gl_Position = u_modelViewProjMatrix * vPosition;
    v_Color = vColor;
    vec4 transNormal = u_normalMatrix * vec4(vNormal, 1);
    v_Dot = max(dot(transNormal.xyz, lightDir), 0.0);
    39
  • 40. WebGL – Sample Spinning Box
    <script id="fshader" type="x-shader/x-fragment">
    varying float v_Dot;
    varying vec4 v_Color;
    void main()
    {
    gl_FragColor = vec4(v_Color.xyz * v_Dot, v_Color.a);
    }
    </script>
    40
  • 41. WebGL – Sample Spinning Box
    gl = canvas.getContext(“webgl”, args);
    gl.createShader(shaderType);
    gl.shaderSource(shader, shaderScript.text);
    gl.compileShader(shader);
    var colors = new Uint8Array( [ 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1,
    1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1,
    //…
    gl.box.colorObject = gl.createBuffer();
    gl.bindBuffer(gl.ARRAY_BUFFER, gl.box.colorObject);
    gl.bufferData(gl.ARRAY_BUFFER, colors, gl.STATIC_DRAW);
    //…
    41
  • 42. WebGL – Sample Spinning Box
    function drawPicture(gl) {
    reshape(gl);
    gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
    // Make a model/view matrix.
    gl.mvMatrix.makeIdentity();
    gl.mvMatrix.rotate(20, 1,0,0);
    gl.mvMatrix.rotate(currentAngle, 0,1,0);
    //…
    gl.drawElements( gl.TRIANGLES, gl.box.numIndices, gl.UNSIGNED_BYTE, 0);
    42
  • 43. WebGL – Demos
    NinePointFive
    Aquarium
    Google Body
    43
  • 44. WebGL – Availability
    Chrome – Firefox – Safari: Chrome Shipped. Soon in FF4 & Safari
    Internet Explorer: No
    Mobile: Waiting on Firefox 4, other browsers in progress.
    44
    - caniuse.com, Feb 2011
  • 45. aka – your render loop
    requestAnimationFrame
    45
  • 46. requestAnimationFrame – Overview
    Status Quo: Draw, Draw, Draw, Blindly!
    setInterval(draw, 16)
    Browser Calls You (FireFox Beta 4, Chrome 10)
    function draw() {
    //... Do Drawing Work, then ask to called again:
    window.requestAnimationFrame(draw);
    }
    // kick off first frame:
    window.requestAnimationFrame(draw);
    46
    setInterval(draw, 16)
    setInterval(draw, 16)
    setInterval(draw, 16)
    setInterval(draw, 16)
    setInterval(draw, 16)
    setInterval(draw, 16)
    setInterval(draw, 16)
    setInterval(draw, 16)
  • 47. requestAnimationFrame – Availability
    Chrome – Firefox – Safari: Soon in Chrome 10, FF4
    Use a Shim, future compatible:// shim layer with setTimeout fallback – Paul Irish
    window.requestAnimFrame = (function(){
    return window.requestAnimationFrame ||
    window.webkitRequestAnimationFrame ||
    window.mozRequestAnimationFrame ||
    window.oRequestAnimationFrame ||
    window.msRequestAnimationFrame ||
    function(/* function */ callback, /* DOMElement */ element){
    window.setTimeout(callback, 1000 / 60);
    };
    })();
    47
  • 48. Cascading Style Sheets – 3D Transformations
    CSS 3D
    48
  • 49. CSS 3D – Examples
    CSS3D
    49
  • 50. CSS 3D – Overview
    Add 3D to Any Web Content
    Helps make cool HUD
    50
  • 51. CSS 3D – Sample
    <!DOCTYPE html><html><body>
    <div style="-webkit-perspective: 400;">
    <iframe
    src="http://www.gdconf.com/" width = 1024 height = 768
    style="-webkit-transform: rotate3d(1,0,0, 15deg)">
    </iframe>
    </div>
    </body></html>
    51
  • 52. CSS 3D – Availability
    Chrome – Firefox – Safari: Soon in Chrome, FF No, Safari GO!
    Internet Explorer: No
    Mobile: iOS GO! – Android: No
    52
    - caniuse.com, Feb 2011
  • 53. Web Fonts
    53
  • 54. Web Fonts – Overview
    Game UI via HTML
    Serve Custom Fonts
    Easy Google Fonts API
    <link href='http://fonts…?family=Chewy‘rel='stylesheet' type='text/css'>
    In CSS:
    h1 { font-family: 'Chewy', arial, serif; }
    54
  • 55. Web Fonts – Availability
    Chrome – Firefox – Safari: GO!
    Internet Explorer: Best in IE9
    Mobile: Mostly…
    55
    - caniuse.com, Feb 2011
  • 56. <audio>
    56
  • 57. <audio> – Overview
    Tags in HTML, or created by javascript
    57
  • 58. <audio> – Sample
    var audio = new Audio();
    audio.addEventListener("canplaythrough", function () { audio.play(); });
    audio.src = “treasure.ogg”;
    58
  • 59. <audio> – Issues
    iOS >= 4 – only one sample at a time
    No one codec supported by all browsers.
    Pick 2 from: MP3, Vorbis, WAV
    detect suitability before loading, with e.g. new Audio().canPlayType(“audio/ogg”);
    59
  • 60. <audio> – Future1
    FireFox Audio Data API supports Read/Write samples
    var output = new Audio();
    output.mozSetup(1, 44100);
    var samples = new Float32Array(22050);
    varlen = samples.length;
    for (vari = 0; i < samples.length ; i++) {
    samples[i] = Math.sin( i / 20 );
    }
    output.mozWriteAudio(samples);
    60
  • 61. <audio> – Future2
    Web Audio API
    Node graph
    Low latency
    Spatialization, 3d
    Reverb
    Native implementation performance
    61
  • 62. <audio> – Links
    SoundManager 2
    Flash fallback
    www.schillmania.com/projects/soundmanager2
    62
  • 63. <audio> – Availability
    Chrome – Firefox – Safari: GO!
    Internet Explorer: Soon in IE9
    Mobile: (With limits)
    63
    - caniuse.com, Feb 2011
  • 64. <video>
    64
  • 65. <video> – Overview
    Source for textures in <canvas> 2D or WebGLvideoElement.play();
    videoElement.addEventListener("timeupdate",updateTexture, true);
    function updateTexture() {
    gl.bindTexture(gl.TEXTURE_2D, cubeTexture);
    gl.texImage2D(gl.TEXTURE_2D, 0, videoElement, true);
    gl.generateMipmap(gl.TEXTURE_2D);
    }
    Demo
    65
  • 66. <video> – Availability
    Chrome – Firefox – Safari: GO!
    Internet Explorer: Soon in IE9
    Mobile: GO!
    66
    - caniuse.com, Feb 2011
  • 67. WebSockets
    67
  • 68. WebSockets – Overview
    Low latency, persistent, full duplex
    Upgrades from HTTP handshake
    UTF8
    Simple
    var socket = new WebSocket(“ws://server.com”);
    socket.onopen = function(event) { socket.send(“Hello Server”); }
    socket.onmessage = function(event) {
    alert(“Server says: “ + event.data);
    68
  • 69. WebSockets - Future
    FireFox and Opera Behind Flag
    Standard for protocol upgrade
    Binary
    Peer to Peer
    Unreliable (vs TCP)
    69
  • 70. WebSockets – Links
    socket.io
    Higher level library
    Transport on WebSockets, Flash, Ajax, …
    github.com/gimite/web-socket-js
    Shim implementation on top of Flash
    70
  • 71. Web Sockets – Availability
    Chrome – Firefox – Safari: Yes, Still Stabilizing, Some Behind a Flag
    Internet Explorer: In HTML5 Labs
    Mobile: iOS Stabilizing, Android?
    71
    - caniuse.com, Feb 2011
  • 72. Javascript on your Server
    Node.JS
    72
  • 73. Node.JS – Overview
    Ease of Same Language and Client & Server
    Simple, lots of uptake
    Tools / Plugins
    WebSockets, manage connections, render server side, just lots...
    Visual Debugger
    73
  • 74. GeoLocation
    74
  • 75. GeoLocation – Sample
    Mobile, and Desktops too
    navigator.geolocation.getCurrentPosition(
    function (location) {
    doSomething(location.coords.latitude, location.coords.longitude); });
    75
  • 76. GeoLocation – Availability
    Chrome – Firefox – Safari: GO!
    Internet Explorer: Soon in IE9
    Mobile: GO!
    76
    - caniuse.com, Feb 2011
  • 77. DeviceOrientationDeviceMotionEvent
    77
  • 78. DeviceOrientation – Overview
    iOS >= 4.2
    Chrome on Mac
    78
  • 79. DeviceOrientation – Sample
    window.addEventListener("devicemotion", function(event) {
    // event.acceleration, // event.accelerationIncludingGravity,
    // event.rotationRate,
    // event.interval
    }, true);
    79
  • 80. DeviceOrientation – Availability
    Chrome – Firefox – Safari: Yes, but not on all devices
    Internet Explorer: ?
    Mobile: Only iOS >= 4.2
    80
  • 81. Some options…
    Saving Data on the Client
    81
  • 82. 82
  • 83. Web Storage – Overview
    Local Storage & Session Storage
    5MB of key value pair strings
    localStorage["levels-unlocked"] = 5 // or .getItem() / .setItem()
    localStorage.removeItem()
    localStorage.clear(); // Dump everything
    Widely supported
    Non Transactional
    No good recourse if over limit
    83
  • 84. Web Storage – Availability
    Chrome – Firefox – Safari: GO!
    Internet Explorer: GO!
    Mobile: GO!
    84
    - caniuse.com, Feb 2011
  • 85. File API: Directories & Systems – Availability
    Chrome: Yes for Apps and Extensions
    Firefox – Safari: No
    Internet Explorer: No
    Mobile: No
    85
  • 86. Application Cache – Overview
    Cache HTML pages and Resources
    Manifest File
    CACHE MANIFEST
    index.html
    stylesheet.css
    images/logo.png
    scripts/main.js
    86
  • 87. Application Cache – Availability
    Chrome – Firefox – Safari: GO!
    Internet Explorer: No
    Mobile: GO!
    87
    - caniuse.com, Feb 2011
  • 88. window.navigator.onLinedocument.body.addEventListener(“online”, callback);
    Offline
    88
  • 89. Multithreading Javascript
    Web Workers
    89
  • 90. Web Workers – Sample
    html5rocks.com/tutorials/workers/basics/
    main.js (main thread):
    var worker = new Worker('doWork.js');
    worker.addEventListener('message',
    function(e) { console.log('Worker said: ', e.data); }, false);
    worker.postMessage('Hello World'); // Send data to our worker.
    doWork.js (the worker):
    self.addEventListener('message', function(e) {
    self.postMessage(e.data + “? ” + e.data + “!”); }, false);
    // Output “Worker said: Hello World? Hello World!”
    90
  • 91. Web Workers – Availability
    Chrome – Firefox – Safari: GO!
    Internet Explorer: No
    Mobile: No
    91
    - caniuse.com, Feb 2011
  • 92. C++ for your web app
    Native Client
    92
  • 93. Native Client – Overview
    Machine Code Served to Browser
    C/C++, Mono(C#), others
    NoPlugins
    Legacy C++ Codebase in your Web App
    Performance
    Cross Platform
    93
    A Web Page
    Full of text, lots of interesting stuff, links, blah blah. Don’t read all the links, all this text.
    JS
    A Web Page
    Full of text, lots of interesting stuff, links, blah blah. Don’t read all the links, all this text.
    C++
  • 94. Native Client – Security
    Static analysis & Sandboxing
    Restricted instructions
    Isolate code
    Custom Toolchain
    94
    Browser
    NaCl
    v8
    JS
    C++
    Browser
    Plugin
    Operating System
    Operating System
  • 95. Native Client – Availability
    Chrome: Behind flag
    Open Source
    95
  • 96. How much time is left?
    Whew
    96
  • 97. GPU Acceleration
    Chrome 9
    WebGL shipped February 3rd
    Chrome Developer & Canary
    Video, 3D CSS, Canvas 2D, Compositing
    Firefox 4 Beta
    WebGL, Video, 2D CSS, Canvas 2D, SVG, Compositing
    IE 9 Beta
    “all graphics and text rendering”
    97
  • 98. Benchmarks Needed
    JSGameBench, Facebook
    “over 125 million people visit Facebook using HTML5 capable browsers just from their mobile phone”
    Sprite performance, options (WebGL, <canvas>, <img>, <div>, …)
    1000-4000 @30fps on GPU
    50-200 mid range desktops
    20-30 iOS & Android
    98
  • 99. Libraries
    Canvas 2D
    ImpactJS, Akihabara
    WebGL
    GLGE, C3DL, Copperlicht, SpiderGL, SceneJS, O3D, Processing.js and XB PointStream, WebGLU
    Document Object Model (DOM)
    Rocket Engine, Zynga Germany (was Aves Engine)
    Physics
    Box2DWeb, Jiglib 3D
    99
  • 100. What’s Missing
    Mouse Capture
    Gamepads
    Audio input
    Webcam input
    100
  • 101. More! At GDC
    Google Sessions Today and Tomorrow
    Cloud Services, WebGL, Native Client, YouTube APIs
    Android AndroidAndroidAndroidAndroid
    Google Booth
    Sketchup,Web Store, WebGL Native Client, AppEngine, Android
    Other HTML5 Sessions
    WebGL News and Technology Updates (Khronos), Thursday
    Getting Your Games onto the BlackBerry PlayBook Tablet, Thursday
    HTML5: The New UI Library for Games, Friday
    101
  • 102. Thanks
    Alexis Deveria, caniuse.com feature tables
    Athena's Pix [flickr], overview image
    Chris Pruett
    Daniel Galpin
    Darius Kazemi
    Geoff Blair
    Gregg Tavares
    Mark DeLoura
    Mark Pilgrim (diveintohtml5.org)
    Matt Hackett
    102
  • 103. Q&A
    103
    code.google.com/games
    @GoogleGameDev