Concerns from a "Serious" developer

Post » Mon Apr 03, 2017 5:36 pm

@Ashley

Was implementing multiplayer really a waste of time though? Is your use data based only on your signaling server activity levels? If so, then it's quite obvious that the majority of users won't be using it much; it's a lot of work to make a multiplayer game and beyond the capabilities of beginners. But simply having multiplayer as a feature in C2 probably sold a lot of copies of the engine. Even if it goes unused. People buy things based on what they want, and not necessarily on what they will end up using. I'm sure a ton of hobbyist's first question on reading about C2 was "can it do multiplayer." And the answer is yes, so they bought it. It sounds cool to them and they like the idea. In reality, 99%+ won't ever make a multiplayer game, or even a single request​ to the signaling server. But they bought C2 because they know the option exists. The poll on the forum clearly showed that there was a lot of interest in that option.
B
48
S
10
G
9
Posts: 1,224
Reputation: 8,449

Post » Mon Apr 03, 2017 5:56 pm

Ashley wrote:Do you want us to build native engines? I've covered that in this blog with our rationale around that, which nobody ever really directly argues against, there's just vague accusations of how HTML5 is "poorly optimised" or something, which really is not the case given the potency of modern JIT compilers and the native-equivalent performance of WebGL.


Actually I and others do have a problem with the arguments in that article, as well as the article on "HTML5 games faster than native"

Let's see:

Ashley wrote:WebGL is close enough to OpenGL to be considered the same performance-wise. In other words, Construct 2 games render in practically the same manner a native engine would.

...

We already cover Xbox One and Wii U - so that only leaves PS4. Currently we're blocked by Sony not providing an easy way to publish HTML5 games to the PS4. Given how well our Xbox One support worked - requiring no significant changes to our engine to work on a console - we are keen to see Sony supporting HTML5 on their console too.


There's a few arguments against those lines of thought:

Jayjay wrote:Listing GPU fillrate as the main cause of a games slowdown... and then stating that the WiiU is a viable export platform is quite funny. WiiU doesn't support WebGL, meaning not only regular GPU "fillrate issues", but no special FX and low performance.

5FPS after losing WebGL and FX is still not playable for a platformer. We didn't even make an HD title, just a retro 16bit platformer with 32x32 to 64x64 pixel sprites on average.

As for fillrate being "the main culprit", there are many instances where CPU should be considered too (eg: most enemies and players using the platformer behavior) and, no matter the optimizations, aren't going to be able to combat the issues of JavaScript without emscripten. But, if you make a tool that exports to HTML5 through emscripten it might as well also export the actual C/Cpp (to port to the JS, best of both worlds).


RafaelHp wrote:Even the mobile games developed with Unity and Unreal put C2 at the ground... How you can even compare?

- Native games is WAY better in lower and mid hardwares, and this is AMAZING because more people will play your games.
->>Scirra depending on thirdy-partys for realese our game. Remember when you guys drop support to Cocoon as exporter? That's why I droped C2.

...

By the way, The Next Penelope is being ported to C ...


Gianmichele wrote:To me the main issue I had with html5 games is that on low-end devices (iPad 2) they perform not really well at all. The same simple app on iOS, even with the super accelerated safari, tends to have small hickups and feels not smooth compared to the same done in a native engine (love2d in this case).
The situation seems a bit better on newer devices (iPhone6), but still showing those small jerks every now and then (are they GC related?).

All of this scares me away from trying to do something serious with html5 engine.


R0J0hound wrote:While it's true most devices support webgl it doesn't mean we get the same performance as native in that respect. In my experience it varies per device, and it's just not about the hardware capabilities. Case in point, for me in CC rendering is way faster than in C2. This goes against your benchmarks so that leads me to believe webgl gives native performance on only certain devices. The argument that the hardware is the limit doesn't fly when changing software and doing the same thing performs a lot better.

The browser's hardware support is primarily about having everything work instead of having everything have good performance imo. Even things like the vsync jank is still there on some hardware. This is probably what causes the disparity between the issues users see and what is tested.

I don't know if native support would fix this, and I realize doing so would cause a load of different issues and multiple code bases, but there seem to be core issues with how browsers do things that are not performant.


