SlideShare a Scribd company logo
1 of 28
WebGL for Game
Development
Tony Parisi
http://www.tonyparisi.com
About Me
 Serial entrepreneur
 Founder, stealth startup                                                Skybox Engine
 Consulting architect and CTO                          https://github.com/tparisi/Skybox
 Web3D Co-Creator, VRML and X3D                                      WebGL Book Code
 Author                                           https://github.com/tparisi/WebGLBook


Contact Information
tparisi@gmail.com
Skype: auradeluxe
http://twitter.com/auradeluxe         htt
p://www.tonyparisi.com/
http://www.learningwebgl.com/

Get the Book!
WebGL: Up and Running
http://shop.oreilly.com/product/0636920024729.do                             Pre-release
                                                                            May 29, 2013
Discount Code: WEBGL13 (expires 4/8/13)
Print Print ISBN: 9781449323578
Ebook ISBN: 9781449326500
What is WebGL?
 The new 3D API standard
     OpenGL ES™ in a browser
     JavaScript API bindings
     Supported in nearly all modern browsers
     Supported on many devices
     Shipped since early 2011



                                 …and it’s Awesome.
                                                                   4/2/2013
                                                WebGL For Game Development
Who Controls WebGL?
 Part of the HTML5 family of technologies
   …not really.
   …well, really.
 Standard maintained by Khronos
  Grouphttp://www.khronos.org
 Major browser and system makers
 Solid, stable set of core contributors
 Serious conformance effort
                                                          4/2/2013
                                       WebGL For Game Development
Where Does WebGL Run?
 Chrome, Firefox, Safari, Opera
   Internet Explorer rumors
 iOS – iAds only
 Android – mobile Chrome in Beta
 Blackberry – making big push with HTML5 platform
 500M+ seats




                                                             4/2/2013
                                          WebGL For Game Development
Why Use WebGL for Games?
 Rich internet experiences with true hardware-accelerated 3D
 No download
 Complete integration with page elements – use HTML5 for all
  your game UI
 (Mostly) cross-platform
 Rapid development
 Performance – it’s faster than 2D canvas
 Royalty-free - no licensing issues


                                                                4/2/2013
                                           WebGL For Game Development
Why Not Use WebGL For Games?
 Not supported in IE (yet)
 Not turned on by default in Safari
 Limited iOS
 General performance issues with mobile browser-based
  games
   Cross-platform and performance issues could be mitigated with a
    hybrid Native/JS strategy using libraries like AppMobi, Ludei
 Engines and tools still a mishmash



                                                                      4/2/2013
                                               WebGL For Game Development
JavaScript: NOT a Reason to Not
 Use WebGL For Games




From: Brendan Eich’s The State of JavaScript                            4/2/2013
http://brendaneich.github.com/Strange-Loop-2012/#/   WebGL For Game Development
Don’t Believe Me? Check This
Out




Brandon Jones’ Blog
http://blog.tojicode.com/2011/05/ios-rage-rendered-                      4/2/2013
with-webgl.html                                       WebGL For Game Development
How WebGL Works
 It’s a JavaScript drawing API
   Draw to a canvas element using a special context
   Low-Level drawing – buffers, primitives, textures and shaders
 There is no file format; no DOM; no markup.




                                      Here’s a Sample.
                                                                    4/2/2013
                                                WebGL For Game Development
Building a Game
 Choosing a framework
 Drawing graphics
 Loading models
 Building a particle system
 Animation
 Interaction
 Integrating 2D and 3D
 Adding sound
 Making it robust
 Putting it all together
                                                  4/2/2013
                               WebGL For Game Development
Choosing a Framework
 Open source rendering engines/frameworks
     Three.js
     CubicVR
     SceneGL
     GLGE
 Open Source Game engines
   Gladius
   KickJS
   Skybox
 Roll your own?
                                                           4/2/2013
                                        WebGL For Game Development
Commercial WebGL Game
Engines and Tools
 PlayCanvas
  http://www.playcanvas.com/           Ludei http://ludei.com/
 Turbulenz https://turbulenz.com/     (Summer 2013)
 Goo
  http://www.gootechnologies.com/
 Verold http://verold.com/
 Sketchfab https://sketchfab.com/
 Unreal… ?
 http://www.extremetech.com/gaming/1
 51900-unreal-engine-3-ported-to-
 javascript-and-webgl-works-in-any-
 modern-browser


                                                                 4/2/2013
                                          WebGL For Game Development
Three.js – A JavaScript 3D Engine
 Renders to 3D WebGL or 2D standard canvas
 Represents WebGL at a high level using standard 3D
  graphics concepts
 Feature rich
 Fast, robust, well maintained
 It’s a library, not a game engine, not a framework
  https://github.com/mrdoob/three.js/


                  Here’ s That Square Again.
                                                             4/2/2013
                                          WebGL For Game Development
Sim.js – A Simple Simulation
Framework for WebGL/Three.js
 Wraps common Three.js setup, teardown and handling
 Implements the run loop
   Uses requestAnimationFrame() (vs. setTimeout())
 Adds handlers for mouse and keyboard DOM events
 Provides foundation objects (Application, Base object and
  PubSub)
 Handles WebGL detection and context lost events
  https://github.com/tparisi/Sim.js


                                                                 4/2/2013
                                              WebGL For Game Development
Drawing Graphics
 Primitive shapes
 Polygon meshes
 Points and lines
 Materials
 Textures
 Lights
 Transform hierarchy
 Shaders


                                           4/2/2013
                        WebGL For Game Development
Loading Models
 WebGL has no built-in file
  format
   Most formats are engine-
    specific
   Many WebGL frameworks
    support COLLADA
 Three.js has JSON format
  with blender exporter, OBJ
  file converter
 Potential format standard
  (glTF) in development by
  Khronos
 Overall, tools and exporters
  still primitive
                                                    4/2/2013
                                 WebGL For Game Development
Animating The Scene
 WebGL has no built-in
  animation support
 Three.js has some
  animation utilities
   Key frames
   Skins
   Morphs
 With JavaScript, we can
  build our own anyway
 Animate anything:
  transforms, textures,
  materials, lights…
                                               4/2/2013
                            WebGL For Game Development
Implementing Interaction
 Mouse: DOM event
  handling plus Three.js
  picking support
 Keyboard handling is
  standard DOM




                                              4/2/2013
                           WebGL For Game Development
Creating Effects –
a Particle System
 Three.js has a basic built-in
  particle system
 But it’s very basic: no emitters
  or physics models
 You have to animate it all
  yourself




                                                        4/2/2013
                                     WebGL For Game Development
Integrating 2D and 3D
 WebGL’s secret weapon
   Breaks down window
    boundaries
   2D overlaid on 3D
   3D overlaid on 2D
   Canvas2D as a texture
   Video as a texture




                                               4/2/2013
                            WebGL For Game Development
Adding Sound
 Use new <audio> element
 Fairly well supported in
  browsers
 Other APIs (Moz, Chrome) not
  supported uniformly




                                                    4/2/2013
                                 WebGL For Game Development
