Bottom Line: Construct 2 and the Ouya

  • Ugh...this is seriously discouraging, considering I was really aiming for the system and now there's no way of me exporting to it currently. I thought that since it could export to android, it'd be a no brainer, but this is a real mood killer :/

  • I'm following up on this as I'm interested on Ouya development as well :)

    Ok, as i'm sure some of you know there was a thread called "The sad Truth of C2" ignore the fact that it's more about HTML5. I did some follow up testing to increase performance. i found some fantastic success to bump the starting FPS up. You will need to becareful from there that you don't overload the pixel push rate. Going over this will surely do a performance hit.

    ok. here is what to do

    as your making Ouya games I suggest sticking to 720p. you could do 1080p, but I don't suggest it. if you NEED more performance go down as low as 480p

    * viewport to 1280x720

    * create your game on this viewport.

    * test your games at 1280x???(whaterever your available screen width is on your browser testing hardware.)

    * set your scale to "letterbox scale integer"

    * create the rest of your game

    doing this method I was able to easily animate 15 objects on my screen at 50fps on my Tegra2 android in the Android browser. This is up from 10-15fps.

    however this method also means your game is not going to be as easily portable to a multitude of devices. You will need to carefully weigh in game at different resolutions. if any resolution becomes too much you will probably have to make all the changes manually.

    Also on a development note. When i went from testing program to using this in my game. i needed to go about reducing large sprites and objects. It wasn't immediate. Once I tinkered with various sizes on the larger objects my performance jumped a lot. I don't suggest making TONS objects on the sreen. instead use your objects more wisely.

    if you need a lot of small objects. blend them into the background.

    One theory i've been thinking to allow for more free form level construction's while having lot's of details. Would be to use rojohounds canvas plugin.

    Create an entire empty background objects of just canvas 512x512, then use a level loader engine to paste the sprites onto the canvas background. use an invisible version over top. and when picking up or doing something advance with the environment. Just re render that one tile.

    That way you can minimize re rendering and probably get away with just 20 active objects at one time..... I think this needs to made into a plugin :D

    yes. I've been asking Ludei for Ouya IAP, Controller and to just work for here and there. However, while there has been friendly comments that they are of interest. They cannot give an ETA or even expressed interest in it being for a late March release... So i'm still hoping for rfisher's phonegap plugin... maybe rfisher you could integrate the IAP? then again that wuold actually require a C2 plugin :|... sigh

  • hmmm. I did some more testing. This time to see if we can get some background images based on the theory I had. The result was startling bad.

    Ok first as with my prior suggestions and studies there are ways to get the base rendering to 60fps on a Tegra2 chip(I don't speak for T3). That's good. I managed to get 1 green bouncing ball with an FPS of 20 to 60. Then after some tests managed to get that up to 85 balls running at an FPS of 50.

    With that I decided to try some backgrounds and the results were very painful. Backgrounds(tiled or sprite) that filled the screen killed performance. I've tried difference size tiles based on the 8,16,32,64... model for speed. There were no good results. The end result is that on a Tegra2 it all comes down to pixel pushing and backgrounds are killers :|

    Ok the good news. This is an Ouya thread and the GPU in the Ouya is much better. what ever maybe causing terrible pixel push on my device may not exist at all on the Tegra3/Ouya... sigh. I wish I had my Ouya :)

  • Ouya's pretty similar to the Google Nexus 7, Tegra 3 included. I -do- have one of those sitting right here in front of me... I'd compare it's (native) apps to be something akin to a Sega Dreamcast/Playstation 2 but with a few additional whiz-bang modern graphic effects that (you notice) makes the framerates dip.

    If there's a way to test your example out on my tablet, I'd be happy to help and post the results. I mean, if working out the solution is going to be a users-only trial and error affair, I'm willing to do my part.

  • Actually this can't be right at all aboout larger objects.

    In CocoonJS tests there many demo's with full screen images running at 60fps. However C2 on my device crawls with TileBackground at 256x256 over the screen. There is definitely something wrong.

    I will take you up on that offer. Try this

    original simple: dl.dropbox.com/u/14087254/ballbouncetest.capx

    CocoonJS: dl.dropbox.com/u/14087254/balltest.zip

    CAPX: dl.dropbox.com/u/14087254/performancetest.capx

    modify resolution and position if needed. try to be sure that when using letterbox your getting exacctly the availble screen size :)

  • I'm sorry, I'm ignorant and will need more of a guide to do this than that I'm afraid... lol. In my experience to "install a thing on android" I need a .apk?

  • Actually I`ll set up a website for direct browser testing. It might be easier than constantly uploadnig and downloading :D

  • No! You do as I command! (No? Oh, alright...)

  • ok. let's start with something easy

    studioryu.net/dev/bounceball

    I looked up and it says your device is 1280x800. So just use your browser as I set this to run at your Android Browser(built in) available resolution.

    The demo just creates ball's while it has more than 30fps. The second number is the ball count. Just let me know where it starts to stop.

  • Got it... will do this when I get to the house in a couple of hours.

  • ok. let's start with something easy

    http://studioryu.net/dev/bounceball/

    I looked up and it says your device is 1280x800. So just use your browser as I set this to run at your Android Browser(built in) available resolution.

    The demo just creates ball's while it has more than 30fps. The second number is the ball count. Just let me know where it starts to stop.

    Impressive! Are the balls physics objects? I ask because the results for Chrome on my laptop was 1447 before it's first drop, and this is with 17 tabs open, YouTube playing and Bioshock running in the background! Making it far more impressive than my own work, or are the balls bullets?

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • The balls are bullets with the gravity option on. Since our aim is to figure out what is killing performance on mobile I elected to hold off on Box2d physics. Though that would be pretty cool :)

    Lovelocke64, here is another one to test out(the buttons are a little sensitive)

    studioryu.net/dev/paintrendertest

    This was inspired by CocoonJS Sprite2 demo. However I want to know what FPS impact occurs when there are 50/100/150 objects on the screen; and the different between the 3 backgrounds.

    Tiled: blue with light blue lines. These are 256x256

    Sprite: this is the sky image at a size of 720p to the pixel

    Plain: this is just the basic colour of the layer

    So here is an interesting run down on all this testing.

    Canvas2d(html) is unoptimized for rendering. in fact it's likely that like Android NDK the canvas has a number of method calls that are still software. So the result is that performance is just terrible. ultimatly Canvas2d rendering in the webview render rate is entirely based on the number of pixels pushed in the frame. instead of number of render calls. This leads to terrible performance. More pixels push the slower it goes :(

    CocoonJS(which is not viable for Ouya right now) has over come the pixel amount limit and is wonderfully based on number of draw calls :) When CocoonJS is Ouya ready we will be sitting pretty and able to do some astounding games. infact based on my particular hardware it's pretty close to about 60% native now. however you need to be super smart and careful in regards to logic. This is fantastic platform. But that's the future on the Ouya and not the now :(

    PhoneGap, since we are limited to using PhoneGap :( we are bound to the amount of pixels being rendered for performance. Less pixels rendered the better. This hurts as it will heavily impact background usage. Now since we are aiming for the Tegra 3 which is supposedly going to be 6 to 10 times more powerful than my testing device. We may be fine. My tests results with backround + 50 objects is 20fps. At 6 times the power that would leave the same test running with 120fps(limited to 6)... so you need to let me know the results :)

    I assume your nexus has a screen res of 1280x800?

    this leaves in the browser 1280x648

  • ok. let's start with something easy

    http://studioryu.net/dev/bounceball/

    I looked up and it says your device is 1280x800. So just use your browser as I set this to run at your Android Browser(built in) available resolution.

    The demo just creates ball's while it has more than 30fps. The second number is the ball count. Just let me know where it starts to stop.

    IN CHROME BROWSER:

    Things to consider - It fills up up the center, eh, 40% of my screen. 30fps, 119 balls and holding steady it seems.

    IN DOLPHIN BROWSER:

    The same about filling the center 40% of the screen. 27-28fps steady, 195 balls.

    Have I mentioned how much I -hate- Chrome? Such s---. I have taken a photograph on my phone of the tablet. You can check it out right... here - s18.postimage.org/efip9fobt/IMG_20130214_220604.jpg

  • Lovelocke64, here is another one to test out(the buttons are a little sensitive)

    http://studioryu.net/dev/paintrendertest/

    This was inspired by CocoonJS Sprite2 demo. However I want to know what FPS impact occurs when there are 50/100/150 objects on the screen; and the different between the 3 backgrounds.

    Tiled: blue with light blue lines. These are 256x256

    Sprite: this is the sky image at a size of 720p to the pixel

    Plain: this is just the basic colour of the layer

    Note - The + Symbol adds 5. The - Symbol subtracts 4. Lots of refreshing to check these out... lol.

    IN CHROME BROWSER: (FPS/OBJECTS)

    Tiled Background Test:

    34-39/50

    30-31/100

    30/150

    29-30/200

    28-30/250

    28-30/300

    19-20/500

    12-13/1000

    Sprite Background Test:

    33-39/50

    30-31/100

    30/150

    28-30/200

    24-30/250

    24-30/300

    11-13/1000

    Plain Background Test:

    35-40/50

    30-31/100

    30/150

    29-30/200

    28-30/250

    29-30/300

    12-13/1000

    ...it's late. I'll hit you with the dolphin browser results tomorrow pal :)

  • As a reminder when the game is packed to the APK it wont run in Chrome or Dolphin. It will be using Browser(the one that Android by default comes with). So Dolphin and Chrome tests won't show same results. However they do give some insight on a comparitive test.

    Oddly enought I found on my device Browser performs better than Chrome. Go figure

    PS: The screen issue is due to the scale rate integer. The resolution i set the viewport was exactly that of Browser which has 648 height. If the resolution is right it will fill the screen.

    If you could please use Browser to test that would be awesome :)

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