37
@hunterloftis We Will All Be Game Developers record your screen! start a timer!

ForwardJS: We Will All Be Game Developers

Embed Size (px)

Citation preview

@hunterloftis

We Will All Be Game Developers

record your screen! start a timer!

@hunterloftis

@hunterloftis

@hunterloftis

@hunterloftis

“Would you be interested in a project for one of our

artists based on that FPS? We'd like to provide the

full album stream on Rustie's website while fans have

to navigate through the world.”

– Warp Records

@hunterloftis

Time(3 weeks)

@hunterloftis

Budget($)

@hunterloftis

Technical Constraints(iPhone, iPad, Android & Desktop!)

@hunterloftis

“Optimism is an occupational hazard of

programming. ”

– Kent Beck

@hunterloftis

@hunterloftis

4 Million Rays / Second

demo (FF)

@hunterloftis

@hunterloftis

I’m not a game developer.Why should I care?

1 - level up, 2 - …

@hunterloftis

App interfaces are becoming

more like games.

@hunterloftis

App interfaces are becoming

more like games.

@hunterloftis

App interfaces are becoming

more like games.

@hunterloftis

App interfaces are becoming

more like games.

@hunterloftis

3 Ideas from gamedevfor better user interfaces

15 mins left?

@hunterloftis

1: Minimize and isolate state

@hunterloftis

@hunterloftis

@hunterloftis

Player Statedemo (standalone)

@hunterloftis

Pure functionsdemo (walking speed)

@hunterloftis

2: Enforce deterministic rendering(frames should be independent)

@hunterloftis

@hunterloftisdemo (multiplayer)

ludumstar.herokuapp.com

@hunterloftis

@hunterloftis

3: Separate rendering and simulation

@hunterloftis

The pursuit of 60 fpscinema: 24 fps

with blur: 18 fps

fighter pilots: 220 fps

@hunterloftis

A Browser Timeline

@hunterloftis

setInterval(frame, 0);

@hunterloftis

setInterval(frame, 17);

@hunterloftis

requestAnimationFrame(frame);demo (variable bodies)

@hunterloftis

Decoupled rendering & simulation

@hunterloftis

Time accumulatordemo (10 fps vs 60 fps)

@hunterloftis

My favorite bug

demo (box bug)

@hunterloftisThank you!

2D: Pixi.js, Matter.js

3D graphics: ThreeJS, BabylonJS

Game servers: iojs + Heroku (+ ws for multiplayer)

DOM & Native UIs: React.js • http://gamasutra.com/view/news/169296/

Indepth_Functional_programming_in_C.php • http://iamralpht.github.io/physics/