Making It Robust
 Detecting WebGL support in the browser
 var canvas = document.createElement("canvas");

 var gl = null;
 var msg = "Your browser does not support WebGL.";
 try
 {
   gl = canvas.getContext("experimental-webgl");
 }
 catch (e)
 {
   msg = "Error creating WebGL Context!: " + e.toString();
 }
 if (!gl)
 {
   throw new Error(msg);
 }
                                                                                4/2/2013
                                                             WebGL For Game Development
Making It Robust
 Detecting a lost context
  RacingGame.prototype.handleContextLost = function(e)
  {
             this.restart();
  }

  RacingGame.prototype.addContextListener = function()
  {
             var that = this;

              this.renderer.domElement.addEventListener("webglcontextlost",
                                     function(e) {
                                                   that.handleContextLost(e);
                                                   },
                                     false);
  }

                                                                                   4/2/2013
                                                                WebGL For Game Development
Putting It All Together




                                             4/2/2013
                          WebGL For Game Development
Related Efforts
 Physics
   Box2DJS http://box2d-js.sourceforge.net/
   JigLibJS2 http://brokstuk.com/jiglibjs2/
   Ammo https://github.com/kripken/ammo.js/
 Content Pipeline/File Formats
   glTF https://github.com/KhronosGroup/glTF
 Emscripten – C/C++(LLVM) to JavaScript generator
   http://emscripten.org
   http://developer.mozilla.org/en-US/demos/detail/bananabread
 asm.js – Fast JavaScript subset
   http://asmjs.org/
                                                                       4/2/2013
                                                    WebGL For Game Development
The Bottom Line
 WebGL is solid for developing games
      OpenGL ES under the hood (it’s what’s running on your phone and tablet)
      Huge development, testing and conformance effort by browser writers
      Strong standards group maintaining it (www.khronos.org)
      In most browsers and growing number of devices
 A few enhancements will help
    Transferables, built-in matrices
 Production capability is still very crude
    Tools and frameworks are young and evolving
    Export from pro tools a bit shaky
 The real issues facing game developers
      Still not ubiquitous on mobile
      The JavaScript runtime is garbage-y, must take great care
      Device input – mouse lock API coming
      Audio and video API chaos
      Formats and delivery - streaming, compression, binary

                                                                                     4/2/2013
                                                                  WebGL For Game Development
Let’s Go~
Contact Information
tparisi@gmail.com
Skype: auradeluxe
http://twitter.com/auradeluxe         http://www.tonyparisi.
com/
http://www.learningwebgl.com/

Get the Book!
WebGL: Up and Running
http://shop.oreilly.com/product/0636920024729.do
Discount Code: WEBGL13 (expires 4/8/13)
Print Print ISBN: 9781449323578
Ebook ISBN: 9781449326500
Skybox Engine                                               Pre-release
                                                           May 29, 2013
https://github.com/tparisi/Skybox
WebGL Book Code
https://github.com/tparisi/WebGLBook

More Related Content

What's hot

ENIB 2015-2016 - CAI Web - S01E01- La forge JavaScript
ENIB 2015-2016 - CAI Web - S01E01- La forge JavaScriptENIB 2015-2016 - CAI Web - S01E01- La forge JavaScript
ENIB 2015-2016 - CAI Web - S01E01- La forge JavaScriptHoracio Gonzalez
 
Scalable Front-end Development with Vue.JS
Scalable Front-end Development with Vue.JSScalable Front-end Development with Vue.JS
Scalable Front-end Development with Vue.JSGalih Pratama
 
Chrome enchanted 2015
Chrome enchanted 2015Chrome enchanted 2015
Chrome enchanted 2015Chang W. Doh
 
Building a Startup Stack with AngularJS
Building a Startup Stack with AngularJSBuilding a Startup Stack with AngularJS
Building a Startup Stack with AngularJSFITC
 
Learning from the Best jQuery Plugins
Learning from the Best jQuery PluginsLearning from the Best jQuery Plugins
Learning from the Best jQuery PluginsMarc Grabanski
 
Oleh Zasadnyy "Progressive Web Apps: line between web and native apps become ...
Oleh Zasadnyy "Progressive Web Apps: line between web and native apps become ...Oleh Zasadnyy "Progressive Web Apps: line between web and native apps become ...
Oleh Zasadnyy "Progressive Web Apps: line between web and native apps become ...IT Event
 
Powerful tools for building web solutions
Powerful tools for building web solutionsPowerful tools for building web solutions
Powerful tools for building web solutionsAndrea Tino
 
Build HTML5 App (Intel Elements 2011)
Build HTML5 App (Intel Elements 2011)Build HTML5 App (Intel Elements 2011)
Build HTML5 App (Intel Elements 2011)Ariya Hidayat
 
An Introduction to Vuejs
An Introduction to VuejsAn Introduction to Vuejs
An Introduction to VuejsPaddy Lock
 
ENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScript
ENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScriptENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScript
ENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScriptHoracio Gonzalez
 
Kirin - Making Single Page Web Apps with a Native UI
Kirin - Making Single Page Web Apps with a Native UIKirin - Making Single Page Web Apps with a Native UI
Kirin - Making Single Page Web Apps with a Native UIjhugman
 
Service Worker 201 (en)
Service Worker 201 (en)Service Worker 201 (en)
Service Worker 201 (en)Chang W. Doh
 
WebGL For Game Development 2012
WebGL For Game Development 2012WebGL For Game Development 2012
WebGL For Game Development 2012Tony Parisi
 
Collective.amberjack ploneconf2010
Collective.amberjack ploneconf2010Collective.amberjack ploneconf2010
Collective.amberjack ploneconf2010Massimo Azzolini
 
Webkit overview
Webkit overviewWebkit overview
Webkit overviewEun Cho
 
JavaScript Presentation Frameworks and Libraries
JavaScript Presentation Frameworks and LibrariesJavaScript Presentation Frameworks and Libraries
JavaScript Presentation Frameworks and LibrariesOleksii Prohonnyi
 
WebGL Crash Course
WebGL Crash CourseWebGL Crash Course
WebGL Crash CourseTony Parisi
 
Story about module management with angular.js
Story about module management with angular.jsStory about module management with angular.js
Story about module management with angular.jsDavid Amend
 
Modern frontend development with VueJs
Modern frontend development with VueJsModern frontend development with VueJs
Modern frontend development with VueJsTudor Barbu
 

What's hot (20)

ENIB 2015-2016 - CAI Web - S01E01- La forge JavaScript
ENIB 2015-2016 - CAI Web - S01E01- La forge JavaScriptENIB 2015-2016 - CAI Web - S01E01- La forge JavaScript
ENIB 2015-2016 - CAI Web - S01E01- La forge JavaScript
 
Scalable Front-end Development with Vue.JS
Scalable Front-end Development with Vue.JSScalable Front-end Development with Vue.JS
Scalable Front-end Development with Vue.JS
 
Chrome enchanted 2015
Chrome enchanted 2015Chrome enchanted 2015
Chrome enchanted 2015
 
Building a Startup Stack with AngularJS
Building a Startup Stack with AngularJSBuilding a Startup Stack with AngularJS
Building a Startup Stack with AngularJS
 
