The web as a gaming platform

The web as a gaming platform

Targetting different ecosystems and hardware

  • Expensive, platforms get left out
  • Moving to a new platform requires new skills, new tech
  • Authors are at the mercy of app stores
  • 2014 and I still need to install games before I can try them out?

Ask yourself...

Do I want to make a game for tablets, or do I want to make a game for {Some platform} (Android, ipad, ...)

How about
a Web game ?

Some industries haven't yet made a strong move toward the Web

Wrong ideas...

  • "The web is not meant for making games, JS is slow"
  • "I have invested in technologies that are not written in JS"
  • "I need to access the hardware (accelerometer, camera, etc.)"

Evolution of the Web

The Web was originally a way to present static information

Evolution of the Web

The web became more dynamic, and people started building online applications and services

Firefox OS
Firefox OS

Just like the Web, browser technologies are evolving

  • The architecture of modern browsers has changed a lot
  • Mozilla research expereiements with a new browse technology (Servo)

Javascript has become really fast

  • Crazy amount of engineering effort goes into JS performance
  • JS lets you do a lot of things...
    • Some of which are slow
    • Some of which are easy to optimize

asm.js

  • A subset of JS that can be reliably and efficiently optimized
  • Compatible with every browsers since it is JS
  • Google Chrome and Opera followed us (thanks guys!)

75% of the gamer community

asm.js

  • Why not a bytecode spec like, say, LLVM?
    • LLVM is huge
    • LLVM's bytecode VM ~> 20 Mo!
    • Not designed with security in mind
    • JS being higher level: implementation is not constrained by the bytecode spec -> more freedom for optimization
  • What does byte code give us anyway?

"Compiling" to JS

  • Emscripten: LLVM IR → JS
  • Works great with C++
  • Generates very efficient code (asm.js)
  • Performance ~1.5x native performance
  • Very dense representation
  • There's also Mandreel and Duetto

WebGL

  • Low level access to the GPU
  • Security
  • Evolves along with the OpenGL ES spec

WebAudio

  • Pretty much covers all the needs of the game industry

WebApi

  • WebTelephony
  • WebSMS
  • Vibration
  • Screen orientation
  • Power management
  • Battery status
  • Geolocation
  • WiFi information
  • Device storage
  • Contacts
  • Mouse lock
  • WebBluetooh
  • Network information
  • Web activities
  • Push notifications
  • Permissions
  • WebFM
  • WebPayment
  • Ambiant light sensor
  • Proximity sensor
  • Raw sockets
  • Camera
  • Background services
  • Data store
  • ...

A distribution platform

The web is a standard platform

The web is an open platform

The web is a trusted platform

No need to install a game to try it out on the web

The web is the platform

Thanks

A few links