Native Desktop Exporter for Construct 3

Discussion and feedback on Construct 2

Post » Thu Jan 29, 2015 8:42 am

From Scirra's point of view, going with HTML5 is the only logical option. A native exporter would be a terrible idea in terms of return on investment, workload, etc.

From my point of view, I can't risk being reliant on Chrome and NW (and HTML5 in general) being functional. I can't afford to not be able to port to consoles. So I'll move to another engine for my next project.

Scirra can afford to lose people like myself as a customer. Keep in mind that a VERY high percentage of C2 users don't create commercial desktop/console products.

IMO they should just scrap support for large projects and focus on small/midscale projects, and rapid prototyping. It's admirable that they've been supportive of projects like mine for so long, and I'm hugely thankful for that! But in terms of what would be best for this engine, HTML5 is the only option. And at least for the near future, using HTML5 for a commercial-scale project will always be problematic (Except, as always, for special cases like non-performance intensive games, etc)

At the end of the day, for a commercial project, Unity and (apparently) GM are viable alternatives, and Scirra would be crazy to try and compete with those powerhouses directly, at least with the resources they have currently.
B
92
S
31
G
24
Posts: 3,191
Reputation: 32,699

Post » Thu Jan 29, 2015 8:57 am

QuaziGNRLnose wrote:Don't use construct if you want native performance. If you want perfect performance write your game in assembly for every cpu architecture + gpu specific optimization.


I will get right on that. But I'm currently still busy replacing Windows with my own operating system, which is going to outperform it easily. The working title is "iCantCode OS". :lol:

QuaziGNRLnose wrote:Using a tool like construct you have to give up a lot of optimizations.


I honestly think people do realize this. But does a tool like Construct automatically have to rely on HTML5?

It is apparent that there is a part of the userbase that doesn't want to develop for mobiles and rather have something not taking too much control out of their hands while most likely performing better. I also don't think this is surprising in the least given the history of Construct.

I cannot quite see the harm in voicing that standpoint.

And yes, it is very understandable from a business perspective for Scirra to stick with HTML5. No doubt about it. This just about wraps up this thread for me personally. :)
B
23
S
6
G
11
Posts: 1,045
Reputation: 8,061

Post » Thu Jan 29, 2015 11:46 am

I'd summarise my stance like this:

1. I've shown with benchmarks that JS/WebGL performance can come very close to native. It may not do so in all cases, but I think it is closer than people think.

2. The rate of improvement is incredible. When we started in 2011 there was no option for desktop export, the latest IE didn't run HTML5 games at all, and Chrome and Firefox could just about stagger along at 30 FPS even on a high end machine due to software rendering, and mobile was so far out of the question that we didn't actually have any plans for it at all. It's getting so much better so quickly that I think a native export for any platform could be a waste of time since by the time we finish writing it, the web platform will have caught up.

3. We now list previous versions of NW.js at https://www.scirra.com/nwjs, so nobody will ever be stuck with a particular version if it has bugs any more. We'll stay up to date with NW.js updates and if an update is broken, you can roll back easily from that page. The "jank" issue is just a Chrome bug we inherited, and should be fixed in due course, and is not some fundamental shortcoming of HTML5 (as IE11 demonstrates with its very good v-syncing).

4. I think it is a good thing we do not have to maintain NW.js or Crosswalk. This would be a tremendous burden on us also. Chromium is over 20 million lines of code and can take around a whole day to fully build. Maintaining that over 7+ platforms (Windows 32/64, Mac 32/64, Linux 32/64, Android) is a great deal of work and probably best left to Intel's engineers. Also, this probably would not actually be a big help anyway, since the jank bug came from changes made to Chromium by Google engineers, and we aren't going to watch 20m lines of code for breaking changes which Google can't spot themselves. The best solution is just to make old versions available for rollback, which we now do.

5. Working on native exporters is a colossal project and we probably would not be able to write any other features at all on a timescale of years, or possibly ever again, if the work maintaining so many codebases proves to be time consuming. I am confident C2 today would have a fraction of the features it does if we had the added burden of maintaining multiple codebases. Further, it would end up with ongoing portability headaches forever, and some users from other tools complain bitterly how they can never predict which features are available, or will work correctly, on which platforms. That is something I specifically want to avoid, and I do not believe anyone who says "it will be fine if there's just a few features that work on native", it will be an ongoing cause of pain to users indefinitely.

Given my perspective, I find it difficult to see why writing loads of native exporters is a better idea than improving what we already have to a native-equivalent point, which is definitely possible.
Scirra Founder
B
400
S
237
G
89
Posts: 24,550
Reputation: 195,537

Post » Thu Jan 29, 2015 12:44 pm

Ashley wrote:1. I've shown with benchmarks that JS/WebGL performance can come very close to native. It may not do so in all cases, but I think it is closer than people think.

