ngCore

Motohiro Takayama
Motohiro TakayamaIndividual at Home
ngCore
  @mootoh
Showcase
ngCore
ngCore
ngCore
ngCore
ngCore
ngCore
Me
http://         /mootoh




JTPA SVC 2009
ngCore
Mobile



Social    Game
Mobile




   http://www.flickr.com/photos/mkuma443/4731933259/


                                                      http://www.flickr.com/photos/marklincoln/5255361533/
Mobile




         http://blog.nielsen.com/nielsenwire/consumer/smartphones-to-overtake-feature-phones-in-u-s-by-2011/

                                                 March 26, 2010
Social
Social   Mobile
Game




       http://www.flickr.com/photos/nchill4x4/5560435682/
Game                         Mobile




       http://www.flickr.com/photos/nchill4x4/5560435682/
Mobile   Social   Game
Mobile



Social    Game
ngCore
Cross
         Platform




Performance    Productivity
Platforms




            Objective-C   Java
Platforms




            Objective-C   Java
Platforms




            Objective-C       Java

                      C/C++
Platforms




            Objective-C       Java

                      C/C++
                 Javascript + HTML
Performance   Productivity




C/C++                      (^o^)

JS + HTML       ☓
Performance   Productivity




C/C++                        (^o^)

JS + HTML         ☓

JS + Native
ngCore
• Write game logic in JS
• Run across multiple platforms
• Optimized Native modules
• Rapid development iteration
ngCore
Developer’s
   View
Development
       Process
JS




        httpd
Development
         Process
 JS




          httpd




Edit
Development
         Process
 JS




           httpd




Edit      reload
Development
         Process
 JS




           httpd




Edit      reload   Test
Development
         Process
 JS




           httpd




Edit      reload   Test
Demo
 •   Write game logic in JS

 •   Run across multiple platforms

 •   Optimized Native modules

 •   Rapid development iteration
API
• Audio              • Social
• Bank               • Storage
• Device sensors     • UI
• 2D Graphics
• Networking
• Physics
http://developer.mobage.com
Internal
Architecture
      JS game code

    JS ngCore module
                               v8
          JS Engine            JSC

                               C++
               Native module   Objective-C
                               Java
     Native Runtime            ActionScript


Android       iOS      Flash
Game Engine

  for(;;) {
     input();
     update();
  }
RunLoop
JS Engine                     Native Runtime
             command string
RunLoop
JS Engine                     Native Runtime
             command string



                                       parse


                                  Module
RunLoop
JS Engine                     Native Runtime
             command string



                                       parse


                                  Module

                                       exec
RunLoop
JS Engine                     Native Runtime
             command string



                                       parse


                                  Module

                                       exec
RunLoop
JS Engine                     Native Runtime
             command string



                                       parse


                                  Module

                eval                   exec
RunLoop
JS Engine                     Native Runtime
             command string



                                       parse


Module                            Module


    parse       eval                   exec
RunLoop
JS Engine                     Native Runtime
             command string



    exec                               parse


Module                            Module


    parse       eval                   exec
RunLoop
JS Engine                     Native Runtime
             command string



    exec                               parse
             return
Module                            Module


    parse       eval                   exec
RunLoop
JS Engine                     Native Runtime
             command string



    exec                               parse
             return
Module                            Module


    parse       eval                   exec
Command

 var label = new GL2.Text();

 label.setSize(150, height);




      NGCore/Client/GL2/Text.js
Command
     
 var label = new GL2.Text();
     
 label.setSize(150, height);

Module → id




              NGCore/Client/GL2/Text.js
Command
      
 var label = new GL2.Text();
      
 label.setSize(150, height);

Module → id
Instance → id




                NGCore/Client/GL2/Text.js
Command
      
 var label = new GL2.Text();
      
 label.setSize(150, height);

Module → id
Instance → id
Method → id




                NGCore/Client/GL2/Text.js
Command
        
 var label = new GL2.Text();
        
 label.setSize(150, height);