Learning from the Best jQuery Plugins
Learning from the Best jQuery PluginsLearning from the Best jQuery Plugins
Learning from the Best jQuery Plugins
 
Oleh Zasadnyy "Progressive Web Apps: line between web and native apps become ...
Oleh Zasadnyy "Progressive Web Apps: line between web and native apps become ...Oleh Zasadnyy "Progressive Web Apps: line between web and native apps become ...
Oleh Zasadnyy "Progressive Web Apps: line between web and native apps become ...
 
Powerful tools for building web solutions
Powerful tools for building web solutionsPowerful tools for building web solutions
Powerful tools for building web solutions
 
Build HTML5 App (Intel Elements 2011)
Build HTML5 App (Intel Elements 2011)Build HTML5 App (Intel Elements 2011)
Build HTML5 App (Intel Elements 2011)
 
An Introduction to Vuejs
An Introduction to VuejsAn Introduction to Vuejs
An Introduction to Vuejs
 
ENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScript
ENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScriptENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScript
ENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScript
 
Kirin - Making Single Page Web Apps with a Native UI
Kirin - Making Single Page Web Apps with a Native UIKirin - Making Single Page Web Apps with a Native UI
Kirin - Making Single Page Web Apps with a Native UI
 
Service Worker 201 (en)
Service Worker 201 (en)Service Worker 201 (en)
Service Worker 201 (en)
 
WebGL For Game Development 2012
WebGL For Game Development 2012WebGL For Game Development 2012
WebGL For Game Development 2012
 
Collective.amberjack ploneconf2010
Collective.amberjack ploneconf2010Collective.amberjack ploneconf2010
Collective.amberjack ploneconf2010
 
An introduction to Vue.js
An introduction to Vue.jsAn introduction to Vue.js
An introduction to Vue.js
 
Webkit overview
Webkit overviewWebkit overview
Webkit overview
 
JavaScript Presentation Frameworks and Libraries
JavaScript Presentation Frameworks and LibrariesJavaScript Presentation Frameworks and Libraries
JavaScript Presentation Frameworks and Libraries
 
WebGL Crash Course
WebGL Crash CourseWebGL Crash Course
WebGL Crash Course
 
Story about module management with angular.js
Story about module management with angular.jsStory about module management with angular.js
Story about module management with angular.js
 
Modern frontend development with VueJs
Modern frontend development with VueJsModern frontend development with VueJs
Modern frontend development with VueJs
 

Viewers also liked

Game Development Challenges
Game Development ChallengesGame Development Challenges
Game Development ChallengesNick Pruehs
 
inlusio | game development process
inlusio | game development processinlusio | game development process
inlusio | game development processTj'ièn Twijnstra
 
LAFS SVI Level 6 - Game Development
LAFS SVI Level 6 - Game DevelopmentLAFS SVI Level 6 - Game Development
LAFS SVI Level 6 - Game DevelopmentDavid Mullich
 
1-Introduction (Game Development - UMT Spring 2017/2018)
1-Introduction (Game Development - UMT Spring 2017/2018)1-Introduction (Game Development - UMT Spring 2017/2018)
1-Introduction (Game Development - UMT Spring 2017/2018)Hafiz Ammar Siddiqui
 
Game Development 2
Game Development 2Game Development 2
Game Development 2Luke Dicken
 
The Art of Game Development
The Art of Game DevelopmentThe Art of Game Development
The Art of Game DevelopmentAmir H. Fassihi
 
Introduction to Game Development
Introduction to Game DevelopmentIntroduction to Game Development
Introduction to Game DevelopmentShaan Alam
 
Introduction to Game Development
Introduction to Game DevelopmentIntroduction to Game Development
Introduction to Game DevelopmentiTawy Community
 
The Coming Distribution War
The Coming Distribution WarThe Coming Distribution War
The Coming Distribution WarTony Parisi
 
The Browser As Console - HTML5 and WebGL for Game Development
The Browser As Console - HTML5 and WebGL for Game DevelopmentThe Browser As Console - HTML5 and WebGL for Game Development
The Browser As Console - HTML5 and WebGL for Game DevelopmentTony Parisi
 
Pakej Rujukan Peperiksaan Online Penolong Penguasa Kastam Gred W27
Pakej Rujukan Peperiksaan Online Penolong Penguasa Kastam Gred W27Pakej Rujukan Peperiksaan Online Penolong Penguasa Kastam Gred W27
Pakej Rujukan Peperiksaan Online Penolong Penguasa Kastam Gred W27John JenJen
 
Tecnicas para tratar enfermedades respiratorias
Tecnicas para tratar enfermedades respiratoriasTecnicas para tratar enfermedades respiratorias
Tecnicas para tratar enfermedades respiratoriasMarco Loza Mendez
 
5 servidor web
5 servidor web5 servidor web
5 servidor webangeles104
 

Viewers also liked (20)

Game Business Development
Game Business DevelopmentGame Business Development
Game Business Development
 
Learning Game Development
Learning Game DevelopmentLearning Game Development
Learning Game Development
 
Game Development Challenges
Game Development ChallengesGame Development Challenges
Game Development Challenges
 
inlusio | game development process
inlusio | game development processinlusio | game development process
inlusio | game development process
 
LAFS SVI Level 6 - Game Development
LAFS SVI Level 6 - Game DevelopmentLAFS SVI Level 6 - Game Development
LAFS SVI Level 6 - Game Development
 
1-Introduction (Game Development - UMT Spring 2017/2018)
1-Introduction (Game Development - UMT Spring 2017/2018)1-Introduction (Game Development - UMT Spring 2017/2018)
1-Introduction (Game Development - UMT Spring 2017/2018)
 
Game Development 2
Game Development 2Game Development 2
Game Development 2
 
The Art of Game Development
The Art of Game DevelopmentThe Art of Game Development
The Art of Game Development
 
Introduction to Game Development
Introduction to Game DevelopmentIntroduction to Game Development
Introduction to Game Development
 
Introduction to Game Development
Introduction to Game DevelopmentIntroduction to Game Development
Introduction to Game Development
 
The Coming Distribution War
The Coming Distribution WarThe Coming Distribution War
The Coming Distribution War
 
Portafolio
PortafolioPortafolio
Portafolio
 
Viz Populi
Viz PopuliViz Populi
Viz Populi
 
Haiku
HaikuHaiku
Haiku
 
Cantrep
CantrepCantrep
Cantrep
 
The Browser As Console - HTML5 and WebGL for Game Development
The Browser As Console - HTML5 and WebGL for Game DevelopmentThe Browser As Console - HTML5 and WebGL for Game Development
The Browser As Console - HTML5 and WebGL for Game Development
 
Pakej Rujukan Peperiksaan Online Penolong Penguasa Kastam Gred W27
Pakej Rujukan Peperiksaan Online Penolong Penguasa Kastam Gred W27Pakej Rujukan Peperiksaan Online Penolong Penguasa Kastam Gred W27
Pakej Rujukan Peperiksaan Online Penolong Penguasa Kastam Gred W27
 