Now, in regards to "HTML5 faster than Native?":

Ashley wrote:Construct 2's WebGL renderer is faster than our previous native C++ DirectX 9 based engine - the one we developed for Construct Classic.


This is a completely wrong comparison, because C2 is largely an improvement and optimization on CC, you already learned from past mistakes and found new ways to optimize. It's the software form of a "straw man" argument against native.

If you back-ported those optimizations back to C++ you'd find that the results suddenly return to native being the fastest and smoothest. We can tell this ourselves from simply our experience of porting to Unity in C# with our current game and seeing it run much faster and with more lighting, special effects, and enemies on-screen than our C2 prototype.

Then there's also the people who didn't see the results that are promised in that article with C2 vs CC:

dEspadas wrote:97151 - WebGL
128458 - Native
i3 - 3220 / GeForce GTX 550ti with small factory overclock / Win 7 64 / nvidia driver 306.97 / 8Gb RAM


Epox wrote:Intel E2180 2Ghz, 4GB RAM, Win7 64 bit, SP1, Geforce 210, Nvidia 306.97 driver

Native/DX 25613

WebGL:
Chrome 22: 3801
Chrome 23: 4482
Chrome 24: 3901 (dev)
Chrome 25: 3503 (chanary)
FF16: 3254


Rayek wrote:i7 9203.6ghz, 48gb, win7 64bit , amd7970 3gb, catalyst 12.11(beta)

Native/dx: 118040

WebGL:
Firefox 16.0.2: 58712
Chrome 22: 103761


BruestleMulti wrote:WebGL Performance (Google Chrome 23): about 10400 objects
Native Performance: about 24000 objects

My notebook: Processor Intel Core i5-2410M 2.3 Ghz, 8 GB Ram, Graphic card Intel HD Graphics 3000, OS Windows 7 Ultimate 64-Bits


I'd like to point out two things from all of this:

1.) Like the data above, some of the "still-Steam-average" hardware still sees native far out-performing WebGL, and desktop is currently the best supported platform for HTML5 + WebGL. The results may be 4 years old, but the average 2D gamer (based on customer support issues on Steam) hasn't updated their PC/laptop/even just the graphics card in a long time.

Even with an Intel i7 6700k and GTX 1070 which has much better WebGL support than most of my customers I get:

Sprites/objects @ >= 60fps with no drops below
"Native"/dx/CC: 86k
WebGL/Chrome/C2: 95k

This may not be the number of sprites that will appear in a game, but it still reflects an underlying performance gap between Construct Classic (which could be argued to be almost as un-optimized as C2 is optimized) and WebGL. HTML5 is not faster than native. It can get close with WebGL + Emscripten, but it inherently is just not capable of being as fast as native, and I wish that Scirra would stop trying to compare the two this way.

2.) You can't just ignore comments/evidence/arguments against your company/public statements about your engine and then claim "nobody ever really directly argues against" them!

Bonus: That multiplayer plugin would probably have been used a lot more if people were able to export their games and "publish everywhere". It's also possible the users are waiting for more helper functions/plugins/behaviours that make tracking objects much easier (Eg: a behaviour for syncing objects). I know multiplayer is generally a hard feature, but it's a great one to have even if it doesn't get used as often as other plugins.

Like others are saying, yes, export matters 100% more, but I still am glad Construct got multiplayer.

Although, it seems some other users had a better time using their own multiplayer solutions:

scoterr wrote:Using Electron instead of nw.js made my games smaller and better working, using my own networking solution with central socket.io based server destroyed weird, random connection problems that disallowed me from even testing my game. And made multiplayer a lot smoother. Being able to write my own rendering code allowed me for much more control over how stuff is shown on screen what makes performance better.
Last edited by Jayjay on Mon Apr 03, 2017 6:04 pm, edited 2 times in total.
"Construct 4 lets YOU make advanced games! (they wont run anywhere)" Construct Classic - Examples Kit Dropbox is a pile of trash and if you need my old files PM me! :)
B
125
S
42
G
17
Posts: 2,228
Reputation: 19,918

