SlideShare a Scribd company logo
1 of 50
Download to read offline
Christian Schalk
 Google Developer Advocate

How to Build Kick Ass Games for the
Cloud

GDC Online 2011
Austin, Texas - October 10, 2011
About the Speaker

 Christian Schalk

 Day Job
  ● Developer Advocate for Google's Cloud Technology
     ○ App Engine, Google Storage, Prediction API, BigQuery ...

  ● Mostly Server-Side Java Background
     ○ "JavaServer Faces: The Complete Reference" Co-Author

  ● Haven't developed video games since the
    Commodore-64!


                                           Yes, I'm old school ;-)
Agenda

 ● PlayN Recap

 ● Google Cloud Tech Review
    ○ App Engine
    ○ Google Storage
    ○ ...
 ● Hands on with PlayN - Getting Started

 ● Deploying your game to the cloud

 ● Setting up an RPC mechanism
Let's start with a Demo!
Agenda

 ● PlayN Recap

 ● Google Cloud Tech Review
    ○ App Engine
    ○ Google Storage
    ○ ...
 ● Hands on with PlayN - Getting Started

 ● Deploying your game to the cloud

 ● Setting up an RPC mechanism
Reviewing PlayN!
Formerly known as "ForPlay"



   ● An API for building cross-platform games

   ● Core game code can be platform agnostic

   ● Develop games in Java
      ○ Familiar language/toolset

   ● Leverages Google Web Toolkit
      ○ 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




                                PlayN API




Implementations for Java, HTML5(GWT/JS), Android, Flash
Components of PlayN!




Implements core.Game                        PlayN.*




Fully generic gaming components. Core game logic is fully platform
independent!
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
Agenda

 ● PlayN Recap

 ● Google Cloud Tech Review
    ○ App Engine
    ○ Google Storage
    ○ ...
 ● Hands on with PlayN - Getting Started

 ● Deploying your game to the cloud

 ● Setting up an RPC mechanism
Google App Engine
Build your Apps on Google's cloud
Introducing App Engine
Build and run your web apps on Google’s Cloud Infrastructure



   ● Easy to build
   ● Easy to maintain
   ● Easy to scale




 Focus on building your app, let us wear the pagers!
Cloud Development in a Box


● Development SDK
● Local development tools
    ○ DevServer, admin
    ○ Eclipse plugin
● Language runtimes
● Specialized API services
● Cloud-based dashboard
● Automatic scaling
    ○ Built-in fault tolerance
    ○ Automated load balancing
● Continuously evolving...
Language Runtime Options




           GO              Java
        Experimental
Specialized APIs/Services for the Sandbox

    Memcache     Datastore    URL Fetch




    Mail         XMPP         Task Queue




    Images       Blobstore    User Service
App Engine Evolution Through The Years




 2008                            2009                                2010                    2011

   App Engine     Batch write/read          Java     Task Queues      Blobstore      Multitenancy Hi-Replication
       Launch                Https      DB Import           XMPP       Appstats Instance Console       Datastore
        Python             Status-           cron   incoming email       cursors       Always On Channel API
      Datastore        Dashboard                                        Mapper         hi-perf imag     Files API
    Memcache                                                                          10 min tasks   Remote API
    logs export                                                                                     Prosp Search
App Engine - By the Numbers
  100,000+
  Active developers per month

  200,000+
  Active apps per week
App Engine - By the Numbers




1,500,000,000+
Page views per day
Gaming - Share data Mobile or Web!
App Engine More Info




       http://code.google.com/appengine
Google Storage for Developers
       Store your data in Google's cloud
What Is Google Storage?



 ● Store your data in Google's cloud
    ○ any format, any amount, any time

 ● You control access to your data
    ○ private, shared, or public

 ● Access via Google APIs or 3rd party tools/libraries
Sample Use Cases

 Static content hosting
 e.g. static html, images, music, video

 Backup and recovery
 e.g. personal data, business records

 Sharing
 e.g. share data with your customers

 Data storage for applications
 e.g. used as storage backend for Android, AppEngine, Cloud
 based apps

 Storage for Computation
 e.g. BigQuery, Prediction API
Google Storage Benefits


             High Performance and Scalability
             Backed by Google infrastructure




               Strong Security and Privacy
               Control access to your data



           Easy to Use
           Get started fast with Google & 3rd party tools
Google Storage Technical Details
 ● RESTful API
    ○ Verbs: GET, PUT, POST, HEAD, DELETE
    ○ Resources: identified by URI
    ○ Compatible with S3

 ● Buckets
    ○ Flat containers
 ● Objects
    ○ Any type
    ○ Size: 100 GB / object

 ● Access Control for Google Accounts
    ○ For individuals and groups
 ● Two Ways to Authenticate Requests
    ○ Sign request using access keys
    ○ Web browser login
Demo


● Tools:
   ○ GSUtil
   ○ GS Manager

● Upload / Download
Google Storage More Info




       http://code.google.com/apis/storage
Agenda

 ● PlayN Recap

 ● Google Cloud Tech Review
    ○ App Engine
    ○ Google Storage
    ○ ...
 ● Hands on with PlayN - Getting Started

 ● Deploying your game to the cloud

 ● Setting up an RPC mechanism
