C2 Performance, let's be honest...

0 favourites
From the Asset Store
Who wants to be a Millionaire Clone. An educational coding source
  • Over the last few updates, there have been a good few topics regarding C2 performance issues, most have ended up looking like a "how do I" thread with anyone questioning C2 performance as not doing something right, and it's their lack of knowledge that's at fault...

    So after the warning shot of Ashley's "upgrade from XP" blog entry, I started using My windows 7 PC to develop on, looking forward to all it's goodness...

    You guessed right, worse performance, now I'm the first to admit that my PC's are not exactly new, but come on less than 200 sprites and a few backdrops with 4 gig ram and 256 graphics card!

    We are constantly told it's gonna get better on mobile that is true, but 2D performance on PC won't be sky rocking anytime soon, video cards are marketed and developed to pushing more polygons, not more 2D sprites.

    I think most devs on here are blind to the real capabilities of C2 as they are running fast gaming spec PC's, many still struggle to push 60 FPS in a game that a Sega mega drive could breeze...

    After moving from Construct Classic, I have still to see a game that really shows the capabilities of C2

    Maybe Java script is just not upto the job, or maybe we are just making excuses...

    Fire away...

  • There is a quite a huge difference with "old" PCs ...

    You ran windows XP, what was it, a Pentium 4?

    Mind you, windows xp is well over 10 years old, and its publisher released 4 newer operating systems which was suposed to replace XP.

    Also, does your old video card support webgl ?

    256mb video memory is rather small.

    4 gig memory, in an old PC, all the same modules ? what speeds ?

    These differ greatly.

    Windows 7 has a LOT of eyecandy crap inside (taking up video performance)... perhaps disable all that before you run a game ;)

    I consider a relative old computer something from ike 2 or 3 years ago.

    By now that would at least be a dual core system.

  • I was using a $280 work laptop and never had any performance problems. The only problem I have ever run into is with an artillery game with destroyable terrain prototype that had tons of blocks to check collisions on. I was pleasantly surprised, that all my projects ran fine on android and iOS devices too. If you want to post your capx I(and probably others) will be able to offer specific advice for improving performance.

  • lennaert Both systems are Dual core, The XP system has better performance, with virtually same spec as the windows 7 PC...

    256 video ram is small agreed, My point is, it should be enough to run a game that would probably embarrass a 16 bit SNES, with it's massive 64 kB video RAM...

    Edit, both video cards support WebGL

  • I do think there is some problem with C2 (or WebGL?, somewhere anyway) in terms of performance. I tried running Autorunner (included in C2) on my Asus Transformer Prime TF701, which has a Tegra 4 chip. Needless to say, I can only get 30 fps on it unless I change the High DPI setting to off. Clearly this shouldn't be the case, I can drive much more demanding games than Autorunner on this device (and I didn't make Autorunner, so I couldn't have done something wrong). It does run smooth on lower resolutions though. I contacted Scirra bout this so I'm curious to see what the response will be, but for now I'm running at low resolutions.

    I get similar effect when I make my browser window large on an older (5 year old) desktop that was top of the line at the time of purchase (but obviously outdated now)

  • 2D games are rendered the same way 3D games are, as polygons with textures on them, so increasing 3D performance improves 2D performance as well. They're really the same thing. The amount of polygons a card can push isn't the whole issue - there's a bunch of other things like pixel fill rate and shader performance to take into account too, all of which continue to improve at quite a fast rate.

    The video card isn't the total issue, either, as things like physics can cause the CPU to be what holds up the next frame.

    There's compilation time, where a game is being compiled in the background at start, so it can take a few seconds before the game is running optimally while it's compiling in the background. My current game requires about 10 seconds before the framerate gets smooth.

    There's also the issue that chrome and node webkit are currently on version 32, which has performance problems on some pcs as it's reverting to software rendering when it shouldn't. Chrome when fullscreened has a framerate in single digits on my machine currently, but chrome 33 should fix it. By switching to windows 7, you're probably using different video card drivers, which might have affected the performance, or caused your card to now be blacklisted when it wasn't before.

    Anyway, in my experience and testing, C2 actually rendered faster than CC, but it has been a while since I checked. Event performance I tested CC to be 1.5-3x faster than C2, but in general I don't need that speed (though I would certainly like it).

    As for the other problems with previous versions of C2 being faster, I can't comment because I haven't noticed a difference, though that doesn't mean there hasn't been one - the game I'm currently working on doesn't have very many sprites on screen at once. I don't have nearly the most powerful computer either, it's an AMD 4400+ with an Nvidia 9800gt. Have you been able to isolate the issue with a .capx?

  • lennaert Both systems are Dual core, The XP system has better performance, with virtually same spec as the windows 7 PC...

    256 video ram is small agreed, My point is, it should be enough to run a game that would probably embarrass a 16 bit SNES, with it's massive 64 kB video RAM...

    A bad comparrison though, a ness was hardware based with the program ran directly from a chip.

    And it didnt had to mainain a system that requires a minimum of 1500mghz to decently run the operating system. (whereas XP only requires roughly 200mghz) Not to mention supporting the eyecandy in the backgorund.

    Also, the operating system needs to run the browser too.

    I think its far more likely that your windows 7 is not living up to your expectations, and you prefer to blame it on the perfromance of cs2.

    Perhaps check out the video requirements for windows 7.

    Grafisch DirectX 9-device with WDDM 1.0 or higher

    Something tells me your 256mb video card is not up to par ;) (or barely)

  • Arima I realise that when it comes to rendering, placed in a petri dish, C2 performs well, it's when you ask these objects to do something other than look pretty that things seem to go a bit pear shaped...

    For simple games C2 performs great, but do fear for anyone developing anything remotely complex, when it reaches the end user with far lower spec than the Dev developed and intended it to be played on...

    The chrome 32 update really has thrown the spanner in the works, and yes one of the cards was blacklisted, overcome with chrome//flags

    As far as I am aware windows 7 supports and uses hardware rendering for 2.5D displays (desktop windows), and XP does not, so if what you say is true, I'd have expected increased performance on Windows 7, but, I am not 100% up on all the Tech regarding video cards, so bow to Your better knowledge on that...

    To be honest My game is still performing as good as, if not better than most similar games, I have seen or played on the forums, it's just about acceptable, but I continue...

    Looks like I'm as guilty as everyone else, when it comes to dropping My expectations as I add more game play elements...

  • lennaert again, Your probably right, but there are millions of similar or even lower spec systems out there...

  • For simple games C2 performs great, but do fear for anyone developing anything remotely complex, when it reaches the end user with far lower spec than the Dev developed and intended it to be played on...

    Welcome to the world of developing for a target platform with a variable spec. :/ Pro devs working with c++ have this problem, too, it's the reason there's a listing for minimum system requirements for games. At some point you have to make a decision whether your going to go for the game you want or scale it back to hit older computers. It might be possible to simply have something like a setting in the options menu so people can turn off shaders or something if their computer can't handle them to try to accommodate both.

    As far as I am aware windows 7 supports and uses hardware rendering for 2.5D displays (desktop windows), and XP does not, so if what you say is true, I'd have expected increased performance on Windows 7, but, I am not 100% up on all the Tech regarding video cards, so bow to Your better knowledge on that...

    2.5D displays? I don't know what you mean by that. There's another potential performance issue with win 7 - are you using aero or the old windows style? If you're using the old windows style, then you're not getting hardware acceleration with windows' window manager, which hurts performance. Also, as others have said, win 7 is more complex and has higher requirements than win XP, so it just might be requiring more CPU/GPU time to the point were it starts negatively impacting other applications. 256 mb for a card is very low - you also might be having problems with running out of VRAM, which means the os and game would be competing for that VRAM, and moving textures over the system bus is a slow process.

    I understand your frustration, though. Performance seems like a simple concept, but it turns out to be this crazy complex thing. That's one of the reasons ATI came up with its mantle API recently - to help optimize some of the places where the CPU and GPU are just sitting around waiting for instructions on what to do because of bottlenecks from the os and such.

  • Well as I said, I will plod on, for now...

    2.5d Displays, is an old term obviously not used these days...

    I expect it's the related to the "back to front rendering" that ashley refers to, as in all open windows are displaying their textures despite being covered by another window, where as I believe XP had to use software rendering to do this, and could cause a "dragging" effect as the GPU caught up with the window position when repositioned...

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • pixel perfick - the performance you describe strongly suggests software rendering. Perhaps you have old drivers which are blacklisted, did you try updating them? Also did you try Firefox and IE and were the results consistent across them? If you only tested Chrome, note the current version has an issue where it may use software-rendered WebGL which is horribly slow. The next Chrome out in a few weeks should fix that.

    Juryiel - the 'high DPI' mode does not alter the CPU load, only the GPU load. I think this is strong evidence the game is bottlenecked on the GPU hardware capabilities, and therefore a native engine would not be faster.

  • I agree that just making an engine native wouldn't necessarily improve things and I'm not saying that's what the problem is. However, if a native engine was coded to handle graphics better than whatever C2 or WebGL implementations in browsers are doing it could make a difference. Clearly something is going on right? I'm not the expert here really, so how do you reconcile these facts?:

    1. Device has good, modern GPU, which supports WebGL

    2. Device can push 60fps in complicated 3d games easily at high resolution

    3. Device can't run Autorunner beyond 30fps at high resolution

    I think the answer to that will solve the performance problem I'm having, whatever that answer is.

  • I know a large chunk of users for Don't fall! are running chromebooks, which are cheap as $200, and I've never had a complaint about performance. That said, they are built to run chrome...

  • No, it's just that old mobile hardware is heavily fillrate limited. 3D games are rendered differently to 2D games and are actually lighter on the fillrate. Due to depth testing, 3D games can more or less write to every pixel on screen just once. However 2D games with a back-to-front renderer like Construct 2 has with lots of overlapping objects hits the fillrate hard, and old GPUs can't push that much bandwidth. Newer devices have no trouble though.

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