Tecnicas para tratar enfermedades respiratorias
Tecnicas para tratar enfermedades respiratoriasTecnicas para tratar enfermedades respiratorias
Tecnicas para tratar enfermedades respiratorias
 
El meu amic drac
El meu amic dracEl meu amic drac
El meu amic drac
 
5 servidor web
5 servidor web5 servidor web
5 servidor web
 

Similar to WebGL For Game Development Spring 2013

Webgl 기술동향 2011.8
Webgl 기술동향 2011.8Webgl 기술동향 2011.8
Webgl 기술동향 2011.8Seung Joon Choi
 
Leaving Flatland: Getting Started with WebGL- SXSW 2012
Leaving Flatland: Getting Started with WebGL- SXSW 2012Leaving Flatland: Getting Started with WebGL- SXSW 2012
Leaving Flatland: Getting Started with WebGL- SXSW 2012philogb
 
WebGL demos showcase
WebGL demos showcaseWebGL demos showcase
WebGL demos showcaseYukio Andoh
 
HTML5DevConf 2013 (October): WebGL is a game changer!
HTML5DevConf 2013 (October): WebGL is a game changer!HTML5DevConf 2013 (October): WebGL is a game changer!
HTML5DevConf 2013 (October): WebGL is a game changer!Iker Jamardo
 
Introduction to html5 game programming with ImpactJs
Introduction to html5 game programming with ImpactJsIntroduction to html5 game programming with ImpactJs
Introduction to html5 game programming with ImpactJsLuca Galli
 
140716 : 同業前端聚會分享 - webgl 與 three.js
140716 : 同業前端聚會分享 - webgl 與 three.js140716 : 同業前端聚會分享 - webgl 與 three.js
140716 : 同業前端聚會分享 - webgl 與 three.jsangelliya00
 
HTML5 & JavaScript Games
HTML5 & JavaScript GamesHTML5 & JavaScript Games
HTML5 & JavaScript GamesRobin Hawkes
 
IPhone Web Development With Grails from CodeMash 2009
IPhone Web Development With Grails from CodeMash 2009IPhone Web Development With Grails from CodeMash 2009
IPhone Web Development With Grails from CodeMash 2009Christopher Judd
 
Multiplayer game with unity3 d and meteor
Multiplayer game with unity3 d and meteorMultiplayer game with unity3 d and meteor
Multiplayer game with unity3 d and meteorDesignveloper
 
2013년 html5 총정리 (Summary of HTML5 Trend in 2013)
2013년 html5 총정리 (Summary of HTML5 Trend in 2013)2013년 html5 총정리 (Summary of HTML5 Trend in 2013)
2013년 html5 총정리 (Summary of HTML5 Trend in 2013)Wonsuk Lee
 
Installing Games Sucks, Learn WebGL
Installing Games Sucks, Learn WebGLInstalling Games Sucks, Learn WebGL
Installing Games Sucks, Learn WebGLCorey Clark, Ph.D.
 
Building AR and VR Experiences for Web Apps with JavaScript
Building AR and VR Experiences for Web Apps with JavaScriptBuilding AR and VR Experiences for Web Apps with JavaScript
Building AR and VR Experiences for Web Apps with JavaScriptFITC
 
GROOVY ON GRAILS
GROOVY ON GRAILSGROOVY ON GRAILS
GROOVY ON GRAILSziyaaskerov
 
3D for the modern web: declarative3d and gltf
3D for the modern web: declarative3d and gltf3D for the modern web: declarative3d and gltf
3D for the modern web: declarative3d and gltfBrian Coughlin
 
Flutter vs Java Graphical User Interface Frameworks - text
Flutter vs Java Graphical User Interface Frameworks - textFlutter vs Java Graphical User Interface Frameworks - text
Flutter vs Java Graphical User Interface Frameworks - textToma Velev
 

Similar to WebGL For Game Development Spring 2013 (20)

Webgl 기술동향 2011.8
Webgl 기술동향 2011.8Webgl 기술동향 2011.8
Webgl 기술동향 2011.8
 
Leaving Flatland: Getting Started with WebGL- SXSW 2012
Leaving Flatland: Getting Started with WebGL- SXSW 2012Leaving Flatland: Getting Started with WebGL- SXSW 2012
Leaving Flatland: Getting Started with WebGL- SXSW 2012
 
WebGL demos showcase
WebGL demos showcaseWebGL demos showcase
WebGL demos showcase
 
HTML5DevConf 2013 (October): WebGL is a game changer!
HTML5DevConf 2013 (October): WebGL is a game changer!HTML5DevConf 2013 (October): WebGL is a game changer!
HTML5DevConf 2013 (October): WebGL is a game changer!
 
WebGL Awesomeness
WebGL AwesomenessWebGL Awesomeness
WebGL Awesomeness
 
Introduction to html5 game programming with ImpactJs
Introduction to html5 game programming with ImpactJsIntroduction to html5 game programming with ImpactJs
Introduction to html5 game programming with ImpactJs
 
Artists Only
Artists OnlyArtists Only
Artists Only
 
140716 : 同業前端聚會分享 - webgl 與 three.js
140716 : 同業前端聚會分享 - webgl 與 three.js140716 : 同業前端聚會分享 - webgl 與 three.js
140716 : 同業前端聚會分享 - webgl 與 three.js
 
HTML5 & JavaScript Games
HTML5 & JavaScript GamesHTML5 & JavaScript Games
HTML5 & JavaScript Games
 
IPhone Web Development With Grails from CodeMash 2009
IPhone Web Development With Grails from CodeMash 2009IPhone Web Development With Grails from CodeMash 2009
IPhone Web Development With Grails from CodeMash 2009
 
Multiplayer game with unity3 d and meteor
Multiplayer game with unity3 d and meteorMultiplayer game with unity3 d and meteor
Multiplayer game with unity3 d and meteor
 
HTML5 Game Development frameworks overview
HTML5 Game Development frameworks overviewHTML5 Game Development frameworks overview
HTML5 Game Development frameworks overview
 
2013년 html5 총정리 (Summary of HTML5 Trend in 2013)
2013년 html5 총정리 (Summary of HTML5 Trend in 2013)2013년 html5 총정리 (Summary of HTML5 Trend in 2013)
2013년 html5 총정리 (Summary of HTML5 Trend in 2013)
 
Installing Games Sucks, Learn WebGL
Installing Games Sucks, Learn WebGLInstalling Games Sucks, Learn WebGL
Installing Games Sucks, Learn WebGL
 
Building AR and VR Experiences for Web Apps with JavaScript
Building AR and VR Experiences for Web Apps with JavaScriptBuilding AR and VR Experiences for Web Apps with JavaScript
Building AR and VR Experiences for Web Apps with JavaScript
 
Ferguson VR Hackathon - May 6, 2017
Ferguson VR Hackathon - May 6, 2017Ferguson VR Hackathon - May 6, 2017
Ferguson VR Hackathon - May 6, 2017
 
GROOVY ON GRAILS
GROOVY ON GRAILSGROOVY ON GRAILS
GROOVY ON GRAILS
 
GROOVY ON GRAILS
GROOVY ON GRAILSGROOVY ON GRAILS
GROOVY ON GRAILS
 