Post » Mon Apr 03, 2017 5:58 pm

Ashley wrote:
NotionGames wrote:I would say that getting this community more involved would be a great start. Conducting direct polls and really having a way for supporters to give feedback.

This has worked against us in the past. The multiplayer feature was massively voted for, but from the data we look at, very few people actually use it. So the hype effect is a big distorting factor in polls. I don't regret it, it was a super interesting project to work on, but it's something to bear in mind, and is the main reason I have avoided polls since then.

Having said that, we do have a feature-voting system planned anyway :P but I am going to strongly caveat it with warnings that "votes are not a guarantee of implementation", for exactly the reason we had with multiplayer. Also I can easily imagine things like 3D becoming #1 voted features, and there are a wide range of reasons why we're holding off on that.



There's a big difference between listening to all of your users - including those who haven't created a finished product in Construct - and those more "serious" (as the OP titled this thread) users who are looking for more quality-of-life features than anything new that will hardly be used by most users like multiplayer or unrealistic requests for 3D in a tool designed specifically for 2D. There's only a handful of more advanced C2 users because (I think) of some of the limitations in the engine that theoretically make features easier to use, but which annoy us more advanced users because we're hitting hard feature walls we can't work around like globally-shared images for tilemaps (if this was optional, it would be a heck of a lot easier to set up dynamically loading tilesheets and tilemaps), forced spritesheeting (which causes issues with seams, no matter how you spin in it, so it'd be nice to turn off for desktop builds where they provide little performance benefit), setting variable values without being forced to select the variable through a dropdown, real If statements (that also don't require using a dropdown for values or objects), etc.
B
84
S
46
G
25
Posts: 530
Reputation: 21,570

Post » Mon Apr 03, 2017 6:03 pm

Jayjay wrote:
Ashley wrote:Do you want us to build native engines? I've covered that in this blog with our rationale around that, which nobody ever really directly argues against, there's just vague accusations of how HTML5 is "poorly optimised" or something, which really is not the case given the potency of modern JIT compilers and the native-equivalent performance of WebGL.


Actually I and others do have a problem with the arguments in that article, as well as the article on "HTML5 games faster than native"

Let's see:

Ashley wrote:WebGL is close enough to OpenGL to be considered the same performance-wise. In other words, Construct 2 games render in practically the same manner a native engine would.

...

We already cover Xbox One and Wii U - so that only leaves PS4. Currently we're blocked by Sony not providing an easy way to publish HTML5 games to the PS4. Given how well our Xbox One support worked - requiring no significant changes to our engine to work on a console - we are keen to see Sony supporting HTML5 on their console too.


There's a few arguments against those lines of thought:

Jayjay wrote:Listing GPU fillrate as the main cause of a games slowdown... and then stating that the WiiU is a viable export platform is quite funny. WiiU doesn't support WebGL, meaning not only regular GPU "fillrate issues", but no special FX and low performance.

5FPS after losing WebGL and FX is still not playable for a platformer. We didn't even make an HD title, just a retro 16bit platformer with 32x32 to 64x64 pixel sprites on average.

As for fillrate being "the main culprit", there are many instances where CPU should be considered too (eg: most enemies and players using the platformer behavior) and, no matter the optimizations, aren't going to be able to combat the issues of JavaScript without emscripten. But, if you make a tool that exports to HTML5 through emscripten it might as well also export the actual C/Cpp (to port to the JS, best of both worlds).


RafaelHp wrote:Even the mobile games developed with Unity and Unreal put C2 at the ground... How you can even compare?

- Native games is WAY better in lower and mid hardwares, and this is AMAZING because more people will play your games.
->>Scirra depending on thirdy-partys for realese our game. Remember when you guys drop support to Cocoon as exporter? That's why I droped C2.

...

By the way, The Next Penelope is being ported to C ...


Gianmichele wrote:To me the main issue I had with html5 games is that on low-end devices (iPad 2) they perform not really well at all. The same simple app on iOS, even with the super accelerated safari, tends to have small hickups and feels not smooth compared to the same done in a native engine (love2d in this case).
The situation seems a bit better on newer devices (iPhone6), but still showing those small jerks every now and then (are they GC related?).

All of this scares me away from trying to do something serious with html5 engine.


R0J0hound wrote:While it's true most devices support webgl it doesn't mean we get the same performance as native in that respect. In my experience it varies per device, and it's just not about the hardware capabilities. Case in point, for me in CC rendering is way faster than in C2. This goes against your benchmarks so that leads me to believe webgl gives native performance on only certain devices. The argument that the hardware is the limit doesn't fly when changing software and doing the same thing performs a lot better.

The browser's hardware support is primarily about having everything work instead of having everything have good performance imo. Even things like the vsync jank is still there on some hardware. This is probably what causes the disparity between the issues users see and what is tested.

I don't know if native support would fix this, and I realize doing so would cause a load of different issues and multiple code bases, but there seem to be core issues with how browsers do things that are not performant.


Now, in regards to "HTML5 faster than Native?":

Ashley wrote:Construct 2's WebGL renderer is faster than our previous native C++ DirectX 9 based engine - the one we developed for Construct Classic.


This is a completely wrong comparison, because C2 is largely an improvement and optimization on CC, you already learned from past mistakes and found new ways to optimize. It's the software form of a "straw man" argument against native.

If you back-ported those optimizations back to C++ you'd find that the results suddenly return to native being the fastest and smoothest. We can tell this ourselves from simply our experience of porting to Unity in C# with our current game and seeing it run much faster and with more lighting, special effects, and enemies on-screen than our C2 prototype.

Then there's also the people who didn't see the results that are promised in that article with C2 vs CC:

dEspadas wrote:97151 - WebGL
128458 - Native
i3 - 3220 / GeForce GTX 550ti with small factory overclock / Win 7 64 / nvidia driver 306.97 / 8Gb RAM


Epox wrote:Intel E2180 2Ghz, 4GB RAM, Win7 64 bit, SP1, Geforce 210, Nvidia 306.97 driver

Native/DX 25613

WebGL:
Chrome 22: 3801
Chrome 23: 4482
Chrome 24: 3901 (dev)
Chrome 25: 3503 (chanary)
FF16: 3254


Rayek wrote:i7 9203.6ghz, 48gb, win7 64bit , amd7970 3gb, catalyst 12.11(beta)

Native/dx: 118040

WebGL:
Firefox 16.0.2: 58712
Chrome 22: 103761


BruestleMulti wrote:WebGL Performance (Google Chrome 23): about 10400 objects
Native Performance: about 24000 objects

My notebook: Processor Intel Core i5-2410M 2.3 Ghz, 8 GB Ram, Graphic card Intel HD Graphics 3000, OS Windows 7 Ultimate 64-Bits


I'd like to point out two things from all of this:

1.) Like the data above, some of the "still-Steam-average" hardware still sees native far out-performing WebGL, and desktop is currently the best supported platform for HTML5 + WebGL. The results may be 4 years old, but the average 2D gamer (based on customer support issues on Steam) hasn't updated their PC/laptop/even just the graphics card in a long time.