Requirements for getting started with PlayN

  ● Clone a copy of PlayN
     ○ git clone https://code.google.com/p/playn

  ● Core Requirements
     ○ Java 6 SDK
     ○ Apache Ant
     ○ Maven
     ○ App Engine SDK
     ○ Android SDK

  ● Requirements with Eclipse
     ○ Eclipse IDE Indigo 3.7 (Or earlier version w/ Maven)
     ○ Google Plugin for Eclipse
     ○ Android Plugin for Eclipse
Building/Installing PlayN

  ● After you've cloned a copy of PlayN
     ○ git clone https://code.google.com/p/playn

  ● And satisfied the core requirements, you can install via:
     ○ cd playn (directory where your copy is location)
     ○ mvn install (or 'ant install')

  ● Running 'showcase' sample app with Mvn
     ○ cd playn/sample/showcase/core
     ○ mvn compile exec:java

  ● Running 'showcase' sample app with Ant
     ○ cd playn/sample/showcase
     ○ ant run-java
Demo: How to get started w/ PlayN




          http://code.google.com/p/playn
Building a new project in PlayN

● From the command line:
   ○ mvn archetype:generate -DarchetypeGroupId=com.googlecode.playn
     -DarchetypeArtifactId=playn-archetype
   ○ ...

● From Eclipse
   ○ Select File → New → Other..., then select Maven →
     Maven Project in the dialog that pops up, then click
     Next.
           ■ Click Next again unless you wish to specify a custom workspace location.
           ■ Check Include snapshot archetypes in the dialog and then double click
             on the playn-archetype in the list of archetypes
   ○ ...
Demo: Building a new Game in PlayN
Agenda

 ● PlayN Recap

 ● Google Cloud Tech Review
    ○ App Engine
    ○ Google Storage
    ○ ...
 ● Hands on with PlayN - Getting Started

 ● Deploying your game to the cloud

 ● Setting up an RPC mechanism
Deploy your HTML project to the Cloud

  ● For Google App Engine Deployment, you can easily
    convert the project to an App Engine Project
Deploy your HTML project to the Cloud

  ● After converting your HTML project to an App Engine
    project you will have to do...

  ● Add a 'WEB-INF/lib/appengine-web.xml' file
     ○ Note: Click 'Quick Fix' in the Errors console of
       Eclipse

  ● Before deployment make sure your 'WEB-INF/lib' has
    the necessary runtime App Engine jar files.
Agenda

 ● PlayN Recap

 ● Google Cloud Tech Review
    ○ App Engine
    ○ Google Storage
    ○ ...
 ● Hands on with PlayN - Getting Started

 ● Deploying your game to the cloud

 ● Setting up an RPC mechanism
Setting up an RPC mechanism

  ● Building Your Server
     ○ PlayN comes with a preliminary Server example
       code that uses Jetty
         ■ Is not needed if deploying to App Engine
         ■ Instead, you can implement your own server by
           adding an HttpServlet to your project
            ■ Have it implement the doPost() method
            ■ Can map it to url: '/rpc' in web.xml

  ● Building your client code
     ○ If Cloud is your main deployment, you can use
       GWT's RequestBuilder
          ■ You can build your HTTP Post to send data to
            your server
Setting up an RPC mechanism
     ● Example: A client method to persist a score
private void submitScore(int score) {

    RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, "/rpc");
    rb.setHeader("Content-Type", "application/x-www-form-urlencoded");
    try {
      rb.sendRequest("score="+score, new RequestCallback() {
              public void onError(Request request, Throwable exception) {
                requestFailed(exception);
              }
              public void onResponseReceived(Request request, Response response) {
                log.info("Score sent and response received.");
              }
          });
    } catch (RequestException ex) {
      requestFailed(ex);
    }
}
Setting up an RPC mechanism
   ● Example: Server method to persist score sent from
     client
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException,
    IOException {
  resp.setContentType("text/plain");

  User user = UserServiceFactory.getUserService().getCurrentUser();
  String id = null;

  if (user == null){
    id = "Anonymous";
  } else {
    id = user.getNickname();
  }
  String score = req.getParameter("score");

  if (score != null){
    persistScore(score, id);
   }
 }
private void persistScore(String score, String userid) {...}
New! Using the RPCService Wizard
(As of version 2.4 of the Google Plugin for Eclipse)


Select the project containing any Persistent classes, and then...
File > New > Other > Google > RPC Service




   Generates CRUD stub code for all persistent classes
Demo: Introducing 'Cloud Warrior'

App Engine                       Google Storage
Datastore
                                       Game Assets
                                       (images/sounds)




  Game Scores
  Profile Data

                     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/
Announcements!
   Announcing the New PlayN Developer Site!




        http://developers.google.com/playn/
Announcements!

Join us at New Game!
Use coupon HTML5ROCKS for 15% off registration
Q&A
@cschalk
Thank You!
  @cschalk

More Related Content

What's hot

Building Translate on Glass
Building Translate on GlassBuilding Translate on Glass
Building Translate on GlassTrish Whetzel
 
Image archive, analysis & report generation with Google Cloud
Image archive, analysis & report generation with Google CloudImage archive, analysis & report generation with Google Cloud
Image archive, analysis & report generation with Google Cloudwesley chun
 