3D for the modern web: declarative3d and gltf
3D for the modern web: declarative3d and gltf3D for the modern web: declarative3d and gltf
3D for the modern web: declarative3d and gltf
 
Flutter vs Java Graphical User Interface Frameworks - text
Flutter vs Java Graphical User Interface Frameworks - textFlutter vs Java Graphical User Interface Frameworks - text
Flutter vs Java Graphical User Interface Frameworks - text
 

More from Tony Parisi

The New Fine Arts
The New Fine ArtsThe New Fine Arts
The New Fine ArtsTony Parisi
 
Face the Future: Computing in an Augmented World
Face the Future: Computing in an Augmented WorldFace the Future: Computing in an Augmented World
Face the Future: Computing in an Augmented WorldTony Parisi
 
Powering the VR/AR Ecosystem 2017-01-17
Powering the VR/AR Ecosystem 2017-01-17Powering the VR/AR Ecosystem 2017-01-17
Powering the VR/AR Ecosystem 2017-01-17Tony Parisi
 
WebVR: Developing for the Immersive Web
WebVR: Developing for the Immersive WebWebVR: Developing for the Immersive Web
WebVR: Developing for the Immersive WebTony Parisi
 
Introduction to WebVR Autodesk Forge 2016
Introduction to WebVR Autodesk Forge 2016Introduction to WebVR Autodesk Forge 2016
Introduction to WebVR Autodesk Forge 2016Tony Parisi
 
WebVR Ecosystem and API Update
WebVR Ecosystem and API UpdateWebVR Ecosystem and API Update
WebVR Ecosystem and API UpdateTony Parisi
 
Foundations of the Immersive Web
Foundations of the Immersive WebFoundations of the Immersive Web
Foundations of the Immersive WebTony Parisi
 
The Immersive Web
The Immersive WebThe Immersive Web
The Immersive WebTony Parisi
 
Virtually Anyone
Virtually AnyoneVirtually Anyone
Virtually AnyoneTony Parisi
 
React-VR: An Early Experiment with React and WebGL for VR Development
React-VR: An Early Experiment with React and WebGL for VR DevelopmentReact-VR: An Early Experiment with React and WebGL for VR Development
React-VR: An Early Experiment with React and WebGL for VR DevelopmentTony Parisi
 
WebGL: The Next Generation
WebGL:  The Next GenerationWebGL:  The Next Generation
WebGL: The Next GenerationTony Parisi
 
Vrml, or There and Back Again
Vrml, or There and Back AgainVrml, or There and Back Again
Vrml, or There and Back AgainTony Parisi
 
Browser-Based Virtual Reality April 2015
Browser-Based Virtual Reality April 2015Browser-Based Virtual Reality April 2015
Browser-Based Virtual Reality April 2015Tony Parisi
 
VR Without Borders RIVER WebVR April 2015
VR Without Borders RIVER WebVR April 2015VR Without Borders RIVER WebVR April 2015
VR Without Borders RIVER WebVR April 2015Tony Parisi
 
glTF and the WebGL Art Pipeline March 2015
glTF and the WebGL Art Pipeline March 2015glTF and the WebGL Art Pipeline March 2015
glTF and the WebGL Art Pipeline March 2015Tony Parisi
 
An Introduction to Web VR January 2015
An Introduction to Web VR January 2015An Introduction to Web VR January 2015
An Introduction to Web VR January 2015Tony Parisi
 
Up And Running With Web VR Fall 2014
Up And Running With Web VR Fall 2014Up And Running With Web VR Fall 2014
Up And Running With Web VR Fall 2014Tony Parisi
 
The Web Eats Everything In Its Path Fall 2014
The Web Eats Everything In Its Path Fall 2014The Web Eats Everything In Its Path Fall 2014
The Web Eats Everything In Its Path Fall 2014Tony Parisi
 
Hacking Reality: Browser-Based VR with HTML5
Hacking Reality: Browser-Based VR with HTML5Hacking Reality: Browser-Based VR with HTML5
Hacking Reality: Browser-Based VR with HTML5Tony Parisi
 
WebGL, WebVR and the Metaverse
WebGL, WebVR and the MetaverseWebGL, WebVR and the Metaverse
WebGL, WebVR and the MetaverseTony Parisi
 

More from Tony Parisi (20)

The New Fine Arts
The New Fine ArtsThe New Fine Arts
The New Fine Arts
 
Face the Future: Computing in an Augmented World
Face the Future: Computing in an Augmented WorldFace the Future: Computing in an Augmented World
Face the Future: Computing in an Augmented World
 
Powering the VR/AR Ecosystem 2017-01-17
Powering the VR/AR Ecosystem 2017-01-17Powering the VR/AR Ecosystem 2017-01-17
Powering the VR/AR Ecosystem 2017-01-17
 
WebVR: Developing for the Immersive Web
WebVR: Developing for the Immersive WebWebVR: Developing for the Immersive Web
WebVR: Developing for the Immersive Web
 
Introduction to WebVR Autodesk Forge 2016
Introduction to WebVR Autodesk Forge 2016Introduction to WebVR Autodesk Forge 2016
Introduction to WebVR Autodesk Forge 2016
 
WebVR Ecosystem and API Update
WebVR Ecosystem and API UpdateWebVR Ecosystem and API Update
WebVR Ecosystem and API Update
 
Foundations of the Immersive Web
Foundations of the Immersive WebFoundations of the Immersive Web
Foundations of the Immersive Web
 
The Immersive Web
The Immersive WebThe Immersive Web
The Immersive Web
 
Virtually Anyone
Virtually AnyoneVirtually Anyone
Virtually Anyone
 
React-VR: An Early Experiment with React and WebGL for VR Development
React-VR: An Early Experiment with React and WebGL for VR DevelopmentReact-VR: An Early Experiment with React and WebGL for VR Development
React-VR: An Early Experiment with React and WebGL for VR Development
 
WebGL: The Next Generation
WebGL:  The Next GenerationWebGL:  The Next Generation
WebGL: The Next Generation
 
Vrml, or There and Back Again
Vrml, or There and Back AgainVrml, or There and Back Again
Vrml, or There and Back Again
 
Browser-Based Virtual Reality April 2015
Browser-Based Virtual Reality April 2015Browser-Based Virtual Reality April 2015
Browser-Based Virtual Reality April 2015
 
VR Without Borders RIVER WebVR April 2015
VR Without Borders RIVER WebVR April 2015VR Without Borders RIVER WebVR April 2015
VR Without Borders RIVER WebVR April 2015
 
glTF and the WebGL Art Pipeline March 2015
glTF and the WebGL Art Pipeline March 2015glTF and the WebGL Art Pipeline March 2015
glTF and the WebGL Art Pipeline March 2015
 
An Introduction to Web VR January 2015
An Introduction to Web VR January 2015An Introduction to Web VR January 2015
An Introduction to Web VR January 2015
 
Up And Running With Web VR Fall 2014
Up And Running With Web VR Fall 2014Up And Running With Web VR Fall 2014
Up And Running With Web VR Fall 2014
 
