+ All Categories
Home > Design > HTML5: New UI Library for Games - Chad Austin

HTML5: New UI Library for Games - Chad Austin

Date post: 14-Jan-2015
Category:
Upload: chad-austin
View: 5,433 times
Download: 2 times
Share this document with a friend
Description:
 
Popular Tags:
37
HTML5: The New UI Library For Games Chad Austin Technical Director, IMVU
Transcript
Page 1: HTML5: New UI Library for Games - Chad Austin

HTML5: The New UI Library For Games > Chad Austin >  Technical Director, IMVU

Page 2: HTML5: New UI Library for Games - Chad Austin

HTML IS WINNING

Page 3: HTML5: New UI Library for Games - Chad Austin
Page 4: HTML5: New UI Library for Games - Chad Austin

Browser wars are hotter than ever >  Features like canvas, SVG, CSS3,

becoming standard > GPU accelerated compositing &

rasterization >  Tracing JITs

Page 5: HTML5: New UI Library for Games - Chad Austin

Terminology

> HTML = markup + CSS + JS + Canvas + sockets + etc.

> Mozilla = Firefox = Gecko

Page 6: HTML5: New UI Library for Games - Chad Austin

HISTORY OF IMVU’S UI

Page 7: HTML5: New UI Library for Games - Chad Austin

2004-2007: C++ & OpenGL

Page 8: HTML5: New UI Library for Games - Chad Austin

C++, GL, Win32

> Cons > Hard to find talent > Hard to maintain > Long recompiles and iteration times >  Inflexible

Page 9: HTML5: New UI Library for Games - Chad Austin

2007-2009: Flash

Page 10: HTML5: New UI Library for Games - Chad Austin

Flash, Flex

>  Pros >  Able to iterate >  Easy animation, video

> Cons >  High memory usage, address space leaks >  Looong mxmlc compile times >  Buggy

Page 11: HTML5: New UI Library for Games - Chad Austin

2009+: HTML

Page 12: HTML5: New UI Library for Games - Chad Austin

Pros!

> Very fast iteration > Matched intended design to the pixel >  Performance was fantastic > Render to texture and composite in 3D

scene

Page 13: HTML5: New UI Library for Games - Chad Austin

2009+: HTML

Page 14: HTML5: New UI Library for Games - Chad Austin

2009+: HTML

Page 15: HTML5: New UI Library for Games - Chad Austin

2009+: HTML

Page 16: HTML5: New UI Library for Games - Chad Austin

BENEFITS OF HTML

Page 17: HTML5: New UI Library for Games - Chad Austin

Lingua Franca

Page 18: HTML5: New UI Library for Games - Chad Austin

Hot Reloading, Firebug

Page 19: HTML5: New UI Library for Games - Chad Austin

jQuery, YUI

Page 20: HTML5: New UI Library for Games - Chad Austin

Advertising

Page 21: HTML5: New UI Library for Games - Chad Austin

DEMO

Page 22: HTML5: New UI Library for Games - Chad Austin

PERFORMANCE?

Page 23: HTML5: New UI Library for Games - Chad Austin

If your browser can handle this…

Page 24: HTML5: New UI Library for Games - Chad Austin

Performance

> Not a bottleneck for us >  Even 3D overlays! > <1 MB per Gecko document loaded

> 1000s of friends, inventory items

Page 25: HTML5: New UI Library for Games - Chad Austin

Performance (Friends)

Some DOM ops are O(n), use b-tree

Page 26: HTML5: New UI Library for Games - Chad Austin

Performance (Inventory)

Be careful to release image elements when scrolled out of view

Page 27: HTML5: New UI Library for Games - Chad Austin

Today’s Drawbacks

>  Elaborate animation still easier in Flash than SVG/Canvas/JS

>  3D: WebGL not prime time yet >  Tracing JITs hungrier than Lua/C++

Page 28: HTML5: New UI Library for Games - Chad Austin

WHO ELSE USES HTML FOR UI?

Page 29: HTML5: New UI Library for Games - Chad Austin

Wolfire – Overgrowth

Page 30: HTML5: New UI Library for Games - Chad Austin

Wolfire – Overgrowth (con’t)

Page 31: HTML5: New UI Library for Games - Chad Austin

Electronic Arts – Skate 3

Page 32: HTML5: New UI Library for Games - Chad Austin

Netflix on PlayStation 3

Page 33: HTML5: New UI Library for Games - Chad Austin

In-game Browsers

> Second Life > CCP – EVE Online >  Funcom – Anarchy Online, Age of Conan > ArenaNet – Guild Wars 2

Page 34: HTML5: New UI Library for Games - Chad Austin

Getting Started >  WebKit http://webkit.org/ vs. Gecko

https://developer.mozilla.org/en/Gecko >  We chose Gecko, most use WebKit (EA’s PS3

port: http://gpl.ea.com/skate3.html) >  Leverage entire stack: stream pixels from HTTP

into texture

Page 35: HTML5: New UI Library for Games - Chad Austin

Wrappers >  http://ubrowser.com/ >  http://wiki.secondlife.com/wiki/LlMozLib >  http://wiki.secondlife.com/wiki/LLQtWebKit >  http://www.khrona.com/products/awesomium/ >  http://berkelium.org/

Page 36: HTML5: New UI Library for Games - Chad Austin

Recap

> HTML and web technologies are advancing quickly

> Already suitable for in-game UIs > Rapid development and iteration > Worked for us, may work for you!

Page 37: HTML5: New UI Library for Games - Chad Austin

Questions?

[email protected] http://engineering.imvu.com

We’re hiring!


Recommended