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

Discussion and feedback on Construct 2

Post » Mon May 15, 2017 7:16 pm

@Ashley - Yes, mine is hardware accelerated. I think that's kind of our point - for the game I'm working on, my CPU never goes above 50%, my RAM is always less than 40mbs, and I'm not using any effects, yet somehow I'm unable to get a constant 60 fps (sometimes I sit in the 30s). If not HTML5, CPU, or GPU, what else could be causing something like that?
B
40
S
12
G
1
Posts: 533
Reputation: 4,149

Post » Mon May 15, 2017 7:43 pm

Is that in full screen?
Image ImageImage
B
169
S
50
G
174
Posts: 8,328
Reputation: 110,800

Post » Mon May 15, 2017 7:58 pm

ome6a1717 wrote:@Ashley - Yes, mine is hardware accelerated. I think that's kind of our point - for the game I'm working on, my CPU never goes above 50%, my RAM is always less than 40mbs, and I'm not using any effects, yet somehow I'm unable to get a constant 60 fps (sometimes I sit in the 30s). If not HTML5, CPU, or GPU, what else could be causing something like that?

If the CPU isn't maxed out, the most likely thing is... the GPU is maxed out. So the hardware is the bottleneck. The most common reasons I've seen in practice is it's fillrate-bound (maxing out memory bandwidth), which is exactly the kind of thing which people blame on HTML5/browsers/us without realising it'd be identical in any other engine. I'd take a look at your .capx if you're willing to share it.
Scirra Founder
B
398
S
236
G
88
Posts: 24,433
Reputation: 194,635

Post » Mon May 15, 2017 8:23 pm

@ome6a1717 How many CPU cores do you have?
B
51
S
20
G
10
Posts: 571
Reputation: 9,819

Post » Mon May 15, 2017 8:26 pm

Please share the .capx with Ashley - I get second hand frustration in these threads because users will complain and then never share the final cause of issues; would love to see some closure.
B
60
S
21
G
10
Posts: 643
Reputation: 10,320

Post » Mon May 15, 2017 8:30 pm

I am a full time Construct 2 freelancer and I've completed many projects for browser, desktop and mobiles. Apart of making games from scratch I also had many requests from my customers to finish/optimize their game.

After several years with C2 I can clearly say that the most common performance issue with C2 is not a GPU but the C2 developers (or I should rather say their code). Of course GPU, CPU, your machine and C2 itself also takes some part in the performance issues but the majority of issues I saw was the C2 code (I mean the events of C2 devs projects).

C2 is pretty much like JavaScript or PHP or any other language that is not very strict from architecture perspective. What I mean is that it is very easy to make a simple things with C2 (like in JS for instance) but it is really a big challenge to make a big projects the right way.

The problem is (as mentioned above) the architecture freedom. So while making a big game people tend to use the same coding approach as for small games and in the end they are lost in the messy code which is totally unoptimized as you don't really need to care for optimization in small projects.

With big projects it's different. There's much more code/events so much more operations for CPU and therefore you must use the best coding practices so each feature uses the least CPU as possible. And next to that you need to keep your code architecture very organized to not get lost in your big project (and that is also not very easy with C2).

It also depends on what you call a big project. I worked with projects made of several thousands of events and after optimization they worked well on majority of modern desktop devices. Still the bigger project, the bigger challenge.

So to wrap up, in my opinion it is possible to make a big project (not sure about a huge one) in C2 in a way to make it work very well, but it's not an easy task. Definietely not a task for a C2 newbie. It needs experience and deep understanding of how the memory managament works in C2, which conditions are the real triggers and which are fake triggers, what takes the most CPU, how to make workarounds for high CPU intensive parts etc. Without all this knowledge you will probably fail in making a big game in C2 as C2 is simply difficult for such projects.

From the other hand if you pick Unity or any other engine you also need to learn how to use it properly.