Serverless Computing with Python
Serverless Computing with PythonServerless Computing with Python
Serverless Computing with Pythonwesley chun
 
Introduction to Cloud Computing with Google Cloud
Introduction to Cloud Computing with Google CloudIntroduction to Cloud Computing with Google Cloud
Introduction to Cloud Computing with Google Cloudwesley chun
 
Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Pythonwesley chun
 
Easy path to machine learning (Spring 2021)
Easy path to machine learning (Spring 2021)Easy path to machine learning (Spring 2021)
Easy path to machine learning (Spring 2021)wesley chun
 
Run your code serverlessly on Google's open cloud
Run your code serverlessly on Google's open cloudRun your code serverlessly on Google's open cloud
Run your code serverlessly on Google's open cloudwesley chun
 
Powerful Google Cloud tools for your hack
Powerful Google Cloud tools for your hackPowerful Google Cloud tools for your hack
Powerful Google Cloud tools for your hackwesley chun
 
Introduction to serverless computing on Google Cloud
Introduction to serverless computing on Google CloudIntroduction to serverless computing on Google Cloud
Introduction to serverless computing on Google Cloudwesley chun
 
Easy path to machine learning (Spring 2020)
Easy path to machine learning (Spring 2020)Easy path to machine learning (Spring 2020)
Easy path to machine learning (Spring 2020)wesley chun
 
JCConf 2016 - Google Dataflow 小試
JCConf 2016 - Google Dataflow 小試JCConf 2016 - Google Dataflow 小試
JCConf 2016 - Google Dataflow 小試Simon Su
 
Google Cloud: Data Analysis and Machine Learningn Technologies
Google Cloud: Data Analysis and Machine Learningn Technologies Google Cloud: Data Analysis and Machine Learningn Technologies
Google Cloud: Data Analysis and Machine Learningn Technologies Andrés Leonardo Martinez Ortiz
 
Apache Beam and Google Cloud Dataflow - IDG - final
Apache Beam and Google Cloud Dataflow - IDG - finalApache Beam and Google Cloud Dataflow - IDG - final
Apache Beam and Google Cloud Dataflow - IDG - finalSub Szabolcs Feczak
 
Using Google (Cloud) APIs
Using Google (Cloud) APIsUsing Google (Cloud) APIs
Using Google (Cloud) APIswesley chun
 
Build with ALL of Google Cloud
Build with ALL of Google CloudBuild with ALL of Google Cloud
Build with ALL of Google Cloudwesley chun
 
Powerful Google Cloud tools for your hack (2020)
Powerful Google Cloud tools for your hack (2020)Powerful Google Cloud tools for your hack (2020)
Powerful Google Cloud tools for your hack (2020)wesley chun
 
Google compute engine - overview
Google compute engine - overviewGoogle compute engine - overview
Google compute engine - overviewCharles Fan
 

What's hot (20)

Building Translate on Glass
Building Translate on GlassBuilding Translate on Glass
Building Translate on Glass
 
Image archive, analysis & report generation with Google Cloud
Image archive, analysis & report generation with Google CloudImage archive, analysis & report generation with Google Cloud
Image archive, analysis & report generation with Google Cloud
 
Deep dive into serverless on Google Cloud
Deep dive into serverless on Google CloudDeep dive into serverless on Google Cloud
Deep dive into serverless on Google Cloud
 
Serverless Computing with Python
Serverless Computing with PythonServerless Computing with Python
Serverless Computing with Python
 
Introduction to Cloud Computing with Google Cloud
Introduction to Cloud Computing with Google CloudIntroduction to Cloud Computing with Google Cloud
Introduction to Cloud Computing with Google Cloud
 
Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Python
 
Cloud Spin - building a photo booth with the Google Cloud Platform
Cloud Spin - building a photo booth with the Google Cloud PlatformCloud Spin - building a photo booth with the Google Cloud Platform
Cloud Spin - building a photo booth with the Google Cloud Platform
 
Easy path to machine learning (Spring 2021)
Easy path to machine learning (Spring 2021)Easy path to machine learning (Spring 2021)
Easy path to machine learning (Spring 2021)
 
Supercharge your app with Cloud Functions for Firebase
Supercharge your app with Cloud Functions for FirebaseSupercharge your app with Cloud Functions for Firebase
Supercharge your app with Cloud Functions for Firebase
 
Run your code serverlessly on Google's open cloud
Run your code serverlessly on Google's open cloudRun your code serverlessly on Google's open cloud
Run your code serverlessly on Google's open cloud
 
Powerful Google Cloud tools for your hack
Powerful Google Cloud tools for your hackPowerful Google Cloud tools for your hack
Powerful Google Cloud tools for your hack
 
Introduction to serverless computing on Google Cloud
Introduction to serverless computing on Google CloudIntroduction to serverless computing on Google Cloud
Introduction to serverless computing on Google Cloud
 
Easy path to machine learning (Spring 2020)
Easy path to machine learning (Spring 2020)Easy path to machine learning (Spring 2020)
Easy path to machine learning (Spring 2020)
 
JCConf 2016 - Google Dataflow 小試
JCConf 2016 - Google Dataflow 小試JCConf 2016 - Google Dataflow 小試
JCConf 2016 - Google Dataflow 小試
 
