• Hello [name]! Thanks for joining the GMC. Before making any posts in the Tech Support forum, can we suggest you read the forum rules? These are simple guidelines that we ask you to follow so that you can get the best help possible for your issue.

Discussion [Suggestion] Use "/assets/" working_directory on Windows (like Ubuntu does)

Samuel Venable

Time Killer
Ubuntu currently stores all of its external assets, (besides the executable itself), in a subfolder called "/assets/". Here's the basic file structure layout for the Ubuntu module (and the 3 Raspberry Pi game ports @Mike made):
  • "runner" (linux executables don't have a file extension)
  • "/assets/game.unx" (same file as data.win on Windows)
  • "/assets/icon.png" (the 64x64 pixel icon file for the game)
  • "/assets/options.ini" (compiler settings configuration file)
  • "/assets/*.ogg/*.mp3/*.wav" (all audio and sound files)
  • "/assets/*.*" (All included files imported in the project)
Since the Ubuntu module and the Raspberry Pi WIP module both already use this file structure, I think Windows should work the same, to both make it more universal, and give the end user less files to look at when they unzip the game, (due to everything but the executable being put in the "/assets/" subfolder). It just looks less messy this way, IMHO.

Or, perhaps instead of making that the only option, perhaps making a Global Game Settings / Game Options checkbox that determines whether to put that stuff in a subfolder (for both Windows and Ubuntu) and a textbox for when it is checked to specify the name of that subfolder (like what we can already do with the HTML5 module, where "/html5game/" is the default).

This would be very useful for all those users who have been asking YYG to "bring back the single runtime executable" feature. Even though this will not make it all one file, it will make it better organized and leave much less to see in the root directory of the application.

Due to how things are set up in the GMS 1 and 2 runners, this feature may only work with the YYC targets. The VM runners rely on an IFF file (i.e. data.win, game.unx, etc.) to determine where stuff goes, so the location of the IFF file itself can only be set by YYG either way.

Since Mac apps are really just a folder, it's good that all those files go inside the app itself like it already does, so no need for a change on Mac. Similarly for Android and iOS where they are basically just a ZIP.

Anyone like these ideas?
Last edited:


ᴏɴʟɪɴᴇ ᴍᴜʟᴛɪᴘʟᴀʏᴇʀ
Forum Staff
If this goes unanswered but there would be demand, it is possible to create an utiltiy that would reorganize asset files and rewrite external paths (by least for sounds) inside data.win/exe for them not to clutter the main executable directory. Yesterday someone was asking me about that particular thing (moving audio files to a sub-directory) because their contract project had reached the point of having 300+ voiceover lines and beta testers are starting to have trouble finding the actual executable in that pile of files.


aka fel666
If this is how its done on ubuntu, It should also be done or windows. (Or not be done on ubuntu).
If our code requires to access this, it would be nice not to have to do an OS check every time..


Seriously, on Ubuntu all included files are in same directory than executable ? This should be fixed ASAP, as it's just making a big mess.