EDIT: Just a clarification as I received some PMs. Please note that I'm not saying that performance issues are not related to the C2 itself at all, I'm just saying that the most common issues comes from the bad coding.
ImageImageImage
B
27
S
16
G
80
Posts: 1,019
Reputation: 44,757

Post » Mon May 15, 2017 11:08 pm

BackendFreak wrote:I am a full time Construct 2 freelancer and I've completed many projects for browser, desktop and mobiles. Apart of making games from scratch I also had many requests from my customers to finish/optimize their game.

After several years with C2 I can clearly say that the most common performance issue with C2 is not a GPU but the C2 developers (or I should rather say their code). Of course GPU, CPU, your machine and C2 itself also takes some part in the performance issues but the majority of issues I saw was the C2 code (I mean the events of C2 devs projects).

C2 is pretty much like JavaScript or PHP or any other language that is not very strict from architecture perspective. What I mean is that it is very easy to make a simple things with C2 (like in JS for instance) but it is really a big challenge to make a big projects the right way.

The problem is (as mentioned above) the architecture freedom. So while making a big game people tend to use the same coding approach as for small games and in the end they are lost in the messy code which is totally unoptimized as you don't really need to care for optimization in small projects.

With big projects it's different. There's much more code/events so much more operations for CPU and therefore you must use the best coding practices so each feature uses the least CPU as possible. And next to that you need to keep your code architecture very organized to not get lost in your big project (and that is also not very easy with C2).

It also depends on what you call a big project. I worked with projects made of several thousands of events and after optimization they worked well on majority of modern desktop devices. Still the bigger project, the bigger challenge.

So to wrap up, in my opinion it is possible to make a big project (not sure about a huge one) in C2 in a way to make it work very well, but it's not an easy task. Definietely not a task for a C2 newbie. It needs experience and deep understanding of how the memory managament works in C2, which conditions are the real triggers and which are fake triggers, what takes the most CPU, how to make workarounds for high CPU intensive parts etc. Without all this knowledge you will probably fail in making a big game in C2 as C2 is simply difficult for such projects.

From the other hand if you pick Unity or any other engine you also need to learn how to use it properly.

EDIT: Just a clarification as I received some PMs. Please note that I'm not saying that performance issues are not related to the C2 itself at all, I'm just saying that the most common issues comes from the bad coding.

I agree 100% with all of this...
B
98
S
32
G
16
Posts: 1,204
Reputation: 16,715

Post » Tue May 16, 2017 4:50 am

@newt - not borderless fullscreen, but maximized.

@Ashley & @Elliott - I usually don't like to do this, but I'll happily send you my capx (is there a way I can send it without posting it publicly? We are releasing on steam soon and I'd prefer for others not to have my capx file :P)

Also if it is fillrate-bound, how is that combated? I assume that's what it is since if I minimize to the standard resolution (640 x 360) I get a constant 60 fps, but that's a bit unrealistic to play at, and even using low settings it doesn't change anything.

@Jase00 - only 2 cores (i7 Surface book), but I believe HTML5 can only use 1 no matter what.

@BackendFreak - Honestly I would LOVE for it to be my bad programming, but if I disable all of my code the fps doesn't really change much. Unless, however, disabling is different from actually deleting it.
B
40
S
12
G
1
Posts: 533
Reputation: 4,149

Post » Tue May 16, 2017 5:34 am

ome6a1717 wrote:Honestly I would LOVE for it to be my bad programming, but if I disable all of my code the fps doesn't really change much. Unless, however, disabling is different from actually deleting it.


Not only "bad coding" but misuse of budgeting graphics/effects/particles/objects/collisions/force texture or anything that has a behavior etc..
B
98
S
32
G
16
Posts: 1,204
Reputation: 16,715

Post » Tue May 16, 2017 5:57 am

@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.
B
40
S
12
G
1
Posts: 533
Reputation: 4,149

PreviousNext

Return to Construct 2 General

Who is online

Users browsing this forum: Bobbyneal100 and 17 guests