Google Cloud: Data Analysis and Machine Learningn Technologies
Google Cloud: Data Analysis and Machine Learningn Technologies Google Cloud: Data Analysis and Machine Learningn Technologies
Google Cloud: Data Analysis and Machine Learningn Technologies
 
Apache Beam and Google Cloud Dataflow - IDG - final
Apache Beam and Google Cloud Dataflow - IDG - finalApache Beam and Google Cloud Dataflow - IDG - final
Apache Beam and Google Cloud Dataflow - IDG - final
 
Using Google (Cloud) APIs
Using Google (Cloud) APIsUsing Google (Cloud) APIs
Using Google (Cloud) APIs
 
Build with ALL of Google Cloud
Build with ALL of Google CloudBuild with ALL of Google Cloud
Build with ALL of Google Cloud
 
Powerful Google Cloud tools for your hack (2020)
Powerful Google Cloud tools for your hack (2020)Powerful Google Cloud tools for your hack (2020)
Powerful Google Cloud tools for your hack (2020)
 
Google compute engine - overview
Google compute engine - overviewGoogle compute engine - overview
Google compute engine - overview
 

Similar to Building Kick Ass Video Games for the Cloud

Accessing Google Cloud APIs
Accessing Google Cloud APIsAccessing Google Cloud APIs
Accessing Google Cloud APIswesley chun
 
Web App Prototypes with Google App Engine
Web App Prototypes with Google App EngineWeb App Prototypes with Google App Engine
Web App Prototypes with Google App EngineVlad Filippov
 