Even with an Intel i7 6700k and GTX 1070 which has much better WebGL support than most of my customers I get:

Sprites/objects @ >= 60fps with no drops below
Native/dx: 86k
Chrome: 95k

This may not be the number of sprites that will appear in a game, but it still reflects an underlying performance gap between Construct Classic (which could be argued to be almost as un-optimized as C2 is optimized) and WebGL. HTML5 is not faster than native. It can get close with WebGL + Emscripten, but it inherently is just not capable of being as fast as native, and I wish that Scirra would stop trying to compare the two this way.

2.) You can't just ignore comments/evidence/arguments against your company/public statements about your engine and then claim "nobody ever really directly argues against" them!

Bonus: That multiplayer plugin would probably have been used a lot more if people were able to export their games and "publish everywhere". It's also possible the users are waiting for more helper functions/plugins/behaviours that make tracking objects much easier (Eg: a behaviour for syncing objects). I know multiplayer is generally a hard feature, but it's a great one to have even if it doesn't get used as often as other plugins.

Like others are saying, yes, export matters 100% more, but I still am glad Construct got multiplayer.

Although, it seems some other users had a better time using their own multiplayer solutions:

scoterr wrote:Using Electron instead of nw.js made my games smaller and better working, using my own networking solution with central socket.io based server destroyed weird, random connection problems that disallowed me from even testing my game. And made multiplayer a lot smoother. Being able to write my own rendering code allowed me for much more control over how stuff is shown on screen what makes performance better.