The Web Eats Everything In Its Path Fall 2014
The Web Eats Everything In Its Path Fall 2014The Web Eats Everything In Its Path Fall 2014
The Web Eats Everything In Its Path Fall 2014
 
Hacking Reality: Browser-Based VR with HTML5
Hacking Reality: Browser-Based VR with HTML5Hacking Reality: Browser-Based VR with HTML5
Hacking Reality: Browser-Based VR with HTML5
 
WebGL, WebVR and the Metaverse
WebGL, WebVR and the MetaverseWebGL, WebVR and the Metaverse
WebGL, WebVR and the Metaverse
 

Recently uploaded

Uae-NO1 Pakistani Amil Baba Real Amil baba In Pakistan Najoomi Baba in Pakist...
Uae-NO1 Pakistani Amil Baba Real Amil baba In Pakistan Najoomi Baba in Pakist...Uae-NO1 Pakistani Amil Baba Real Amil baba In Pakistan Najoomi Baba in Pakist...
Uae-NO1 Pakistani Amil Baba Real Amil baba In Pakistan Najoomi Baba in Pakist...Amil baba
 
Gender and caste discrimination in india
Gender and caste discrimination in indiaGender and caste discrimination in india
Gender and caste discrimination in indiavandanasingh01072003
 
cost of capital questions financial management
cost of capital questions financial managementcost of capital questions financial management
cost of capital questions financial managementtanmayarora23
 
Financial analysis on Risk and Return.ppt
Financial analysis on Risk and Return.pptFinancial analysis on Risk and Return.ppt
Financial analysis on Risk and Return.ppttadegebreyesus
 
The Inspirational Story of Julio Herrera Velutini - Global Finance Leader
The Inspirational Story of Julio Herrera Velutini - Global Finance LeaderThe Inspirational Story of Julio Herrera Velutini - Global Finance Leader
The Inspirational Story of Julio Herrera Velutini - Global Finance LeaderArianna Varetto
 
NO1 Certified Black Magic Removal in Uk kala jadu Specialist kala jadu for Lo...
NO1 Certified Black Magic Removal in Uk kala jadu Specialist kala jadu for Lo...NO1 Certified Black Magic Removal in Uk kala jadu Specialist kala jadu for Lo...
NO1 Certified Black Magic Removal in Uk kala jadu Specialist kala jadu for Lo...Amil baba
 
《加拿大本地办假证-寻找办理Dalhousie毕业证和达尔豪斯大学毕业证书的中介代理》
《加拿大本地办假证-寻找办理Dalhousie毕业证和达尔豪斯大学毕业证书的中介代理》《加拿大本地办假证-寻找办理Dalhousie毕业证和达尔豪斯大学毕业证书的中介代理》
《加拿大本地办假证-寻找办理Dalhousie毕业证和达尔豪斯大学毕业证书的中介代理》rnrncn29
 
Uae-NO1 Kala Jadu specialist Expert in Pakistan kala ilam specialist Expert i...
Uae-NO1 Kala Jadu specialist Expert in Pakistan kala ilam specialist Expert i...Uae-NO1 Kala Jadu specialist Expert in Pakistan kala ilam specialist Expert i...
Uae-NO1 Kala Jadu specialist Expert in Pakistan kala ilam specialist Expert i...Amil baba
 
Unveiling Poonawalla Fincorp’s Phenomenal Performance Under Abhay Bhutada’s L...
Unveiling Poonawalla Fincorp’s Phenomenal Performance Under Abhay Bhutada’s L...Unveiling Poonawalla Fincorp’s Phenomenal Performance Under Abhay Bhutada’s L...
Unveiling Poonawalla Fincorp’s Phenomenal Performance Under Abhay Bhutada’s L...beulahfernandes8
 
Market Morning Updates for 16th April 2024
Market Morning Updates for 16th April 2024Market Morning Updates for 16th April 2024
Market Morning Updates for 16th April 2024Devarsh Vakil
 
Liquidity Decisions in Financial management
Liquidity Decisions in Financial managementLiquidity Decisions in Financial management
Liquidity Decisions in Financial managementshrutisingh143670
 
2024-04-09 - Pension Playpen roundtable - slides.pptx
2024-04-09 - Pension Playpen roundtable - slides.pptx2024-04-09 - Pension Playpen roundtable - slides.pptx
2024-04-09 - Pension Playpen roundtable - slides.pptxHenry Tapper
 
Economic Risk Factor Update: April 2024 [SlideShare]
Economic Risk Factor Update: April 2024 [SlideShare]Economic Risk Factor Update: April 2024 [SlideShare]
Economic Risk Factor Update: April 2024 [SlideShare]Commonwealth
 
NO1 Certified kala jadu karne wale ka contact number kala jadu karne wale bab...
NO1 Certified kala jadu karne wale ka contact number kala jadu karne wale bab...NO1 Certified kala jadu karne wale ka contact number kala jadu karne wale bab...
NO1 Certified kala jadu karne wale ka contact number kala jadu karne wale bab...Amil baba
 
Guard Your Investments- Corporate Defaults Alarm.pdf
Guard Your Investments- Corporate Defaults Alarm.pdfGuard Your Investments- Corporate Defaults Alarm.pdf
Guard Your Investments- Corporate Defaults Alarm.pdfJasper Colin
 
Role of Information and technology in banking and finance .pptx
Role of Information and technology in banking and finance .pptxRole of Information and technology in banking and finance .pptx
Role of Information and technology in banking and finance .pptxNarayaniTripathi2
 
Amil Baba In Pakistan amil baba in Lahore amil baba in Islamabad amil baba in...
Amil Baba In Pakistan amil baba in Lahore amil baba in Islamabad amil baba in...Amil Baba In Pakistan amil baba in Lahore amil baba in Islamabad amil baba in...
Amil Baba In Pakistan amil baba in Lahore amil baba in Islamabad amil baba in...amilabibi1
 
The AES Investment Code - the go-to counsel for the most well-informed, wise...
The AES Investment Code -  the go-to counsel for the most well-informed, wise...The AES Investment Code -  the go-to counsel for the most well-informed, wise...
The AES Investment Code - the go-to counsel for the most well-informed, wise...AES International
 
10 QuickBooks Tips 2024 - Globus Finanza.pdf
10 QuickBooks Tips 2024 - Globus Finanza.pdf10 QuickBooks Tips 2024 - Globus Finanza.pdf
10 QuickBooks Tips 2024 - Globus Finanza.pdfglobusfinanza
 
Financial Preparation for Millennia.pptx
Financial Preparation for Millennia.pptxFinancial Preparation for Millennia.pptx
Financial Preparation for Millennia.pptxsimon978302
 

Recently uploaded (20)

Uae-NO1 Pakistani Amil Baba Real Amil baba In Pakistan Najoomi Baba in Pakist...
Uae-NO1 Pakistani Amil Baba Real Amil baba In Pakistan Najoomi Baba in Pakist...Uae-NO1 Pakistani Amil Baba Real Amil baba In Pakistan Najoomi Baba in Pakist...
Uae-NO1 Pakistani Amil Baba Real Amil baba In Pakistan Najoomi Baba in Pakist...
 
