11
Universo Vincent CHEN

Universo: Cross platform graphic engine with HTML5 Canvas compatible API

Embed Size (px)

DESCRIPTION

Universo is a cross-platform "graphic engine" that provides HTML5 Canvas compatible API in JavaScript.To be straight forward, just imagine a window frame that only contains one canvas element of the modern browser. Which supports all JavaScript APIs (Not only drawing, also keyboard/mouse events) inside a canvas element, but can not render any other DOM element.Although Universo supports canvas API in JavaScript, it is NOT built upon any existing browser core (such as WebKit, Gecko, etc.). It is completely implemented from the scratch.Universo is NOT a "game engine" at this stage, but it can be used as the graphic backend of a game engine or UI engine.

Citation preview

Page 1: Universo: Cross platform graphic engine with HTML5 Canvas compatible API

Universo

Vincent CHEN

Page 2: Universo: Cross platform graphic engine with HTML5 Canvas compatible API

What is Universo

• Universo is a cross-platform “graphic engine” that provides HTML5 Canvas compatible API in JavaScript.

• http://universo.vincentchen.me• Pronouncing: 乌尼微索

Page 3: Universo: Cross platform graphic engine with HTML5 Canvas compatible API

Key Features

• A window frame that only contains one <canvas/> element of the modern browsers.

• Support all JavaScript APIs in <canvas/>– Drawing– Keyboard/Mouse event

• NOT able to render any other DOM element.• NOT support CSS.

Page 4: Universo: Cross platform graphic engine with HTML5 Canvas compatible API

The making of Universo

• It is completely implemented from the scratch– C++ & JavaScript

• NOT built upon any existing browser core (e.g. WebKit, Gecko, etc.)

Page 5: Universo: Cross platform graphic engine with HTML5 Canvas compatible API

Origin of Universo

• Why building Universo?– I want a race car, so I start from making its wheels

manually…• Why using JavaScript and be Canvas API

compatible?– HTML5 Canvas API is a “good enough” design (not the

best, but a good start point), by following the standard spec, I don’t need to design my own set of APIs from the scratch.

– Already a lot of development resources around HTML5 Canvas, and of course, in JavaScript.

Page 6: Universo: Cross platform graphic engine with HTML5 Canvas compatible API

History of Universo

• Before JavaScript, the first version of Universo is built upon C & Lua, in April 2011, I dropped the entire codebase and started over from C++ & JavaScript.

• I investigated Google DART in Sep 2011, and decided to stay on JavaScript because DART is still far from mature.

• The major part of code is done in just 1 month (spare time)

Page 7: Universo: Cross platform graphic engine with HTML5 Canvas compatible API

Roadmap

• DONE– Mac/Windows 2D Canvas API demo

• WIP– Buggy WebGL API implementation…– iOS porting

• TODO– WinRT porting– Application OTA loading and running– Android porting

Page 8: Universo: Cross platform graphic engine with HTML5 Canvas compatible API

Demos

• Playable demos and videos can be downloaded from http://universo.vincentchen.me

• NOTE: pre-alpha quality…

Page 9: Universo: Cross platform graphic engine with HTML5 Canvas compatible API

The value of Universo

• Universo is NOT a “game engine” at this stage, but it can be used as the graphic backend of a game engine or UI framework (cross-platform).

• I hope Universo can bring the first workable WebGL to mobile… (Come on! Chrome for Android!)

Page 10: Universo: Cross platform graphic engine with HTML5 Canvas compatible API

The future of Universo

• Refactoring & Performance tuning!• I have too many great ideas, but there is not

enough space to write them all down here…• What do you think?

Page 11: Universo: Cross platform graphic engine with HTML5 Canvas compatible API

Thanks!

• Ping me:– [email protected]– https://github.com/artyyouth– http://cn.linkedin.com/in/yuanc– http://vincentchen.me