Renaun Erickson
Adobe Game Developer Evangelist
This preso is focused on
  Desktop Web
   not mobile or TV
NaCL
Possible Definitions
 big budget & team size commerical games
 high quality game play
 high production value - looks good
 marketing term to sell more games

My definition:
A game that has high production value
   and good game play
     regardless of the budget or team
size.
Discuss available Technical
Features
   required by AAA games,
not a comparison of why you might
              choose one technology
       over the other.
                              NaCL
NaCL
Game Runtime
Browser Plugin



       Browser Plugin*
        - export to Flash /
       NaCL

       Khronos Group Spec
        - turned off by default in
           some browsers



NaCL   Browser Specific

                        * 125 million out of +1 billion connected computers http://mwne.ws/HwBz2Y
ActionScript, C/C++ through Flascc



           JavaScript (#pragma strict option), C#, Boo




       JavaScript, C/C++ to JavaScript through Emscripten




NaCL                         C/C++
Default: Relies on specific browser caching
       mechanisms.
       Other: LocalStorage, dev can ask user for more space

       Default: Relies on specific browser caching
       mechanisms.
       Other: Premium feature for caching asset bundles

       Default: Relies on specific browser caching
       mechanisms.
       Other: WebStorage, 5-10Mb varying quota request
       apis
       Default: Relies on specific browser caching
NaCL   mechanisms.
       Other: Pepper File I/O API, WebStorage
Stage3D API (based on OpenGL ES 2.0)
        - Win & Mac & Linux (Chrome) >2006 requires Pixel Shader 2.0,
       has blacklist
        - Constrained mode for previously blacklisted Intel® GMA
        - Software fallback

       Abstract API (DirectX and OpenGL), can make OS
       specific
        - Win & Mac, Linux through exporters



       OpenGL ES 2.0
        - Win Chrome >2009, Firefox >2010
        - Blacklists with browser overrides



       OpenGL ES 2.0
NaCL    - Follows Chrome’s WebGL driver support
AGAL



       Cg/HLSL – ShaderLab with #pragma specific targets




       GLSL




NaCL   GLSL
DXT1 / DXT5 / RGBA



       Handles texture conversion in authoring




       DXT1 / DXT3 / DXT5 / RGBA




NaCL   DXT1 / DXT3 / DXT5 / RGBA
Fullscreen supported



       Fullscreen supported




       Different browser implementations, mostly supported




NaCL   Relies on Chrome’s implementation
mp3, aac (video file), pcm (wav)



       Handles audio conversion in authoring
        - IDE supports mpeg(1/2/3), ogg vorbis, wav, aiff, mod, it, s3m, xm




       HTML <audio> or new Web Audio API spec




NaCL   Relies on Chrome’s HTML implementation
Yes, mouse lock in fullscreen       Not Yet




           Yes, mouse lock always             Yes



       Yes, mouse lock in some browsers
                                          some browsers
              requires fullscreen



NaCL         Depends on Chrome             Pepper API
TCP, Pseudo UDP with RTMFP



       Provide full server implementation
       TCP/UDP low level API through C# .Net/Mono



       Relies on browsers implementations, WebSocket,
       WebRTC will push UDP progress for games



NaCL   Relies on Chrome’s implementation, WebSocket
NaCL   Yes, Now
   Early Yes, Progessing
           Fast
 OpenGL ES 3.0 spec was released by the Khronos
  Group
 Unity/UDK game engine/tool vs low level APIs
  (Flash/WebGL/NaCL)
 Frameworks on top of low level APIs
    Flash – Away3D, Flare3D, Alternativa3D
    WebGL – three.js, PlayCanvas.com,
      CopperLicht, CloudMatch, many others
 A lot of current demos use the C++ to web tech
  path. There is a lot of existing content looking to
  come to the web. Not so many original full AAA
  games built on web tech (exception is Unity).
renaun@adobe.com

http://github.com/renaun

@renaun

http://renaun.com

Are AAA 3D Games for the Web Possible?

  • 1.
    Renaun Erickson Adobe GameDeveloper Evangelist
  • 2.
    This preso isfocused on Desktop Web not mobile or TV
  • 3.
  • 4.
    Possible Definitions  bigbudget & team size commerical games  high quality game play  high production value - looks good  marketing term to sell more games My definition: A game that has high production value and good game play regardless of the budget or team size.
  • 5.
    Discuss available Technical Features required by AAA games, not a comparison of why you might choose one technology over the other. NaCL
  • 6.
  • 7.
  • 8.
    Browser Plugin Browser Plugin* - export to Flash / NaCL Khronos Group Spec - turned off by default in some browsers NaCL Browser Specific * 125 million out of +1 billion connected computers http://mwne.ws/HwBz2Y
  • 9.
    ActionScript, C/C++ throughFlascc JavaScript (#pragma strict option), C#, Boo JavaScript, C/C++ to JavaScript through Emscripten NaCL C/C++
  • 10.
    Default: Relies onspecific browser caching mechanisms. Other: LocalStorage, dev can ask user for more space Default: Relies on specific browser caching mechanisms. Other: Premium feature for caching asset bundles Default: Relies on specific browser caching mechanisms. Other: WebStorage, 5-10Mb varying quota request apis Default: Relies on specific browser caching NaCL mechanisms. Other: Pepper File I/O API, WebStorage
  • 11.
    Stage3D API (basedon OpenGL ES 2.0) - Win & Mac & Linux (Chrome) >2006 requires Pixel Shader 2.0, has blacklist - Constrained mode for previously blacklisted Intel® GMA - Software fallback Abstract API (DirectX and OpenGL), can make OS specific - Win & Mac, Linux through exporters OpenGL ES 2.0 - Win Chrome >2009, Firefox >2010 - Blacklists with browser overrides OpenGL ES 2.0 NaCL - Follows Chrome’s WebGL driver support
  • 12.
    AGAL Cg/HLSL – ShaderLab with #pragma specific targets GLSL NaCL GLSL
  • 13.
    DXT1 / DXT5/ RGBA Handles texture conversion in authoring DXT1 / DXT3 / DXT5 / RGBA NaCL DXT1 / DXT3 / DXT5 / RGBA
  • 14.
    Fullscreen supported Fullscreen supported Different browser implementations, mostly supported NaCL Relies on Chrome’s implementation
  • 15.
    mp3, aac (videofile), pcm (wav) Handles audio conversion in authoring - IDE supports mpeg(1/2/3), ogg vorbis, wav, aiff, mod, it, s3m, xm HTML <audio> or new Web Audio API spec NaCL Relies on Chrome’s HTML implementation
  • 16.
    Yes, mouse lockin fullscreen Not Yet Yes, mouse lock always Yes Yes, mouse lock in some browsers some browsers requires fullscreen NaCL Depends on Chrome Pepper API
  • 17.
    TCP, Pseudo UDPwith RTMFP Provide full server implementation TCP/UDP low level API through C# .Net/Mono Relies on browsers implementations, WebSocket, WebRTC will push UDP progress for games NaCL Relies on Chrome’s implementation, WebSocket
  • 18.
    NaCL Yes, Now Early Yes, Progessing Fast
  • 19.
     OpenGL ES3.0 spec was released by the Khronos Group  Unity/UDK game engine/tool vs low level APIs (Flash/WebGL/NaCL)  Frameworks on top of low level APIs  Flash – Away3D, Flare3D, Alternativa3D  WebGL – three.js, PlayCanvas.com, CopperLicht, CloudMatch, many others  A lot of current demos use the C++ to web tech path. There is a lot of existing content looking to come to the web. Not so many original full AAA games built on web tech (exception is Unity).
  • 20.