Gender and caste discrimination in india
Gender and caste discrimination in indiaGender and caste discrimination in india
Gender and caste discrimination in india
 
cost of capital questions financial management
cost of capital questions financial managementcost of capital questions financial management
cost of capital questions financial management
 
Financial analysis on Risk and Return.ppt
Financial analysis on Risk and Return.pptFinancial analysis on Risk and Return.ppt
Financial analysis on Risk and Return.ppt
 
The Inspirational Story of Julio Herrera Velutini - Global Finance Leader
The Inspirational Story of Julio Herrera Velutini - Global Finance LeaderThe Inspirational Story of Julio Herrera Velutini - Global Finance Leader
The Inspirational Story of Julio Herrera Velutini - Global Finance Leader
 
NO1 Certified Black Magic Removal in Uk kala jadu Specialist kala jadu for Lo...
NO1 Certified Black Magic Removal in Uk kala jadu Specialist kala jadu for Lo...NO1 Certified Black Magic Removal in Uk kala jadu Specialist kala jadu for Lo...
NO1 Certified Black Magic Removal in Uk kala jadu Specialist kala jadu for Lo...
 
《加拿大本地办假证-寻找办理Dalhousie毕业证和达尔豪斯大学毕业证书的中介代理》
《加拿大本地办假证-寻找办理Dalhousie毕业证和达尔豪斯大学毕业证书的中介代理》《加拿大本地办假证-寻找办理Dalhousie毕业证和达尔豪斯大学毕业证书的中介代理》
《加拿大本地办假证-寻找办理Dalhousie毕业证和达尔豪斯大学毕业证书的中介代理》
 
Uae-NO1 Kala Jadu specialist Expert in Pakistan kala ilam specialist Expert i...
Uae-NO1 Kala Jadu specialist Expert in Pakistan kala ilam specialist Expert i...Uae-NO1 Kala Jadu specialist Expert in Pakistan kala ilam specialist Expert i...
Uae-NO1 Kala Jadu specialist Expert in Pakistan kala ilam specialist Expert i...
 
Unveiling Poonawalla Fincorp’s Phenomenal Performance Under Abhay Bhutada’s L...
Unveiling Poonawalla Fincorp’s Phenomenal Performance Under Abhay Bhutada’s L...Unveiling Poonawalla Fincorp’s Phenomenal Performance Under Abhay Bhutada’s L...
Unveiling Poonawalla Fincorp’s Phenomenal Performance Under Abhay Bhutada’s L...
 
Market Morning Updates for 16th April 2024
Market Morning Updates for 16th April 2024Market Morning Updates for 16th April 2024
Market Morning Updates for 16th April 2024
 
Liquidity Decisions in Financial management
Liquidity Decisions in Financial managementLiquidity Decisions in Financial management
Liquidity Decisions in Financial management
 
2024-04-09 - Pension Playpen roundtable - slides.pptx
2024-04-09 - Pension Playpen roundtable - slides.pptx2024-04-09 - Pension Playpen roundtable - slides.pptx
2024-04-09 - Pension Playpen roundtable - slides.pptx
 
Economic Risk Factor Update: April 2024 [SlideShare]
Economic Risk Factor Update: April 2024 [SlideShare]Economic Risk Factor Update: April 2024 [SlideShare]
Economic Risk Factor Update: April 2024 [SlideShare]
 
NO1 Certified kala jadu karne wale ka contact number kala jadu karne wale bab...
NO1 Certified kala jadu karne wale ka contact number kala jadu karne wale bab...NO1 Certified kala jadu karne wale ka contact number kala jadu karne wale bab...
NO1 Certified kala jadu karne wale ka contact number kala jadu karne wale bab...
 
Guard Your Investments- Corporate Defaults Alarm.pdf
Guard Your Investments- Corporate Defaults Alarm.pdfGuard Your Investments- Corporate Defaults Alarm.pdf
Guard Your Investments- Corporate Defaults Alarm.pdf
 
Role of Information and technology in banking and finance .pptx
Role of Information and technology in banking and finance .pptxRole of Information and technology in banking and finance .pptx
Role of Information and technology in banking and finance .pptx
 
Amil Baba In Pakistan amil baba in Lahore amil baba in Islamabad amil baba in...
Amil Baba In Pakistan amil baba in Lahore amil baba in Islamabad amil baba in...Amil Baba In Pakistan amil baba in Lahore amil baba in Islamabad amil baba in...
Amil Baba In Pakistan amil baba in Lahore amil baba in Islamabad amil baba in...
 
The AES Investment Code - the go-to counsel for the most well-informed, wise...
The AES Investment Code -  the go-to counsel for the most well-informed, wise...The AES Investment Code -  the go-to counsel for the most well-informed, wise...
The AES Investment Code - the go-to counsel for the most well-informed, wise...
 
10 QuickBooks Tips 2024 - Globus Finanza.pdf
10 QuickBooks Tips 2024 - Globus Finanza.pdf10 QuickBooks Tips 2024 - Globus Finanza.pdf
10 QuickBooks Tips 2024 - Globus Finanza.pdf
 
Financial Preparation for Millennia.pptx
Financial Preparation for Millennia.pptxFinancial Preparation for Millennia.pptx
Financial Preparation for Millennia.pptx
 

