Throw away your Xbox

The future of games

is written in JS

 

@OpherV

 

NDC London

Jan 23

Don't

 

Throw away

your xbox

 

Can we do better?

Web Games are amazing!


I'm Opher

Senior Developer

Hi!

Playing video games for way longer

Programming for 23+ years

Playing guitar for 20+ years

I DId all of this because I was 

 

LAZY

@opherv

"Some day I'll make my own game."

- YOU,

 

Random person sitting in the audience

Make Web
GAMES

*

TODAY!

The web wasn't made for

GAMES

...but neither was it made for

  • email

  • social networks

  • video

  • banking

Title Text

ESPORTS

GAMES ARE

BIG

What are web games?

 

1998:

  • New medium for self expression
  • Bypass established publishing process
  • Expose your work to millions
  • Neatly packaged tech

The golden age of flash games

2007: iPhone 

RIP FLASH

2005  -  Canvas

2010  -  Web Workers

2011  -  WebGL

2012  -  Web Audio

2013  -  Gamepad API

    ?     -  WebGPU

web games:

 

PLAYABLE IN THE BROWSER

IMPLEMENTED WITH STANDARDISED WEB TECH

Novel InteractiVITY

Why web games:

Google Racer

Tech

Canvas

Paper.JS

Web Audio API

Google Cloud Platform

Websockets

Rapid

PROTOTYPING

Why web games:

Summer Afternoon / Vicente Lucendo

Slow Roads / Anslo

EASIER TO MAKE

ACCESSIBLE

Why web games:

  • Semantic DOM
  • Alternative input methods
  • Assistive tech

The web Supports A11y:

If you follow a11y best practices, by default you're on your way to make your game accessible

It has "web"

In the name

Why web games:

JS runtime

TAB SPACE

Browser

OS

HARDWARE

Js is not

the obvious choice

  • SCRIPTING LANGUAGE uncompiled

  • Single Threaded

  • No direct MEMOry Access

  • NO HW/OS accesS

  • Browser implementation dependent

they run *EXPLETIVE*

everywhere

Why web games?

Released 1989 for the Apple II

The Modern BROWSER is X271 more powerful and capabale than the APPLE II

Prince.JS / Ultrabolido & Oliver Klemenz

Ninja vs Evilcorp / Rémi Vansteelandt

Q13J / Dominic Szablewski

HEXGL / Thibaut Despoulain

PERFORMANCE

Web Workers

Networking

Sockets / WebRTC / ~WebTransport

RENDERING

Canvas / WebGL / WebGPU

PERSISTENCY

Web Storage API / IndexedDB

Input

Gamepad API

Offline

Service Workers

"You can use a lot of different technologies to create something that doesn't really have a lot of value"

- Shigeru Miyamoto,

  producer, "1080° Snowboarding"

What's a game?

"A game is a series of interesting choices"

- Sid Meier

  Designer, Floyd of the Jungle

Input

Game Loop

OUtput

(Keyboard, mouse, gamepad, motion)

(Video / Audio)

Renderers

Rendering Engines

HTML + CSS

Candy Box 2/ Andrei Kvapil

Pure CSS Stack / Bence Szabo

The Mine / Jamie Coulter

Lighthouse / Ben Evans

2D Rendering Engines

3D Rendering Engines

THREEJS

ThREE-js-FIBER

THRELTE

Framework Bindings

Input

Game Loop

OUtput

(Video / Audio)

Game Engine

Game EnGINes

Game Engines

Phaser demo: Evolb / Opher Vishnia

Vampire Survivors / Luca Galante

Game Engines

Issue #1

Technology

  • Performance
  • Rendering
  • Networking

Are these web games? 🤔

 

Networking

13,759 km

299,792,458 m / s

Speed of Light

46 milliseconds

Tel Aviv - Melbourne

Round Trip Time (RTT) > 100ms

Tel Aviv

Melbourne

Request - 46ms

Reply - 46ms

TCP

Slower,

reliable transfers

 

UDP

Fast, non-guaranteed transfer ("best effort")

 

WebTransport

Now what?

I made a web game!

Issue #2 Distribution

but...

Can I make money with my game?

option 1:

Ads

option 2:

Donations

option 3:

Micropayments

Where TO

START?

webgamedev.com

webgamedev.com

"You might not think that programmers are artists, but programming is an extremely creative profession"

- John Romero , programmer

   HOW TO WEIGH AN ELEPHANT

START WITH 2D

NOT 3d

 

MY TIP:

Web Games are amazing!

GO MAKE THEM

Thanks!

@OpherV

 

The future of games is written in JS

By Opher Vishnia

The future of games is written in JS

  • 407