Mobile backends with Google Cloud Platform (MBLTDev'14)
Mobile backends with Google Cloud Platform (MBLTDev'14)Mobile backends with Google Cloud Platform (MBLTDev'14)
Mobile backends with Google Cloud Platform (MBLTDev'14)Natalia Efimtseva
 
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...e-Legion
 
Modern Web Applications Utilizing HTML5 (Dev Con TLV 06-2013)
Modern Web Applications Utilizing HTML5 (Dev Con TLV 06-2013)Modern Web Applications Utilizing HTML5 (Dev Con TLV 06-2013)
Modern Web Applications Utilizing HTML5 (Dev Con TLV 06-2013)Ido Green
 
Scale with a smile with Google Cloud Platform At DevConTLV (June 2014)
Scale with a smile with Google Cloud Platform At DevConTLV (June 2014)Scale with a smile with Google Cloud Platform At DevConTLV (June 2014)
Scale with a smile with Google Cloud Platform At DevConTLV (June 2014)Ido Green
 
Google Platform Overview (April 2014)
Google Platform Overview (April 2014)Google Platform Overview (April 2014)
Google Platform Overview (April 2014)Ido Green
 
Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Pythonwesley chun
 
Utilizing HTML5 APIs
Utilizing HTML5 APIsUtilizing HTML5 APIs
Utilizing HTML5 APIsIdo Green
 
Kubernetes Forum Seoul 2019: Re-architecting Data Platform with Kubernetes
Kubernetes Forum Seoul 2019: Re-architecting Data Platform with KubernetesKubernetes Forum Seoul 2019: Re-architecting Data Platform with Kubernetes
Kubernetes Forum Seoul 2019: Re-architecting Data Platform with KubernetesSeungYong Oh
 
Google's serverless journey: past to present
Google's serverless journey: past to presentGoogle's serverless journey: past to present
Google's serverless journey: past to presentwesley chun
 
Building Apps on Google Cloud Technologies
Building Apps on Google Cloud TechnologiesBuilding Apps on Google Cloud Technologies
Building Apps on Google Cloud TechnologiesChris Schalk
 
Powerful Google developer tools for immediate impact! (2023-24 A)
Powerful Google developer tools for immediate impact! (2023-24 A)Powerful Google developer tools for immediate impact! (2023-24 A)
Powerful Google developer tools for immediate impact! (2023-24 A)wesley chun
 
Introduction to Google's Cloud Technologies
Introduction to Google's Cloud TechnologiesIntroduction to Google's Cloud Technologies
Introduction to Google's Cloud TechnologiesChris Schalk
 
Intro to Google's Cloud Technologies
Intro to Google's Cloud TechnologiesIntro to Google's Cloud Technologies
Intro to Google's Cloud TechnologiesChris Schalk
 
Programming for non tech entrepreneurs
Programming for non tech entrepreneursProgramming for non tech entrepreneurs
Programming for non tech entrepreneursRodrigo Gil
 
Rapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWTRapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWTManuel Carrasco Moñino
 
Exploring Google (Cloud) APIs with Python & JavaScript
Exploring Google (Cloud) APIs with Python & JavaScriptExploring Google (Cloud) APIs with Python & JavaScript
Exploring Google (Cloud) APIs with Python & JavaScriptwesley chun
 
Serverless computing with Google Cloud
Serverless computing with Google CloudServerless computing with Google Cloud
Serverless computing with Google Cloudwesley chun
 
Quick Intro to Google Cloud Technologies
Quick Intro to Google Cloud TechnologiesQuick Intro to Google Cloud Technologies
Quick Intro to Google Cloud TechnologiesChris Schalk
 

Similar to Building Kick Ass Video Games for the Cloud (20)

Accessing Google Cloud APIs
Accessing Google Cloud APIsAccessing Google Cloud APIs
Accessing Google Cloud APIs
 
Web App Prototypes with Google App Engine
Web App Prototypes with Google App EngineWeb App Prototypes with Google App Engine
Web App Prototypes with Google App Engine
 
Mobile backends with Google Cloud Platform (MBLTDev'14)
Mobile backends with Google Cloud Platform (MBLTDev'14)Mobile backends with Google Cloud Platform (MBLTDev'14)
Mobile backends with Google Cloud Platform (MBLTDev'14)
 
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...
 
Modern Web Applications Utilizing HTML5 (Dev Con TLV 06-2013)
Modern Web Applications Utilizing HTML5 (Dev Con TLV 06-2013)Modern Web Applications Utilizing HTML5 (Dev Con TLV 06-2013)
Modern Web Applications Utilizing HTML5 (Dev Con TLV 06-2013)
 
Scale with a smile with Google Cloud Platform At DevConTLV (June 2014)
Scale with a smile with Google Cloud Platform At DevConTLV (June 2014)Scale with a smile with Google Cloud Platform At DevConTLV (June 2014)
Scale with a smile with Google Cloud Platform At DevConTLV (June 2014)
 
Google Platform Overview (April 2014)
Google Platform Overview (April 2014)Google Platform Overview (April 2014)
Google Platform Overview (April 2014)
 
Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Python
 
Utilizing HTML5 APIs
Utilizing HTML5 APIsUtilizing HTML5 APIs
Utilizing HTML5 APIs
 
Kubernetes Forum Seoul 2019: Re-architecting Data Platform with Kubernetes
Kubernetes Forum Seoul 2019: Re-architecting Data Platform with KubernetesKubernetes Forum Seoul 2019: Re-architecting Data Platform with Kubernetes
Kubernetes Forum Seoul 2019: Re-architecting Data Platform with Kubernetes
 
Google's serverless journey: past to present
Google's serverless journey: past to presentGoogle's serverless journey: past to present
Google's serverless journey: past to present
 
Building Apps on Google Cloud Technologies
Building Apps on Google Cloud TechnologiesBuilding Apps on Google Cloud Technologies
Building Apps on Google Cloud Technologies
 
Powerful Google developer tools for immediate impact! (2023-24 A)
Powerful Google developer tools for immediate impact! (2023-24 A)Powerful Google developer tools for immediate impact! (2023-24 A)
Powerful Google developer tools for immediate impact! (2023-24 A)
 
Introduction to Google's Cloud Technologies
Introduction to Google's Cloud TechnologiesIntroduction to Google's Cloud Technologies
Introduction to Google's Cloud Technologies
 
Intro to Google's Cloud Technologies
Intro to Google's Cloud TechnologiesIntro to Google's Cloud Technologies
Intro to Google's Cloud Technologies
 
Programming for non tech entrepreneurs
Programming for non tech entrepreneursProgramming for non tech entrepreneurs
Programming for non tech entrepreneurs
 
Rapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWTRapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWT
 
Exploring Google (Cloud) APIs with Python & JavaScript
Exploring Google (Cloud) APIs with Python & JavaScriptExploring Google (Cloud) APIs with Python & JavaScript
Exploring Google (Cloud) APIs with Python & JavaScript
 
Serverless computing with Google Cloud
Serverless computing with Google CloudServerless computing with Google Cloud
Serverless computing with Google Cloud
 
Quick Intro to Google Cloud Technologies
Quick Intro to Google Cloud TechnologiesQuick Intro to Google Cloud Technologies
Quick Intro to Google Cloud Technologies
 

More from Chris Schalk

Google App Engine's Latest Features
Google App Engine's Latest FeaturesGoogle App Engine's Latest Features
Google App Engine's Latest FeaturesChris Schalk
 
Google App Engine's Latest Features
Google App Engine's Latest FeaturesGoogle App Engine's Latest Features
Google App Engine's Latest FeaturesChris Schalk
 
Building Multi-platform Video Games for the Cloud
Building Multi-platform Video Games for the CloudBuilding Multi-platform Video Games for the Cloud
Building Multi-platform Video Games for the CloudChris Schalk
 
Building Enterprise Applications on Google Cloud Platform Cloud Computing Exp...
Building Enterprise Applications on Google Cloud Platform Cloud Computing Exp...Building Enterprise Applications on Google Cloud Platform Cloud Computing Exp...
Building Enterprise Applications on Google Cloud Platform Cloud Computing Exp...Chris Schalk
 
Introduction to Google's Cloud Technologies
Introduction to Google's Cloud TechnologiesIntroduction to Google's Cloud Technologies
Introduction to Google's Cloud TechnologiesChris Schalk
 
Javaedge 2010-cschalk
Javaedge 2010-cschalkJavaedge 2010-cschalk
Javaedge 2010-cschalkChris Schalk
 
Introduction to Google Cloud Platform Technologies
Introduction to Google Cloud Platform TechnologiesIntroduction to Google Cloud Platform Technologies
Introduction to Google Cloud Platform TechnologiesChris Schalk
 
Google Cloud Technologies Overview
Google Cloud Technologies OverviewGoogle Cloud Technologies Overview
Google Cloud Technologies OverviewChris Schalk
 
Introducing App Engine for Business
Introducing App Engine for BusinessIntroducing App Engine for Business
Introducing App Engine for BusinessChris Schalk
 
Introduction to Google Cloud platform technologies
Introduction to Google Cloud platform technologiesIntroduction to Google Cloud platform technologies
Introduction to Google Cloud platform technologiesChris Schalk
 
Google App Engine for Business 101
Google App Engine for Business 101Google App Engine for Business 101
Google App Engine for Business 101Chris Schalk
 
What's new in App Engine and intro to App Engine for Business
What's new in App Engine and intro to App Engine for BusinessWhat's new in App Engine and intro to App Engine for Business
What's new in App Engine and intro to App Engine for BusinessChris Schalk
 
Intro to new Google cloud technologies: Google Storage, Prediction API, BigQuery
Intro to new Google cloud technologies: Google Storage, Prediction API, BigQueryIntro to new Google cloud technologies: Google Storage, Prediction API, BigQuery
Intro to new Google cloud technologies: Google Storage, Prediction API, BigQueryChris Schalk
 
App Engine Presentation @ SFJUG Sep 2010
App Engine Presentation @ SFJUG Sep 2010App Engine Presentation @ SFJUG Sep 2010
App Engine Presentation @ SFJUG Sep 2010Chris Schalk
 
What is Google App Engine
What is Google App EngineWhat is Google App Engine
What is Google App EngineChris Schalk
 
App engine cloud_comp_expo_nyc
App engine cloud_comp_expo_nycApp engine cloud_comp_expo_nyc
App engine cloud_comp_expo_nycChris Schalk
 
App engine devfest_mexico_10
App engine devfest_mexico_10App engine devfest_mexico_10
App engine devfest_mexico_10Chris Schalk
 
App Engine Overview Cloud Futures Publish
App Engine Overview Cloud Futures PublishApp Engine Overview Cloud Futures Publish
App Engine Overview Cloud Futures PublishChris Schalk
 
App Engine Overview @ Google Hackathon SXSW 2010
App Engine Overview @ Google Hackathon SXSW 2010App Engine Overview @ Google Hackathon SXSW 2010
App Engine Overview @ Google Hackathon SXSW 2010Chris Schalk
 
Google App Engine and Social Apps
Google App Engine and Social AppsGoogle App Engine and Social Apps
Google App Engine and Social AppsChris Schalk
 

More from Chris Schalk (20)

Google App Engine's Latest Features
Google App Engine's Latest FeaturesGoogle App Engine's Latest Features
Google App Engine's Latest Features
 
Google App Engine's Latest Features
Google App Engine's Latest FeaturesGoogle App Engine's Latest Features
Google App Engine's Latest Features
 
Building Multi-platform Video Games for the Cloud
Building Multi-platform Video Games for the CloudBuilding Multi-platform Video Games for the Cloud
Building Multi-platform Video Games for the Cloud
 
Building Enterprise Applications on Google Cloud Platform Cloud Computing Exp...
Building Enterprise Applications on Google Cloud Platform Cloud Computing Exp...Building Enterprise Applications on Google Cloud Platform Cloud Computing Exp...
Building Enterprise Applications on Google Cloud Platform Cloud Computing Exp...
 
Introduction to Google's Cloud Technologies
Introduction to Google's Cloud TechnologiesIntroduction to Google's Cloud Technologies
Introduction to Google's Cloud Technologies
 
Javaedge 2010-cschalk
Javaedge 2010-cschalkJavaedge 2010-cschalk
Javaedge 2010-cschalk
 
Introduction to Google Cloud Platform Technologies
Introduction to Google Cloud Platform TechnologiesIntroduction to Google Cloud Platform Technologies
Introduction to Google Cloud Platform Technologies
 
Google Cloud Technologies Overview
Google Cloud Technologies OverviewGoogle Cloud Technologies Overview
Google Cloud Technologies Overview
 
Introducing App Engine for Business
Introducing App Engine for BusinessIntroducing App Engine for Business
Introducing App Engine for Business
 
Introduction to Google Cloud platform technologies
Introduction to Google Cloud platform technologiesIntroduction to Google Cloud platform technologies
Introduction to Google Cloud platform technologies
 
Google App Engine for Business 101
Google App Engine for Business 101Google App Engine for Business 101
Google App Engine for Business 101
 
What's new in App Engine and intro to App Engine for Business
What's new in App Engine and intro to App Engine for BusinessWhat's new in App Engine and intro to App Engine for Business
What's new in App Engine and intro to App Engine for Business
 
Intro to new Google cloud technologies: Google Storage, Prediction API, BigQuery
Intro to new Google cloud technologies: Google Storage, Prediction API, BigQueryIntro to new Google cloud technologies: Google Storage, Prediction API, BigQuery
Intro to new Google cloud technologies: Google Storage, Prediction API, BigQuery
 
App Engine Presentation @ SFJUG Sep 2010
App Engine Presentation @ SFJUG Sep 2010App Engine Presentation @ SFJUG Sep 2010
App Engine Presentation @ SFJUG Sep 2010
 
What is Google App Engine
What is Google App EngineWhat is Google App Engine
What is Google App Engine
 
App engine cloud_comp_expo_nyc
App engine cloud_comp_expo_nycApp engine cloud_comp_expo_nyc
App engine cloud_comp_expo_nyc
 
App engine devfest_mexico_10
App engine devfest_mexico_10App engine devfest_mexico_10
App engine devfest_mexico_10
 
App Engine Overview Cloud Futures Publish
App Engine Overview Cloud Futures PublishApp Engine Overview Cloud Futures Publish
App Engine Overview Cloud Futures Publish
 
App Engine Overview @ Google Hackathon SXSW 2010
App Engine Overview @ Google Hackathon SXSW 2010App Engine Overview @ Google Hackathon SXSW 2010
App Engine Overview @ Google Hackathon SXSW 2010
 
Google App Engine and Social Apps
Google App Engine and Social AppsGoogle App Engine and Social Apps
Google App Engine and Social Apps
 

Recently uploaded

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 

Recently uploaded (20)

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 

Building Kick Ass Video Games for the Cloud

  • 1. Christian Schalk Google Developer Advocate How to Build Kick Ass Games for the Cloud GDC Online 2011 Austin, Texas - October 10, 2011
  • 2. About the Speaker Christian Schalk Day Job ● Developer Advocate for Google's Cloud Technology ○ App Engine, Google Storage, Prediction API, BigQuery ... ● Mostly Server-Side Java Background ○ "JavaServer Faces: The Complete Reference" Co-Author ● Haven't developed video games since the Commodore-64! Yes, I'm old school ;-)
  • 3. Agenda ● PlayN Recap ● Google Cloud Tech Review ○ App Engine ○ Google Storage ○ ... ● Hands on with PlayN - Getting Started ● Deploying your game to the cloud ● Setting up an RPC mechanism
  • 5. Agenda ● PlayN Recap ● Google Cloud Tech Review ○ App Engine ○ Google Storage ○ ... ● Hands on with PlayN - Getting Started ● Deploying your game to the cloud ● Setting up an RPC mechanism
  • 6. Reviewing PlayN! Formerly known as "ForPlay" ● An API for building cross-platform games ● Core game code can be platform agnostic ● Develop games in Java ○ Familiar language/toolset ● Leverages Google Web Toolkit ○ Compiles to JS/HTML5, (among other platforms) ● Free and Open Source (alpha) ○ http://code.google.com/p/playn
  • 7. Introducing PlayN! A GWT abstraction layer for games PlayN API Implementations for Java, HTML5(GWT/JS), Android, Flash
  • 8. Components of PlayN! Implements core.Game PlayN.* Fully generic gaming components. Core game logic is fully platform independent!
  • 9. 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());
  • 10. 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
  • 11. 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
  • 12. 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
  • 13. Agenda ● PlayN Recap ● Google Cloud Tech Review ○ App Engine ○ Google Storage ○ ... ● Hands on with PlayN - Getting Started ● Deploying your game to the cloud ● Setting up an RPC mechanism
  • 14. Google App Engine Build your Apps on Google's cloud
  • 15. Introducing App Engine Build and run your web apps on Google’s Cloud Infrastructure ● Easy to build ● Easy to maintain ● Easy to scale Focus on building your app, let us wear the pagers!
  • 16. Cloud Development in a Box ● Development SDK ● Local development tools ○ DevServer, admin ○ Eclipse plugin ● Language runtimes ● Specialized API services ● Cloud-based dashboard ● Automatic scaling ○ Built-in fault tolerance ○ Automated load balancing ● Continuously evolving...
  • 17. Language Runtime Options GO Java Experimental
  • 18. Specialized APIs/Services for the Sandbox Memcache Datastore URL Fetch Mail XMPP Task Queue Images Blobstore User Service
  • 19. App Engine Evolution Through The Years 2008 2009 2010 2011 App Engine Batch write/read Java Task Queues Blobstore Multitenancy Hi-Replication Launch Https DB Import XMPP Appstats Instance Console Datastore Python Status- cron incoming email cursors Always On Channel API Datastore Dashboard Mapper hi-perf imag Files API Memcache 10 min tasks Remote API logs export Prosp Search
  • 20. App Engine - By the Numbers 100,000+ Active developers per month 200,000+ Active apps per week
  • 21. App Engine - By the Numbers 1,500,000,000+ Page views per day
  • 22. Gaming - Share data Mobile or Web!
  • 23. App Engine More Info http://code.google.com/appengine
  • 24. Google Storage for Developers Store your data in Google's cloud
  • 25. What Is Google Storage? ● Store your data in Google's cloud ○ any format, any amount, any time ● You control access to your data ○ private, shared, or public ● Access via Google APIs or 3rd party tools/libraries
  • 26. Sample Use Cases Static content hosting e.g. static html, images, music, video Backup and recovery e.g. personal data, business records Sharing e.g. share data with your customers Data storage for applications e.g. used as storage backend for Android, AppEngine, Cloud based apps Storage for Computation e.g. BigQuery, Prediction API
  • 27. Google Storage Benefits High Performance and Scalability Backed by Google infrastructure Strong Security and Privacy Control access to your data Easy to Use Get started fast with Google & 3rd party tools
  • 28. Google Storage Technical Details ● RESTful API ○ Verbs: GET, PUT, POST, HEAD, DELETE ○ Resources: identified by URI ○ Compatible with S3 ● Buckets ○ Flat containers ● Objects ○ Any type ○ Size: 100 GB / object ● Access Control for Google Accounts ○ For individuals and groups ● Two Ways to Authenticate Requests ○ Sign request using access keys ○ Web browser login
  • 29. Demo ● Tools: ○ GSUtil ○ GS Manager ● Upload / Download
  • 30. Google Storage More Info http://code.google.com/apis/storage
  • 31. Agenda ● PlayN Recap ● Google Cloud Tech Review ○ App Engine ○ Google Storage ○ ... ● Hands on with PlayN - Getting Started ● Deploying your game to the cloud ● Setting up an RPC mechanism
  • 32. Requirements for getting started with PlayN ● Clone a copy of PlayN ○ git clone https://code.google.com/p/playn ● Core Requirements ○ Java 6 SDK ○ Apache Ant ○ Maven ○ App Engine SDK ○ Android SDK ● Requirements with Eclipse ○ Eclipse IDE Indigo 3.7 (Or earlier version w/ Maven) ○ Google Plugin for Eclipse ○ Android Plugin for Eclipse
  • 33. Building/Installing PlayN ● After you've cloned a copy of PlayN ○ git clone https://code.google.com/p/playn ● And satisfied the core requirements, you can install via: ○ cd playn (directory where your copy is location) ○ mvn install (or 'ant install') ● Running 'showcase' sample app with Mvn ○ cd playn/sample/showcase/core ○ mvn compile exec:java ● Running 'showcase' sample app with Ant ○ cd playn/sample/showcase ○ ant run-java
  • 34. Demo: How to get started w/ PlayN http://code.google.com/p/playn
  • 35. Building a new project in PlayN ● From the command line: ○ mvn archetype:generate -DarchetypeGroupId=com.googlecode.playn -DarchetypeArtifactId=playn-archetype ○ ... ● From Eclipse ○ Select File → New → Other..., then select Maven → Maven Project in the dialog that pops up, then click Next. ■ Click Next again unless you wish to specify a custom workspace location. ■ Check Include snapshot archetypes in the dialog and then double click on the playn-archetype in the list of archetypes ○ ...
  • 36. Demo: Building a new Game in PlayN
  • 37. Agenda ● PlayN Recap ● Google Cloud Tech Review ○ App Engine ○ Google Storage ○ ... ● Hands on with PlayN - Getting Started ● Deploying your game to the cloud ● Setting up an RPC mechanism
  • 38. Deploy your HTML project to the Cloud ● For Google App Engine Deployment, you can easily convert the project to an App Engine Project
  • 39. Deploy your HTML project to the Cloud ● After converting your HTML project to an App Engine project you will have to do... ● Add a 'WEB-INF/lib/appengine-web.xml' file ○ Note: Click 'Quick Fix' in the Errors console of Eclipse ● Before deployment make sure your 'WEB-INF/lib' has the necessary runtime App Engine jar files.
  • 40. Agenda ● PlayN Recap ● Google Cloud Tech Review ○ App Engine ○ Google Storage ○ ... ● Hands on with PlayN - Getting Started ● Deploying your game to the cloud ● Setting up an RPC mechanism
  • 41. Setting up an RPC mechanism ● Building Your Server ○ PlayN comes with a preliminary Server example code that uses Jetty ■ Is not needed if deploying to App Engine ■ Instead, you can implement your own server by adding an HttpServlet to your project ■ Have it implement the doPost() method ■ Can map it to url: '/rpc' in web.xml ● Building your client code ○ If Cloud is your main deployment, you can use GWT's RequestBuilder ■ You can build your HTTP Post to send data to your server
  • 42. Setting up an RPC mechanism ● Example: A client method to persist a score private void submitScore(int score) { RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, "/rpc"); rb.setHeader("Content-Type", "application/x-www-form-urlencoded"); try { rb.sendRequest("score="+score, new RequestCallback() { public void onError(Request request, Throwable exception) { requestFailed(exception); } public void onResponseReceived(Request request, Response response) { log.info("Score sent and response received."); } }); } catch (RequestException ex) { requestFailed(ex); } }
  • 43. Setting up an RPC mechanism ● Example: Server method to persist score sent from client protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/plain"); User user = UserServiceFactory.getUserService().getCurrentUser(); String id = null; if (user == null){ id = "Anonymous"; } else { id = user.getNickname(); } String score = req.getParameter("score"); if (score != null){ persistScore(score, id); } } private void persistScore(String score, String userid) {...}
  • 44. New! Using the RPCService Wizard (As of version 2.4 of the Google Plugin for Eclipse) Select the project containing any Persistent classes, and then... File > New > Other > Google > RPC Service Generates CRUD stub code for all persistent classes
  • 45. Demo: Introducing 'Cloud Warrior' App Engine Google Storage Datastore Game Assets (images/sounds) Game Scores Profile Data Game Play (PlayN)
  • 46. 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/
  • 47. Announcements! Announcing the New PlayN Developer Site! http://developers.google.com/playn/
  • 48. Announcements! Join us at New Game! Use coupon HTML5ROCKS for 15% off registration
  • 50. Thank You! @cschalk