Following from the previous - pure static object tests are all well and good, but games/apps mostly do some calculations as well - as requested I'm attaching the sort of thing where C2 can feel slower than CC would in the same situation.

It's quite amazing how well it runs in a browser already (although the (i3) CPU on this machine goes up like a rocket), but when I had made something similar in CC with several effects on top and sound and more sprites it was a good deal smoother (on a slower CPU). The biggest problem is perhaps not the lack of FPS, but jumps in fps every now and then. A dealbreaker for dynamic action games.

PushThings.capx

Move the mouse around and click (just to see the movement - it lerps the values all the time anyway).
If I wanted to make a Geometry wars style of game in C2 and keep a certain level of graphical fidelity - doesn't seem likely (at least not on average hardware) - while on CC throwing crazy amounts of objects/particles around was the order of the day.

If this is the sort of thing that you talk about being able to analyse and improve - that would be great.
You do not have the required permissions to view the files attached to this post.
B
19
S
6
G
7
Posts: 1,101
Reputation: 6,146

Post » Thu Jan 29, 2015 12:52 pm

I'll have to agree on all accounts with Ashley on this subject.

Although in regards to console support, I really do hope that both Microsoft and Sony will embrace HTML5 and finally give us web game developers the opportunity to publish our games on next-gen consoles as well.

Ashley, are you in any kind of discussion with Microsoft at the moment given their recent statements?
B
43
S
23
G
20
Posts: 155
Reputation: 13,502

Post » Thu Jan 29, 2015 1:07 pm

@Somebody , That's a very nice example!

I am impressed on how Chrome outperforms IE11 and Firefox by far!

On my machine, I get a maximum of 45fps when the mouse isn't moving, 30 fps when mouse is moving/clicked with Chrome.

On IE11 the numbers are 25 and 12. On Firefox is a stop motion show... 6 and 3 respectively.

All of the above on full-screen browsers that are running at 2560x1440.
composer - multimedia artist
www.eli0s.com/en/
B
69
S
27
G
6
Posts: 1,146
Reputation: 10,379

Post » Thu Jan 29, 2015 1:16 pm

eli0s wrote:On my machine, I get a maximum of 45fps


Now this in an interesting figure - in all my recent tests, be it shaders, sprites or whatever - this has been the top fps on chrome the moment something actually starts happening - even with a single sprite at times. It feels like Chrome "decides" it's going to have certain max fps and that's what you get - once again - not that great for action games.

Thanks for trying it, if you have a moment could you try this: https://dl.dropboxusercontent.com/u/132 ... index.html (Press/hold right) - another simple thing I get steady 45 fps on.
B
19
S
6
G
7
Posts: 1,101
Reputation: 6,146

Post » Thu Jan 29, 2015 1:19 pm

Ashley wrote:1. I've shown with benchmarks that JS/WebGL performance can come very close to native. It may not do so in all cases, but I think it is closer than people think.


It might be able to on your machine, but it entirely can't on mine ( see the bottom of this: native-desktop-exporter-for-construct-3_p879512?#p879512 for C2 running at 33% of the speed of CC! ). My machine *is* a little older, but it's not much different than the average machine on Steam's recent hardware survey, which means I can't afford to target for higher-end machines.

However, I do understand that it would be very expensive and time consuming for a native exporter on your part, but I think it would be worthwhile if you want to continue advertising Construct as making professional and powerful games for desktop.

@Somebody, on the second one (racetrack) I get 59FPS in Firefox and 60FPS in Chrome, can't test the first one because I'm still on 192 (195 breaks my commercial game project :( )
Last edited by Jayjay on Thu Jan 29, 2015 1:29 pm, edited 4 times in total.
Construct Classic - Examples Kit Dropbox is a pile of trash and if you need my old files PM me! :)
B
125
S
43
G
17
Posts: 2,232
Reputation: 20,026

Post » Thu Jan 29, 2015 1:20 pm

@Somebody

I get very similar results as eli0s (almost exactly). Firefox is a disgrace :( Which is unfortunate, as it's the browser I always use :/

Your 2nd test gives my steady 60FPS on FF.
If your vision so exceeds your ability, then look to something closer.
Moderator
B
136
S
31
G
87
Posts: 5,498
Reputation: 60,282

Post » Thu Jan 29, 2015 1:35 pm

Jayjay wrote:can't test the first one because I'm still on 192 (195 breaks my commercial game project :( )


I made an exported version and added an fps counter (which should help as get a clearer picture. In my case it cannot top 30 fps in idle state (and it still "feels" a little jerky despite the numbers): https://dl.dropboxusercontent.com/u/132 ... index.html

Here are the actions taking place so you get an idea of how intense (or not) it is:
Image

9017 objects doing some work.
B
19
S
6
G
7
Posts: 1,101
Reputation: 6,146

PreviousNext

Return to Construct 2 General

Who is online

Users browsing this forum: SparklingAir and 10 guests