Creación de video juegos en la nube(How to Build Kick Ass Games in the Cloud)
Chris SchalkGoogle Developer Advocate
Let's start with a Demo!
Introducing PlayN!An abstraction layer for games (Formerly ForPlay)
● A small API for building fast cross-platform games
● Core game code can be platform agnostic
● Develop games in Java○ Familiar language/toolset
● Is compatible with GWT○ Compiles to JS/HTML5, (among other platforms)
● Free and Open Source (alpha)○ http://code.google.com/p/playn
Introducing PlayN!A GWT abstraction layer for games
Implementations for Java, HTML5(GWT/JS), Android, Flash
PlayN API
Components of PlayN!
Fully generic gaming components. Core game logic is fully platform independent!
Implements core.Game PlayN.*
Components of PlayN!
Just implement PlayN.core.Game
Components of PlayN!
Easy to write code to handle common input devices
public void OnKeyDown( keyboard.Event event ) {
public void OnPointerEnd( Pointer.Event event ) {
public void OnPointerMove( Pointer.Event event ) {
Components of PlayN!
Images are handled via the PlayN Layering system
Components of PlayN!
Game resources are preloaded using the assetManager
Time for some more demos!
PlayN Cross Platform Magic
● Game uses core PlayN abstractions, is unaware of which platform is running
● The only platform-specific code is in the entry point for each platform:
PlayN.run(new MyGame()); PlayN.run(new MyGame());
Other PlayN Benefits
● Built-in physics engine based on proven OpenSource technologies
● Box2D○ C++ 2D Physics engine by Erin Catto
● JBox2D○ A port of Box2D from C++ to Java
● GWTBox2D○ A port of JBox2D from Java to JavaScript
Benefits of GWT Abstraction
● GWT Compiler optimizes code for size○ Removes unused code○ Evaluates when possible at compile time○ Inlines functions○ Heavily obfuscated result code
● Smaller compiled code - faster load time● Optimized caching, avoids unnecessary network IO
Benefits of HTML5 for Games
● New HTML elements○ 2D canvas○ Audio, Video
● Application Cache
● 3D Canvas (WebGL)○ Open GL ES 2.0 made JavaScript friendly
● CSS3○ Supports hardware accelerated transforms
More demos● Building your own games
○ Introducing "App Engine: Cloud Warrior"
App Engine Cloud Warrior Architecture
Google Storage
Game Assets(images/sounds)
Game ScoresProfile Data
App EngineDatastore
Game Play (PlayN)
PlayN Summary
● Open source, cross-platform game abstraction layer○ Core game logic is platform agnostic
● ForPlay abstracts away the core components of a game○ The game loop, I/O system, and asset management
● Write in familiar Java, get performance on multiple platforms
○ Superior Java development/debug○ GWT allows compilation to fast JavaScript/HTML5
● Your assignment:○ Download PlayN and build a game! ○ http://code.google.com/p/playn/
Q&A@cschalk