Is C2/C3 good for large 2D desktop games?

Discussion and feedback on Construct 2

Post » Tue May 16, 2017 2:49 pm

ome6a1717 wrote:@jobel - true, but I've tested all of that (deleted most of my objects, turned off all effects, AND disabled code and collision checks) to no avail.


deleted most of your objects? of the objects you left have how big are your sprites? how many do you have? what behaviors do they use? what are they doing on the screen? you say your cpu is not taxed, so your fill rate has to be doing something taxing. How big is your layout?
B
100
S
33
G
16
Posts: 1,204
Reputation: 16,865

Post » Tue May 16, 2017 3:12 pm

chadorireborn wrote:Even making a small Flappy Bird game is far more stable making in Unity for an Android Jellybean phone from 2012 than making on C2.


While i don't tout HTML5 performances as the greatest thing ever, i find this particular statement extremely hard to believe.
B
98
S
35
G
11
Posts: 289
Reputation: 13,087

Post » Tue May 16, 2017 3:19 pm

Draw calls is another matter really, and happens on the CPU side. It's probably best to split that topic off to a new thread. We have OpenGL ES 3 equivalent capabilities with WebGL 2 though, so if at any point draw calls prove to be a bottleneck, it's something we can potentially optimise in exactly the same way a native app would adjust their draw calls to be more efficient. Most 3D APIs, WebGL included, are specifically designed to allow as much drawing as possible with the fewest draw calls, to as far as possible eliminate the CPU overhead.
Scirra Founder
B
403
S
238
G
89
Posts: 24,653
Reputation: 196,143

Post » Tue May 16, 2017 3:24 pm

https://docs.google.com/presentation/d/12AGAUmElB0oOBgbEEBfhABkIMCL3CUX7kdAPLuwZ964/edit#slide=id.i0

Found this presentation document for a good read on WebGL, I'm just trying to understand a little bit more on how it works. I have no doubt in my mind that it can match performance of native if optimized the right way. The only thing I'm not sure of is if C2/C3 is getting the most out of it. Since a lot of people still seem to be complaining about it.

Maybe both are right? Ashley claiming close to native level performance (which probably is true in an optimal case), but users are experiencing something else with their projects because it's not optimized?

What do I know? Just speculating...

:P
Follow my progress on Twitter
or in this thread Archer Devlog
B
42
S
18
G
19
Posts: 1,060
Reputation: 14,054

Post » Tue May 16, 2017 4:20 pm

So... To sum it up after five pages of discussion, two camps of thought:

1) the Construct developer(s) maintain that it is due to drivers and user errors (for example badly scripted events)

2) a number of game developers who have actually made and released larger 2d desktop games in C2 on Steam, and speak from experience when they notice performance is not up to par with 'native' engines, and of whom a number have switched to other game engines for their next games.

Question to Ashley: does Scirra use their own engine to develop larger games? If not, perhaps it would be a good idea to work on at least one larger project to see for yourselves if there exist any issues.
B
7
S
1
Posts: 29
Reputation: 483

Post » Tue May 16, 2017 4:24 pm

@jobel - the largest image is 640 x 360 (only one of them - the BG). I have probably about 1000-1100 objects (600 are invisible menu items) and only a few (maybe 30-40) are on the screen at a time. None of them but the player has any behaviors (platform) and one tilemap that has solid. Layout is about 4500 x 2600.
B
44
S
12
G
1
Posts: 545
Reputation: 4,271

Post » Tue May 16, 2017 6:46 pm

Delenne wrote:Question to Ashley: does Scirra use their own engine to develop larger games? If not, perhaps it would be a good idea to work on at least one larger project to see for yourselves if there exist any issues.

As I said before, we've already seen these issues with the Construct 2 editor itself. It doesn't change much though, we still can't fix broken drivers.
Scirra Founder
B
403
S
238
G
89
Posts: 24,653
Reputation: 196,143

Post » Sun May 21, 2017 12:36 am

ome6a1717 wrote:@jobel - the largest image is 640 x 360 (only one of them - the BG). I have probably about 1000-1100 objects (600 are invisible menu items) and only a few (maybe 30-40) are on the screen at a time. None of them but the player has any behaviors (platform) and one tilemap that has solid. Layout is about 4500 x 2600.


It all depends on what your game is doing. I have far more objects and an unbound layout and my game runs at a steady 60fps. My game is a decent size, I have about 3500 events and the main layout also loads at least 10+ large sprites over 800x800, they are not always visible. The player character has around 48 frames of animation and currently it's a good 300x300px (downsized in-game).

The only time I had a frame drop issue, was when I didn't cap out one of my spawners. I had been creating too many objects that were never destroyed (only if the player was near them).

Not sure what to tell you, except that I've always tested gradual.. any time I add something new, I would check to make sure the game ran okay. When I had my one frame drop issue, I noticed it right away after I implemented it. So I knew I had a problem that I needed to deal with. Adding a cap system worked great, and the player never notices it.

I think you need to find exactly what is causing it. What are those non menu object doing? there's about 600 of them. Do they have lots of frames of animation? try eliminating a group and see what happens. As long as you can reproduce your frame drop, you can always find the culprit, just gotta do some investigative work...
B
100
S
33
G
16
Posts: 1,204
Reputation: 16,865

Post » Wed May 24, 2017 9:55 am

@jobel - the non menu objects are only maybe 15-20 sprites with no animations or large frames (most of them are just duplicates of each other; a lot of them spritefonts). Some of the spritefonts have effects, but they're all on invisible layers so they shouldn't be rendered. I'm considering rewriting all of my code to dynamically create the menu instead of have it on a global layer. I'm not sure that'll even do anything, but at this point I'm kind of not sure what else to optimize.

I have noticed that alt tabbing back in and back out can sometimes make the fps drop to ~30, but then if I alt tab out and back in, it'll go back to 60. I honestly have no idea what's happening. Ironically I've changed the node webkit from my powerful GPU to integrated intel HD graphics and I'm not getting ~60 fps as long as I don't maximize the window full screen.
B
44
S
12
G
1
Posts: 545
Reputation: 4,271

Post » Wed May 24, 2017 2:23 pm

ome6a1717 wrote: I have probably about 1000-1100 objects (600 are invisible menu items) and only a few (maybe 30-40) are on the screen at a time. None of them but the player has any behaviors (platform) and one tilemap that has solid. Layout is about 4500 x 2600.


generally speaking this should not be happening. I've seen enough C2 platformer games to know something weird is up with what you are trying to do. The fact that none of your objects except the player has a behavior and you've disabled all the events and still get the frame drop is very suspect.

btw this doesn't even sound like a large desktop game.

ome6a1717 wrote: Ironically I've changed the node webkit from my powerful GPU to integrated intel HD graphics and I'm not getting ~60 fps as long as I don't maximize the window full screen.

I don't understand what you are saying here.
B
100
S
33
G
16
Posts: 1,204
Reputation: 16,865

PreviousNext

Return to Construct 2 General

Who is online

Users browsing this forum: No registered users and 4 guests