+1 to all of this, especially the "we're just as fast/faster than native" claims which are so completely beyond the pale in terms of just outright fabrications of HTML5's current abilities, using C2 or not. This is something I knew going in to C2, and I understand the performance difference (though it is greater than it should be with C2), so when I see this claim pushed over and over despite gallons of real-world evidence otherwise - and sorry, but your internal tests with tiny little games or demos mean nothing when compared to thousands of copies of commercial games out in the real world that show the opposite, and PLEASE don't try to blame the game's developers for this as you've done in the past - it's very hard to swallow after the 100th time when all evidence points to the opposite being true.
Last edited by digitalsoapbox on Mon Apr 03, 2017 6:11 pm, edited 1 time in total.
B
84
S
46
G
25
Posts: 530
Reputation: 21,570

Post » Mon Apr 03, 2017 6:08 pm

digitalsoapbox wrote:...
so when I see this claim pushed over and over despite gallons of real-world evidence otherwise - and sorry, but your internal tests with tiny little games or demos mean nothing when compared to thousands of copies of commercial games out in the real world that show the opposite, and PLEASE don't try to blame the game's developers for this as you've done in the past - it's very hard to swallow after the 100th time when all evidence points to the opposite being true.


+1000 :lol:
"Construct 4 lets YOU make advanced games! (they wont run anywhere)" Construct Classic - Examples Kit Dropbox is a pile of trash and if you need my old files PM me! :)
B
125
S
42
G
17
Posts: 2,228
Reputation: 19,918

Post » Mon Apr 03, 2017 6:14 pm

Jayjay wrote:
digitalsoapbox wrote:...
so when I see this claim pushed over and over despite gallons of real-world evidence otherwise - and sorry, but your internal tests with tiny little games or demos mean nothing when compared to thousands of copies of commercial games out in the real world that show the opposite, and PLEASE don't try to blame the game's developers for this as you've done in the past - it's very hard to swallow after the 100th time when all evidence points to the opposite being true.


+1000 :lol:


I know, right? I've optimized the hell out of Sombrero (which developers are also encouraged against in Scirra blog posts, while those developers then receive the blame for poor game performance) and I'm 99% sure there is absolutely nothing I can do to improve performance farther, and the performance is nowhere near far more complex games, including other 2D games, because of some limitations that seem endemic to C2 more than general HTML5/JS/WebGL performance limitations.
B
84
S
46
G
25
Posts: 530
Reputation: 21,570

Post » Mon Apr 03, 2017 6:20 pm

digitalsoapbox wrote:I know, right? I've optimized the hell out of Sombrero (which developers are also encouraged against in Scirra blog posts, while those developers then receive the blame for poor game performance) and I'm 99% sure there is absolutely nothing I can do to improve performance farther, and the performance is nowhere near far more complex games, including other 2D games, because of some limitations that seem endemic to C2 more than general HTML5/JS/WebGL performance limitations.


To be fair, advising against premature optimization or overzealous refactoring is pretty common practice even outside of construct, and generally good advice in most situations. The Scirra blogs also do clearly state the exceptions to this as well, and also give clear information about what to look out for for you to make your own basis for deciding about when and how to optimize.

The biggest thing missing is probably fine control of memory management, which is handled mostly through smart use of layouts.
Mistakes were made.
B
53
S
27
G
114
Posts: 1,698
Reputation: 64,444

Post » Mon Apr 03, 2017 6:38 pm

lamar wrote:Ashley after reading the many many comments on this and my thread I believe what people are asking for is this:

1- Go ahead with C3 as it may at least be useful to people using Mac and Unix even though most C2 users have said they do not want a Chrome browser based subscription engine.

