Pender Android for Phonegap Cordova

  • lorinbeer Sorry I am coming into this late, what platforms are supported, any issues with Windows 8/Windows Phone 8 apps?

  • lorinbeer Sorry I am coming into this late, what platforms are supported, any issues with Windows 8/Windows Phone 8 apps?

    no worries, never too late!

    Windows8 Phone apps are not currently on our roadmap. They could be added, but the underlying tech would be different. If interest grows, we can certainly explore Windows Phone 8 Pender!

  • lorinbeer Wow! I just got your email. Sorry Iv been away the last couple of days I was in Chicago on business. I cant believe I missed all of this.

    I'm glad to see your surgery went well from looking at that picture it looks like you had neck surgery. ouch!

    From reading through all the posts it looks like we have to build this manually? Are you planning on adding some native windows build tools?

    The reason I ask this is because most of the Construct 2 users here are non programmers, and might find the process a little bit overwhelming. I don't know if you have had a chance to take a look at Construct 2 yet but Ashley has built it so that non programmers can build games by only using actions, and events.

    But once I get my head around the process, and successfully build a game with it. Maybe I or ArcadEd could make a dumbed down tutorial with pictures of the whole process. lol

    speaking of which?

    ArcadEd Since you have already been through this could you dumb down a few things for me <img src="smileys/smiley36.gif" border="0" align="middle" />

    For the first few steps are you using Git Bash for your command prompt? If so did you use Git Bash for executing all the commands or did you use the android sdk/tools command prompt for some things? I haven't tried this yet, and I am a little confused after reading through the manual build process on what you used for each step.

    And by the way thank you for doing all of this in public. I know this will help every one to understand the process better. Especially those that are to shy to post.

    Ashley

    Hey Ashley!

    I wouldn't expect Construct 2 to run in Pender in it's entirety. I have some experience embedding existing projects in Pender, including work for Zynga (not public unfortunately) and Bonsai.js from uxebu.

    Two easy ways are:

    1. Construct2Shim.js: which would redirects canvas calls through a messaging api to Pender, not as optimized as a full renderer running in Pender, but tests still indicate a massive jump in framerate and rendering performance. Easy to implement, with no change to ConstructJS, just a shim to be loaded in the WebView

    2. Construct2Pender.js: which would define a tiny rendering engine using the graphics calls Construct2 expects to exist in the WebView. Instead of calling a canvas in the main Construct2 runtime, we would call Pender through the bridge, using an abbreviated syntax which would update the rendering engine.

    Note that Pender can include any functionality that the device supports, exposed under any api we want. The Pender roadmap includes support for Web Audio and WebGL!

    To echo your points, the DOM is most certainly an advantage when it comes to layout and the breadth of api's available. However, it kills rendering speed even when hardware acceleration is implemented in the browser. Decoupling the rendering engine is not only good architecture, but it allows a paper thin layer between the js and the native graphics calls, really bridging the gap between js graphics and native graphics.

    One of the use cases of Pender is to provide embedded canvases in a Cordova/PhoneGap project, using the Pender runtime as a rendering engine for fast canvas, and not as a replacement for all that HTML5 offers.

    Ashley What do you think?

    For myself an open source Accelerated Canvas solution for PhoneGap has been highly anticipated. But for all of the Ouya developers this sounds like the only solution available right now.

    Is there any chance this could be officially supported?

    The reason I ask is CocoonJS is DOM-less, and I was just hoping some kind of exporter similar to CocoonJS's could be easily integrated into Construct 2 without to many problems. This is just more of a hopeful request than anything <img src="smileys/smiley1.gif" border="0" align="middle" />

  • I just used windows command prompt from the droid sdk tools directory.

    I will try to dumb it down a bit. I was waiting to see what Lorin was going to pull out in the next day or so. He said he was going to work on a windows script and a jar to just include in eclipse.

  • Wink

    ArcadEd

    I develop in unix environments: linux distros and osx. So terminal/bash are what I use for all the commands shown. Cygwin might tie you over, but the real solution is a windows version of the build tool. This will take a little while, as I have other duties related to phonegap/cordova

    Early this morning, I uploaded a precompiled Pender.jar file to the bitbucket downloads section:

    bitbucket.org/lorinbeer/pender/downloads

    1. Drop the Pender jar AND the rhino jar into your app's 'libs/' folder

    2. right click on jars in eclipse and choose "add to build path"

    3. use something like what I gave ArcadEd for the main activity

    4. copy in the contents of the assets directory from the root of the git repo to the assets directory of the eclipse project

    5. Run it!

    After that, you should be able to play around with the penderdemo.js file to get different render results, specify different art resources, etc

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • Ok, a windows version of the build tool should make the build process as easy as 1,2,3.   <img src="smileys/smiley4.gif" border="0" align="middle" />

    In the meantime I will give your precompiled Pender.jar file, and instructions a try.

    Thanks again for all your hard work   <img src="smileys/smiley1.gif" border="0" align="middle" />

  • If I have the time in the next week I could easily write a gui based solution in .net that simplifies the process.

  • I've barely looked into Pender, just gandered through some of the files a few weeks ago. However I have a few questions.

    1. Pender is mentioned to support PhoneGap. Does this mean that Pender can be independent of PhoneGap? Can I just use Pender files to run C2 game.

    2. Would it be difficult to implement the Ouya DevKit controller api and IAP. I'm working on an Ouya game and want to make the most minimal effort in regards to persona programming to get my first game out there.

    3. Is there enough to get C2 going now?

    4. Why is it called Pender?

    That would be fantastic. I dislike dealing with command line these days. i've gotten lazy :P

  • If I have the time in the next week I could easily write a gui based solution in .net that simplifies the process.

    I think that's a great idea, ArcadEd! Once you have an executable, I would accept it into the github repo or the static downloads. That would make you an official Pender contributor!

    I can write the backend in a windows script that your gui can hook into.

  • I've barely looked into Pender, just gandered through some of the files a few weeks ago. However I have a few questions.

    1. Pender is mentioned to support PhoneGap. Does this mean that Pender can be independent of PhoneGap? Can I just use Pender files to run C2 game.

    2. Would it be difficult to implement the Ouya DevKit controller api and IAP. I'm working on an Ouya game and want to make the most minimal effort in regards to persona programming to get my first game out there.

    3. Is there enough to get C2 going now?

    4. Why is it called Pender?

    That would be fantastic. I dislike dealing with command line these days. i've gotten lazy :P

    1. Yes, Pender operates as an Android Library. Pender can hook into PhoneGap/Cordova through a plugin, or run all on it's own

    2. This is definitely something we should look at, and no, I do not think it would be difficult at all. Exposing new API's to the javascript environment on Pender is surprisingly easy. I haven't tested Pender on the Ouya environment, but this has been added to our roadmap!

    3. I'm a committer on the PhoneGap/Cordova open source project as well as the creator/maintainer of Pender. Unfortunately, it's going to be a few days before I can look seriously into C2 support. I can write a shim next week to test my ideas. That might be enough to get Ashley interested if it's successful

    4. The origins of Pender trace back to a company called Nitobi, located in Vancouver BC. We were acquired by Adobe Systems in 2011.

    --edit-- sorry, still can't post links!

    maps.google.com/maps

    If you zoom out of Street view, a few blocks up, you'll see Cordova Street, which is the namesake of the Cordova project, the open source backend of PhoneGap.

  • To echo your points, the DOM is most certainly an advantage when it comes to layout and the breadth of api's available. However, it kills rendering speed even when hardware acceleration is implemented in the browser.

    I disagree! Some of our best performance results on mobile are using Chrome for Android with WebGL enabled (see this blog post). Basically, although our engine uses lots of browser-level APIs, we don't ever really touch the DOM per-frame. So we don't get any perf hit from DOM manipulation or re-flow. And browsers, especially Chrome, are extremely efficient under these circumstances.

    In fact, it is very difficult for DOM-less engines to match the performance of Chrome with WebGL support: unless you re-invent their multi-threaded renderer model which works with WebGL, have a highly optimised pipeline such as being able to read typed arrays from the javascript engine without copying or converting them, and so on, it's likely Chrome will still beat the DOM-less engine performance-wise. Unless you re-invent loads of browser features, Chrome will still beat the DOM-less engine feature-wise. Why re-invent the wheel when you can just use the Chrome browser engine? This is why I'm convinced the future of HTML5 game wrappers on mobile is the Chromium mobile ports.

  • Thanks. Depending on what technologies were available when the game i'm working was done. I was either going to look at GameClosure and work with there Barista layer to add the controller/IAP. However, working directly with source will probably be easier.

    I kind of had a inkling that Pender was related to downtown Vancouver. With Pender and Cordova running parallel through downtown core. The naming convention seemed strange. I also had no idea that PhoneGap had it's early starting point at home :P Love seeing local developers :P

    Here is another question. Canvas has a limited fillrate capabilities. So overdrawing over the same place wastes fillrate. OpenGl has better rendering methods and overall better performance. So why is that most developers who are building these JS/WEB bridges are focusing on Canvas rather than focusing on creating a OpenGL layer shim bridge instead. is it really that more difficult to overwrite the Canvas2D with a replacement OGL/WebGL layer that has all the same functions as Canvas2D?

  • This is why I'm convinced the future of HTML5 game wrappers on mobile is the Chromium mobile ports.

    Yet, Chrome is the not the default browser and all the wrappers use Android Browser UIWebView. They don't use Chrome at all so far. So no matter what results Chrome might give the wrapper won't have access to Chrome canvas. I've heard Chrome is in the pipeline to replace Android Browser, but that was back in early 2012.

  • jayderyu - I don't mean that - Chromium is open source, so you could literally take the code and use it as the engine for a native app, and it would run as well as in the Chrome browser, without using UIWebView, and without needing any other browser installed.

  • jayderyu - I don't mean that - Chromium is open source, so you could literally take the code and use it as the engine for a native app, and it would run as well as in the Chrome browser, without using UIWebView, and without needing any other browser installed.

    damnd, that explains soooooooooo much as to why your constantly talking about using Chromium. Lol, i'm so embarrased :P

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)