Better support for Nw.js game executables?

Post » Sat Sep 09, 2017 10:06 pm

I realize that many people use C2/C3 for browser-based games, but I am using it with NW.js to create standalone games. So I was very put off by the fact that there are virtually no options available for customizing the game's .exe presentation. Here's a short list:

--To change the executable's image icon, you need to download a third party tool (I use Resource Hacker) and replace the default NW.js "compass" icon with the icon of your choice.
--To change the default loading icon when you first open up an NW.js game, you have to manually replace the default icon with one of your own, overwriting it in the resource tree tab. This is not mentioned at all (except the forum posts I've found where other users had the same issue).
--To disable devtools on a completed game, you need to download the standard, non-Construct version of NW.js or similarly, edit the .json data of your version of NW.js for C2 and add an argument to disable calling devtools with F12.
--You also need to separately change the name that is displayed in the game's window (along the top left corner) by editing the NW.js JSON file.
--Last and probably least, no support for installers for a game or easily selecting the default save directory.

I am comparing these features mainly to Game Maker's suite of options for the same tasks. Game Maker has a set of options specifically for these, including setting the splash screen logo and window icon, as well as checkboxes to toggle "show mouse cursor," "allow full screen switching," and "borderless window." Some of those options are covered when you go to export an NW.js project, but for the rest, it's like pulling teeth to get these standalone options the way you want them. Integrating these options into C3 would go a long way towards QoL improvements for NW.js users (instead of changing data in the NW.js installation files and then exporting the entire project to verify that it all worked out correctly).
B
24
S
6
G
1
Posts: 47
Reputation: 1,894

Post » Sun Sep 10, 2017 1:36 am

You have reasonable suggestions. I suggest you get them on here : https://construct3.ideas.aha.io/
B
101
S
35
G
12
Posts: 296
Reputation: 13,686

Post » Sun Sep 10, 2017 6:46 am

Very reasonable.
B
38
S
15
G
3
Posts: 148
Reputation: 4,573

Post » Sun Sep 10, 2017 8:11 am

I'd also really like to have these suggestions.
B
15
S
4
G
1
Posts: 86
Reputation: 1,178

Post » Sun Sep 10, 2017 12:01 pm

Mallets wrote:--To change the executable's image icon, you need to download a third party tool (I use Resource Hacker) and replace the default NW.js "compass" icon with the icon of your choice.

This is tough because automatically updating the images involves reverse-engineering ancient icon formats (literally dating back to Windows 3.1) and in the case of EXEs, the binary format and resource packing format, and how to update resources in a large and complex executable. It could literally take a few weeks per platform to work this out. Meanwhile we have three engineers with months of high-priority work already backed up. Leaving this to external tools seems like the best solution now.

--To change the default loading icon when you first open up an NW.js game, you have to manually replace the default icon with one of your own, overwriting it in the resource tree tab. This is not mentioned at all (except the forum posts I've found where other users had the same issue).

You can edit loading-logo.png directly in Construct 3.

--To disable devtools on a completed game, you need to download the standard, non-Construct version of NW.js or similarly, edit the .json data of your version of NW.js for C2 and add an argument to disable calling devtools with F12.

This does not meaningfully improve the security of your game, if that's what you want. I'm not sure what anyone can do with your game even if they can open dev tools anyway, the code is all minified and already has reverse-engineering protections. If you just want to turn off the option you can already apply the command-line argument from within C3.

--You also need to separately change the name that is displayed in the game's window (along the top left corner) by editing the NW.js JSON file.

This is taken from the project name, so you can already set it within C3.

--Last and probably least, no support for installers for a game or easily selecting the default save directory.

NW.js games don't actually need an installer, so this seems like a benefit? If you really want to make an installer that just copies files to an install directory, there's plenty of free software projects out there that can handle it.
Scirra Founder
B
415
S
247
G
92
Posts: 25,284
Reputation: 200,847

Post » Sun Sep 10, 2017 10:01 pm

Ashley wrote:This is tough because automatically updating the images involves reverse-engineering ancient icon formats (literally dating back to Windows 3.1)


There are libs for this, as well as command line tools, that could be incorporated into your build workflow. Electron's rcedit comes to mind. With your new pricing scheme shortcuts like that don't look too good, honestly.

Ashley wrote:This does not meaningfully improve the security of your game, if that's what you want. I'm not sure what anyone can do with your game even if they can open dev tools anyway, the code is all minified and already has reverse-engineering protections. If you just want to turn off the option you can already apply the command-line argument from within C3.


An argument could be made that you want your game as clean and professional looking as possible. If a youtube reviewer like John Bain or Indiegamerchick or someone of that caliber comes across "leftover debug tools in a release build" by accident, they will rip you a new butthole.

Ashley wrote:NW.js games don't actually need an installer, so this seems like a benefit? If you really want to make an installer that just copies files to an install directory, there's plenty of free software projects out there that can handle it.


While I basically agree the competition offers it, for less $$$. So not having it is a wound left untended.
B
84
S
29
G
32
Posts: 489
Reputation: 20,061

Post » Mon Sep 11, 2017 1:08 am

Eisenhans wrote: If a youtube reviewer like John Bain or Indiegamerchick or someone of that caliber comes across "leftover debug tools in a release build" by accident, they will rip you a new butthole.


Hell if my game was awesome enough to get reviewed by them at all then I'd be pretty psyched 8-) .
B
101
S
35
G
12
Posts: 296
Reputation: 13,686

Post » Mon Sep 11, 2017 5:38 pm

About dev-tools option:

This does not meaningfully improve the security of your game, if that's what you want. I'm not sure what anyone can do with your game even if they can open dev tools anyway, the code is all minified and already has reverse-engineering protections. If you just want to turn off the option you can already apply the command-line argument from within C3.


It's not really about security improvement, but more (as someone else mentioned) game "cleanliness" and allowing the developer to have full control over how the game presents. If a developer plans to release the game on Steam for example, it would definitely come off as a bit sloppy in a finished product. The command line argument is fine with me but I feel like exported builds should have this toggled off by default and instead allow you to manually enable dev-tools if needed (hence the whole "making this a checkbox toggle in C3's options menu would be extremely helpful because many people might not know how to disable dev-tools with command-lines). Of course, this might be better addressed on the NW.js side of things, but at the very least having it as a checkbox option when exporting would be a great QoL improvement.

Anyway, I agree with your points, and I can't possibly understand just how busy you guys are with C3 -- these gripes probably seem absolutely minuscule in comparison! Just keep doing what you're doing :-D
B
24
S
6
G
1
Posts: 47
Reputation: 1,894


Return to General Discussion

Who is online

Users browsing this forum: No registered users and 2 guests