First off, this software looks fantastic. I've not come accross it before in the UK education sector and the following deployment issues may be part of the reason why.
Context:
Deployment to a school network, where any one of 1000 students would expect to continue a project on any one of 600 Windows computers.
Under normal circumstances, i would deploy an application to the local hard drives of each computer and options / save files would be saved to the students network space.
Programs are stored on the computer, user data is stored on the file server (in the user's homedirectory accessible via the Homepath variable http://environmentvariables.org/HomePath )
I can see that "extracting the program to a non-default location" has been discussed before, but there are still two issues i can't work out when attempting to deploy it this way:
Issue 1 (minor)> I can't work out how to centrally disable "automatic updates". Is there an equivalent of the options.cfg file available for version 5?
Issue 2 (major)> I can't see how to force a non-default working / save location. This is often achieved either via the registry, an options file or by using the "Start In" (or working directory) set on the shortcut.
Hope this post is okay, it's my first post on this project and it's entirely possible i've missed something or posted in the wrong place!
Thanks for listening!
Matt
There was a simmilar request some time ago and a new start parameter has been introduced that disables the update check: --disable-update-check
@4ian or @blurymind should be able to tell you more.
For Issue 1, yeah disable-update-check seems broken.
For Issue 2, can you let me know precisely what would be required:
In any case, know that you can download the GDevelop windows installer (.exe file), extract it with 7zip or another archiver, and you can re-zip it or distribute it as you wish. So you can copy/deploy GDevelop manually according to your deployment system :)
Let me know and I'll see what I can do.
Change where user options are stored? I think they are somewhere in userdata but can't be sure if they are global to the installation or to the current user. But maybe some start parameters can be added to override a setting that you want to change - knowing that settings are currently quite limited anyway.
Setting are saved in a file somewhere in :
AppData\Roaming\GDevelop 5\Local Storage\leveldb
This files are database files, we can't open it or edit it easyly.
If you copy/paste all this files on another PC you copy profile and settings from GD5.
hey @4ian and @Bouh - thanks for the responses. I think i over-complicated my initial post, partly in exploring different potential approaches to the same core problem. I've responded in-line below, though i think the only significant discussion is on the variable used via app.getpath(name). :)
I really appreciate your time on this. If you need to me get more info / test anything / separate the issues into different posts, let me know.
Kind Regards,
Matt
For Issue 1, yeah disable-update-check seems broken.
I can confirm that --disable-update-check appears not to work in v5.0.0-beta72. Should i raise an independent ticket for this?
For Issue 2, can you let me know precisely what would be required:
- A save location for new games that you can customize? (currently, it's always "GDevelop projects" in the user folder - is this what you want to change?). Note that a way to do is maybe to ask your students to copy a empty game file to their home folder and only work on this. Also right now GDevelop is getting the user folder using what should be equivalent to the "homepath" variable (the API used is this one: https://github.com/electron/electron/blob/master/docs/api/app.md#appgetpathname)
It is indeed the "GDevelop Projects" folder which i refer to.
FYI, on my Windows Network, my key system variables look like this, though there is also a My Documents redirection which isn't listed in the normal variables:
APPDATA=\SERVERNAME\USERNAME\Application Data
HOMEDRIVE=N:
HOMEPATH=\
HOMESHARE=\SERVERNAME\USERNAME
LOCALAPPDATA=C:\Users\USERNAME\AppData\Local
USERPROFILE=C:\Users\USERNAME
It appears that the "Home" variable returned by electron/app.getpath(name) is the same as "UserProfile", rather than "HomeShare".
On that page though, there is a "Documents" variable, which presumably will respect my redirected "My Documents" folder. I suspect this variable might be preferable to the "Home" variable, but i lack the skills to test it! Whilst "My Documents" on Windows is necessarily identical to the HOMESHARE variable, it is possibly a more sensible choice (if app.getpath(name) returns it as i hope it does).
- A way to change the program "working directory"? But in this case I would need more details about the problem (if there is any) because in theory nothing should be done in the GDevelop installation directory by itself. Preview of games are done in a temporary folder that is obtained from the operating system (so should not be a problem for deployment).
This would be irrelevant if saves went to the documents variable, rather than the home variable. I was exploring different avenues to address the same core problem.
- Change where user options are stored? I think they are somewhere in userdata but can't be sure if they are global to the installation or to the current user. But maybe some start parameters can be added to override a setting that you want to change - knowing that settings are currently quite limited anyway.
In any case, know that you can download the GDevelop windows installer (.exe file), extract it with 7zip or another archiver, and you can re-zip it or distribute it as you wish. So you can copy/deploy GDevelop manually according to your deployment system :)
Whilst unzipping using 7zip didnt work ( i get "Data error : Uninstall GDevelop 5.exe"), simply installing and then moving the folder from "C:\Users\USERNAME\AppData\Local\Programs\" achieves the same result :)
Should i raise an independent ticket for this?
Not for now, I'll try to give a look - you can always ping me again here if it's not working in the next version
It appears that the "Home" variable returned by electron/app.getpath(name) is the same as "UserProfile", rather than "HomeShare".
Yes, sounds like app.getPath("home") will return what is in UserProfile
Whilst "My Documents" on Windows is necessarily identical to the HOMESHARE variable, it is possibly a more sensible choice (if app.getpath(name) returns it as i hope it does).
Documentation says that it returns "Directory for a user's "My Documents"" so seems like something that would work for you yes.
I don't have any issue with changing this, this might indeed be a more sensible default. I'll just take a look to ensure that it returns a sensible folder on macOS/Linux and will change it for next version (or will use it only on Windows and keep what we have already for macOS/Linux if there is any problem - but I'm fairly confident that this maps to a proper directory on all OSes).
Hopefully that should solve all issues you have about deploying and using GD on your network :)
Whilst unzipping using 7zip didnt work ( i get "Data error : Uninstall GDevelop 5.exe"),
I never tried myself but you're sure you've done with on the installer downloaded from the website?
Anyway, if you can copy/move the folder that should be fine :)
I fixed --disable-update-check, turns out that the first argument was always ignored. So you can "hack" this by calling GDevelop with --disable-update-check --disable-update-check as arguments ;) (remove this hack once the next version is out)
Thanks v much @4ian! I'll keep an eye out for any updates regarding the documents folder and have a play with the disable-updates variable(s)!
Have a great weekend and thanks again for your time on this!
Well, wow. Thank you so much @4ian.
I've just downloaded the beta74 release, installed it. Copied the GDevelop folder to a read-only network share and pushed out a shortcut.
From my initial test, it seems to work perfectly. The new save location is picking up the users network drive as inteded! Obviously, i can't test the update functionality until the next update springs, but i've set the single parameter, so we'll see!
Thanks so much for looking at this for me. :)
For what it's worth, i've posted on Edugeek, which is the place where network managers and IT teachers tend to bounce around ideas in the UK:
http://www.edugeek.net/forums/coding/207736-gdevelop-updated-network-friendly.html#post1776942
Thanks again!
Now worries :) Just keep an eye on beta 75 which should be out soon as it's including a fix for the events sheet not refreshing after a change (workaround is to click anywhere, in the meantime).