Module → id
Instance → id
Method → id
Args:             eval

  Primitive → String
  Instance → id
                  NGCore/Client/GL2/Text.js
Command
        
 var label = new GL2.Text();
        
 label.setSize(150, height);

Module → id
Instance → id                        String
                                       “311,1,3,150,100”
Method → id
Args:             eval

  Primitive → String
  Instance → id
                  NGCore/Client/GL2/Text.js
Command
        
 var label = new GL2.Text();
        
 label.setSize(150, height);

Module → id
Instance → id                        String
                                       “311,1,3,150,100”
Method → id
Args:             eval

  Primitive → String
                             Marshal.dump
  Instance → id
                  NGCore/Client/GL2/Text.js
Implement a
                     Module
              IDL in JS                    gen stub
{
    class: “Text”,                         .js
    namespace: “GL2”,
    methods: {
     {
       sig: “void setText(string text)”,   .cpp / .h
       js -> native
     }
}                                          .as
Upcoming...

• More Interactive Development
• Profiler, Debugger
• Graphical Editor
• Social
Discussion
Social
Game
ngCore
ngCore
ngCore
ngCore
http://www.flickr.com/photos/canadianveggie/4104506343/   http://www.flickr.com/photos/gullevek/3368785185/
Social Game

•
•
•$
•     ?
Game
Engines
JS/HTML5

•                 ?

•
• JS engine, device   spec


•
Performance

                Native


              JS + Native



              JS + HTML
•
• Performance x Productivity
Hot topics
Why
ngCore?
Existing Global
 Social Graph

   ngCore

                  $
•
Conclude
Mobile




           Social              Game




                     Cross




ngCore
                    Platform




         Performance     Productivity
1 of 77

More Related Content

What's hot(20)

Django for mobile applicationsDjango for mobile applications
Django for mobile applications
Hassan Abid8.9K views
React Native in ProductionReact Native in Production
React Native in Production
Seokjun Kim1.4K views
Node.js 0.8 featuresNode.js 0.8 features
Node.js 0.8 features
Nicholas McClay1.4K views
Java/Spring과 Node.js의공존Java/Spring과 Node.js의공존
Java/Spring과 Node.js의공존
동수 장28.9K views
The SPDY ProtocolThe SPDY Protocol
The SPDY Protocol
Fabian Lange13.4K views
Node.js ExplainedNode.js Explained
Node.js Explained
Jeff Kunkle3.1K views
Building servers with Node.jsBuilding servers with Node.js
Building servers with Node.js
ConFoo12.2K views
All aboard the NodeJS ExpressAll aboard the NodeJS Express
All aboard the NodeJS Express
David Boyer11.3K views
CoffeeScript - TechTalk 21/10/2013CoffeeScript - TechTalk 21/10/2013
CoffeeScript - TechTalk 21/10/2013
Spyros Ioakeimidis723 views
Jet presentationJet presentation
Jet presentation
Peter Sellars345 views
GWT Extreme!GWT Extreme!
GWT Extreme!
cromwellian2.5K views
Writing robust Node.js applicationsWriting robust Node.js applications
Writing robust Node.js applications
Tom Croucher15.6K views
Express node jsExpress node js
Express node js
Yashprit Singh2.5K views
At Scale With StyleAt Scale With Style
At Scale With Style
Martin Rehfeld1.7K views

Similar to ngCore(20)

Everything as a codeEverything as a code
Everything as a code
Aleksandr Tarasov1.2K views
Packing for the Web with WebpackPacking for the Web with Webpack
Packing for the Web with Webpack
Thiago Temple834 views
Smoothing Your Java with DSLsSmoothing Your Java with DSLs
Smoothing Your Java with DSLs
intelliyole1.1K views
NashornNashorn
Nashorn
Rory Preddy441 views
TestUploadTestUpload
TestUpload
ZarksaDS405 views
Jwis2011 ruo andoJwis2011 ruo ando
Jwis2011 ruo ando
Ruo Ando398 views
Js tacktalk team dev js testing performanceJs tacktalk team dev js testing performance
Js tacktalk team dev js testing performance
Артем Захарченко626 views
Persistent Session StoragePersistent Session Storage
Persistent Session Storage
WO Community803 views
JavaScript Growing UpJavaScript Growing Up
JavaScript Growing Up
David Padbury14.1K views
Java 7 PreviewJava 7 Preview
Java 7 Preview
Alex Miller2.8K views
Oscon2007 WindmillOscon2007 Windmill
Oscon2007 Windmill
oscon2007277 views
GQuery a jQuery clone for Gwt, RivieraDev 2011GQuery a jQuery clone for Gwt, RivieraDev 2011
GQuery a jQuery clone for Gwt, RivieraDev 2011
Manuel Carrasco Moñino6.5K views
soft-shake.ch - Hands on Node.jssoft-shake.ch - Hands on Node.js
soft-shake.ch - Hands on Node.js
soft-shake.ch2.3K views
Huge web apps web expo 2013Huge web apps web expo 2013
Huge web apps web expo 2013
Daniel Steigerwald2.1K views
Java scriptforjavadev part2aJava scriptforjavadev part2a
Java scriptforjavadev part2a
Makarand Bhatambarekar645 views
Angular 2 for Java DevelopersAngular 2 for Java Developers
Angular 2 for Java Developers
Yakov Fain25.9K views

More from Motohiro Takayama

RurimaphoneRurimaphone
RurimaphoneMotohiro Takayama
905 views21 slides
Vim M #1Vim M #1
Vim M #1Motohiro Takayama
872 views25 slides
RubigraphRubigraph
RubigraphMotohiro Takayama
670 views10 slides

More from Motohiro Takayama(7)

近未来的並列 LL近未来的並列 LL
近未来的並列 LL
Motohiro Takayama3K views
並カン (CM カット版)並カン (CM カット版)
並カン (CM カット版)
Motohiro Takayama850 views
RurimaphoneRurimaphone
Rurimaphone
Motohiro Takayama905 views
Vim M #1Vim M #1
Vim M #1
Motohiro Takayama872 views
Ruby Kaigi 2008 LTRuby Kaigi 2008 LT
Ruby Kaigi 2008 LT
Motohiro Takayama4.1K views
RubigraphRubigraph
Rubigraph
Motohiro Takayama670 views
Why You Should be a RubiKaigi StaffWhy You Should be a RubiKaigi Staff
Why You Should be a RubiKaigi Staff
Motohiro Takayama590 views

Recently uploaded(20)

Liqid: Composable CXL PreviewLiqid: Composable CXL Preview
Liqid: Composable CXL Preview
CXL Forum118 views
METHOD AND SYSTEM FOR PREDICTING OPTIMAL LOAD FOR WHICH THE YIELD IS MAXIMUM ...METHOD AND SYSTEM FOR PREDICTING OPTIMAL LOAD FOR WHICH THE YIELD IS MAXIMUM ...
METHOD AND SYSTEM FOR PREDICTING OPTIMAL LOAD FOR WHICH THE YIELD IS MAXIMUM ...
Prity Khastgir IPR Strategic India Patent Attorney Amplify Innovation23 views
Green Leaf Consulting: Capabilities DeckGreen Leaf Consulting: Capabilities Deck
Green Leaf Consulting: Capabilities Deck
GreenLeafConsulting170 views
The Research Portal of Catalonia: Growing more (information) & more (services)The Research Portal of Catalonia: Growing more (information) & more (services)
The Research Portal of Catalonia: Growing more (information) & more (services)
CSUC - Consorci de Serveis Universitaris de Catalunya51 views
Java Platform Approach 1.0 - Picnic MeetupJava Platform Approach 1.0 - Picnic Meetup
Java Platform Approach 1.0 - Picnic Meetup
Rick Ossendrijver23 views

ngCore