WebGL For Game Development Spring 2013

  • 1. WebGL for Game Development Tony Parisi http://www.tonyparisi.com
  • 2. About Me  Serial entrepreneur  Founder, stealth startup Skybox Engine  Consulting architect and CTO https://github.com/tparisi/Skybox  Web3D Co-Creator, VRML and X3D WebGL Book Code  Author https://github.com/tparisi/WebGLBook Contact Information tparisi@gmail.com Skype: auradeluxe http://twitter.com/auradeluxe htt p://www.tonyparisi.com/ http://www.learningwebgl.com/ Get the Book! WebGL: Up and Running http://shop.oreilly.com/product/0636920024729.do Pre-release May 29, 2013 Discount Code: WEBGL13 (expires 4/8/13) Print Print ISBN: 9781449323578 Ebook ISBN: 9781449326500
  • 3. What is WebGL?  The new 3D API standard  OpenGL ES™ in a browser  JavaScript API bindings  Supported in nearly all modern browsers  Supported on many devices  Shipped since early 2011 …and it’s Awesome. 4/2/2013 WebGL For Game Development
  • 4. Who Controls WebGL?  Part of the HTML5 family of technologies  …not really.  …well, really.  Standard maintained by Khronos Grouphttp://www.khronos.org  Major browser and system makers  Solid, stable set of core contributors  Serious conformance effort 4/2/2013 WebGL For Game Development
  • 5. Where Does WebGL Run?  Chrome, Firefox, Safari, Opera  Internet Explorer rumors  iOS – iAds only  Android – mobile Chrome in Beta  Blackberry – making big push with HTML5 platform  500M+ seats 4/2/2013 WebGL For Game Development
  • 6. Why Use WebGL for Games?  Rich internet experiences with true hardware-accelerated 3D  No download  Complete integration with page elements – use HTML5 for all your game UI  (Mostly) cross-platform  Rapid development  Performance – it’s faster than 2D canvas  Royalty-free - no licensing issues 4/2/2013 WebGL For Game Development
  • 7. Why Not Use WebGL For Games?  Not supported in IE (yet)  Not turned on by default in Safari  Limited iOS  General performance issues with mobile browser-based games  Cross-platform and performance issues could be mitigated with a hybrid Native/JS strategy using libraries like AppMobi, Ludei  Engines and tools still a mishmash 4/2/2013 WebGL For Game Development
  • 8. JavaScript: NOT a Reason to Not Use WebGL For Games From: Brendan Eich’s The State of JavaScript 4/2/2013 http://brendaneich.github.com/Strange-Loop-2012/#/ WebGL For Game Development
  • 9. Don’t Believe Me? Check This Out Brandon Jones’ Blog http://blog.tojicode.com/2011/05/ios-rage-rendered- 4/2/2013 with-webgl.html WebGL For Game Development
  • 10. How WebGL Works  It’s a JavaScript drawing API  Draw to a canvas element using a special context  Low-Level drawing – buffers, primitives, textures and shaders  There is no file format; no DOM; no markup. Here’s a Sample. 4/2/2013 WebGL For Game Development
  • 11. Building a Game  Choosing a framework  Drawing graphics  Loading models  Building a particle system  Animation  Interaction  Integrating 2D and 3D  Adding sound  Making it robust  Putting it all together 4/2/2013 WebGL For Game Development
  • 12. Choosing a Framework  Open source rendering engines/frameworks  Three.js  CubicVR  SceneGL  GLGE  Open Source Game engines  Gladius  KickJS  Skybox  Roll your own? 4/2/2013 WebGL For Game Development
  • 13. Commercial WebGL Game Engines and Tools  PlayCanvas http://www.playcanvas.com/ Ludei http://ludei.com/  Turbulenz https://turbulenz.com/ (Summer 2013)  Goo http://www.gootechnologies.com/  Verold http://verold.com/  Sketchfab https://sketchfab.com/  Unreal… ? http://www.extremetech.com/gaming/1 51900-unreal-engine-3-ported-to- javascript-and-webgl-works-in-any- modern-browser 4/2/2013 WebGL For Game Development
  • 14. Three.js – A JavaScript 3D Engine  Renders to 3D WebGL or 2D standard canvas  Represents WebGL at a high level using standard 3D graphics concepts  Feature rich  Fast, robust, well maintained  It’s a library, not a game engine, not a framework https://github.com/mrdoob/three.js/ Here’ s That Square Again. 4/2/2013 WebGL For Game Development
  • 15. Sim.js – A Simple Simulation Framework for WebGL/Three.js  Wraps common Three.js setup, teardown and handling  Implements the run loop  Uses requestAnimationFrame() (vs. setTimeout())  Adds handlers for mouse and keyboard DOM events  Provides foundation objects (Application, Base object and PubSub)  Handles WebGL detection and context lost events https://github.com/tparisi/Sim.js 4/2/2013 WebGL For Game Development
  • 16. Drawing Graphics  Primitive shapes  Polygon meshes  Points and lines  Materials  Textures  Lights  Transform hierarchy  Shaders 4/2/2013 WebGL For Game Development
  • 17. Loading Models  WebGL has no built-in file format  Most formats are engine- specific  Many WebGL frameworks support COLLADA  Three.js has JSON format with blender exporter, OBJ file converter  Potential format standard (glTF) in development by Khronos  Overall, tools and exporters still primitive 4/2/2013 WebGL For Game Development
  • 18. Animating The Scene  WebGL has no built-in animation support  Three.js has some animation utilities  Key frames  Skins  Morphs  With JavaScript, we can build our own anyway  Animate anything: transforms, textures, materials, lights… 4/2/2013 WebGL For Game Development
  • 19. Implementing Interaction  Mouse: DOM event handling plus Three.js picking support  Keyboard handling is standard DOM 4/2/2013 WebGL For Game Development
  • 20. Creating Effects – a Particle System  Three.js has a basic built-in particle system  But it’s very basic: no emitters or physics models  You have to animate it all yourself 4/2/2013 WebGL For Game Development
  • 21. Integrating 2D and 3D  WebGL’s secret weapon  Breaks down window boundaries  2D overlaid on 3D  3D overlaid on 2D  Canvas2D as a texture  Video as a texture 4/2/2013 WebGL For Game Development
  • 22. Adding Sound  Use new <audio> element  Fairly well supported in browsers  Other APIs (Moz, Chrome) not supported uniformly 4/2/2013 WebGL For Game Development
  • 23. Making It Robust  Detecting WebGL support in the browser var canvas = document.createElement("canvas"); var gl = null; var msg = "Your browser does not support WebGL."; try { gl = canvas.getContext("experimental-webgl"); } catch (e) { msg = "Error creating WebGL Context!: " + e.toString(); } if (!gl) { throw new Error(msg); } 4/2/2013 WebGL For Game Development
  • 24. Making It Robust  Detecting a lost context RacingGame.prototype.handleContextLost = function(e) { this.restart(); } RacingGame.prototype.addContextListener = function() { var that = this; this.renderer.domElement.addEventListener("webglcontextlost", function(e) { that.handleContextLost(e); }, false); } 4/2/2013 WebGL For Game Development
  • 25. Putting It All Together 4/2/2013 WebGL For Game Development
  • 26. Related Efforts  Physics  Box2DJS http://box2d-js.sourceforge.net/  JigLibJS2 http://brokstuk.com/jiglibjs2/  Ammo https://github.com/kripken/ammo.js/  Content Pipeline/File Formats  glTF https://github.com/KhronosGroup/glTF  Emscripten – C/C++(LLVM) to JavaScript generator  http://emscripten.org  http://developer.mozilla.org/en-US/demos/detail/bananabread  asm.js – Fast JavaScript subset  http://asmjs.org/ 4/2/2013 WebGL For Game Development
  • 27. The Bottom Line  WebGL is solid for developing games  OpenGL ES under the hood (it’s what’s running on your phone and tablet)  Huge development, testing and conformance effort by browser writers  Strong standards group maintaining it (www.khronos.org)  In most browsers and growing number of devices  A few enhancements will help  Transferables, built-in matrices  Production capability is still very crude  Tools and frameworks are young and evolving  Export from pro tools a bit shaky  The real issues facing game developers  Still not ubiquitous on mobile  The JavaScript runtime is garbage-y, must take great care  Device input – mouse lock API coming  Audio and video API chaos  Formats and delivery - streaming, compression, binary 4/2/2013 WebGL For Game Development
  • 28. Let’s Go~ Contact Information tparisi@gmail.com Skype: auradeluxe http://twitter.com/auradeluxe http://www.tonyparisi. com/ http://www.learningwebgl.com/ Get the Book! WebGL: Up and Running http://shop.oreilly.com/product/0636920024729.do Discount Code: WEBGL13 (expires 4/8/13) Print Print ISBN: 9781449323578 Ebook ISBN: 9781449326500 Skybox Engine Pre-release May 29, 2013 https://github.com/tparisi/Skybox WebGL Book Code https://github.com/tparisi/WebGLBook