2- Make an update or addon package of exporters and features for C2 that users have been asking for and fix the bugs you have been promising to fix for years. Put that new team of programmers to work on that along with C3.

We all understand Scirra has to make money and I believe you understand that if you lose your long time C2 users by not listening to us your chances of staying in business are pretty damn small.

So this is a reasonable request and you can charge your $99 for a great package of features and exporters for C2 and I will bet you will sell many more of those packages than you will C3 browser versions.

It also would prove you actually intend to honor your license and advertising that said those exporters would be included in C2 and would probably keep your base happy and maybe they would be interested in C3 later after you get all the bugs worked out.

It seems to me you would want those long time C2 users to hang around and support Scirra but reading through the comments on many threads they are dropping out and pretty disappointed in Scirra right now.

So what do you say?

Can we get a package of features and working exporters for the existing C2 engine at a reasonable price with no subscription Ashley?


In what world would any company agree to this?

C2 delivers what it promises - if you can provide a substantiated claim proving otherwise then I would present that rather this post that reads less like a reasonable request and more like a hostage negotiation.

To address the key points:

1) What exporters are missing from C2? They all work. Some work better than others; none of them are broken.

2) One off purchases simply do not work for Scirra's business model of supplying regular updates and constant services.

If you want the new exporters within C3 that incur a regular, constant cost to Scirra, you pay a regular, constant price (a subscription).

If you don't want to pay a regular fee, that's fine, C2 is a one off payment (for the software) and the export options are free, because they don't cost Scirra anything to update, host and maintain.
B
62
S
22
G
10
Posts: 647
Reputation: 10,478

Post » Mon Apr 03, 2017 6:43 pm

Elliott wrote:
lamar wrote:Ashley after reading the many many comments on this and my thread I believe what people are asking for is this:

1- Go ahead with C3 as it may at least be useful to people using Mac and Unix even though most C2 users have said they do not want a Chrome browser based subscription engine.

2- Make an update or addon package of exporters and features for C2 that users have been asking for and fix the bugs you have been promising to fix for years. Put that new team of programmers to work on that along with C3.

We all understand Scirra has to make money and I believe you understand that if you lose your long time C2 users by not listening to us your chances of staying in business are pretty damn small.

So this is a reasonable request and you can charge your $99 for a great package of features and exporters for C2 and I will bet you will sell many more of those packages than you will C3 browser versions.

It also would prove you actually intend to honor your license and advertising that said those exporters would be included in C2 and would probably keep your base happy and maybe they would be interested in C3 later after you get all the bugs worked out.

It seems to me you would want those long time C2 users to hang around and support Scirra but reading through the comments on many threads they are dropping out and pretty disappointed in Scirra right now.

So what do you say?

Can we get a package of features and working exporters for the existing C2 engine at a reasonable price with no subscription Ashley?



I asked for a direct response from Ashley thanks!
Banned User
B
28
S
7
G
58
Posts: 1,229
Reputation: 34,825

Post » Mon Apr 03, 2017 6:45 pm

Elliott wrote:1) What exporters are missing from C2? They all work. Some work better than others; none of them are broken.


Have you any games with paid customers / mass publishing ? A lot of the users bringing their complaints here do, or have tried to reach platforms that C2 promised them and failed (WiiU in particular)

"Some work better than others; none of them are broken" is not valid for this audience, and the phrasing suggests that merely being able to export is the end goal of the Construct workflow.

However, I propose a radical opposition to this: The games should work.

Customers can't tell when an exporter has worked properly or not, they can tell when a game is unplayable.

Producing unplayable games is not the interest of commercial developers.

Scirra needs to come out and say "This isn't meant for you" to commercial developers if they aren't going to be expected to have 100% export and functionality to the platforms they list on their advertising.

Or, they need to at least list the side-effects of export to each platform like a medical commercial.
"Construct 4 lets YOU make advanced games! (they wont run anywhere)" Construct Classic - Examples Kit Dropbox is a pile of trash and if you need my old files PM me! :)
B
125
S
42
G
17
Posts: 2,228
Reputation: 19,918

PreviousNext

Return to General Discussion

Who is online

Users browsing this forum: No registered users and 2 guests