Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

GMEdit

A high-end code editor for all things GameMaker · By YellowAfterlife

project.gmx erasing files

A topic by TNJGames created Feb 12, 2023 Views: 183 Replies: 3
Viewing posts 1 to 4

When using GMEdit to develop, at some point between writing code and flipping to GM 1.4 to compile the game code the project.gmx becomes populated incorrectly.
It arbitrarily overwrites the <script> value with 1 or more files as duplicates. And Overwrites the rest. Causing game maker IDE to see duplicate function names and lose code. However, the script files are still there on the harddrive. Just the XML is wrongly populated.
See "reloadSave" populated incorrectly under "page_createDeck" , overwriting whatever fils were actually there.
As it also exists correctly at the bottom of the XML.
In summary, reloadSave duplicates throughout the XML making it look like other scripts are gone.

<scripts name="page_createDeck">

      <scripts name="deckCreate">

        <script>scripts\reloadSave.gml</script>

        <script>scripts\deck_clickLeft.gml</script>

      </scripts>

    </scripts>

    <scripts name="saveUtil">

      <script>scripts\reloadSave.gml</script>

Developer

GMS1 IDE is known for being spontaneously allergic to external file changes if the said files have been opened in the IDE.

I’m not aware of any better way around this than reloading the project (File - Recent Projects - (first item)) before running if you’ve added new resources through GMEdit or git. In the last few versions of 1.4 you can also disable thumbnail generation in preferences, which makes the editor load projects much faster.

There once was a plugin to run GMS1 projects from GMEdit, but it could not be used unless you had access to certain non-public versions of the program or performed specific illegal manipulations with your installation - the usual behaviour is that GMS1’s GMAssetCompiler.exe relied on the IDE to validate licenses and thus could not be invoked without it.

thanks for the response. I went down a similar rabbit hole and can't even access my license for 1.4 anymore after the Opera merge. I thought if I validated the license I could offline use GMAssetCompiler at least for a short time before having to open the IDE again.
I was also trying the live compile on 1.4 and couldn't tell what was causing the project to erase the project XML sections and I think it was circling back to the live compiler and breaking.
I just installed game maker 2. I really didn't want to mess around with a new version but here we are. Of course out of the box it seems project importing just doesn't work.
After some debugging I found out that sprites and sound could be imported if they were in a project alone. The issues arrived when script files came into the equation. The import project stuff seems to never work if there are scripts to convert.
I actually generated most of my 1.4 assets through a conversion script I made that converted Javascript on an opensource project into the game maker XML files.
When moving to 2.X it seems those GMX XML files now contain GUIDs on everything, so a simple conversion didn't seem possible without a way to generate my own GUIDs for game maker to use. I couldn't find any resources on how game maker even made those IDs to make my own.
Luckily, and absurdly, script files are just plain text in 1.4 and 2.X, so it seems I can code my own conversions here. As theres no GUIDs. So thankfully the assets imported.
I have been coding in GM 1.4 for a long time and the UI has made clean code standards very difficult in many different windows.
I am digging this open source IDE approach, even 2.0 has an odd coding interface.

Another oddity in gm 1.4 is after so many sprites texture pages take ages to load. So far it seems 2.0 doesn't suffer in this way. Though, in 1.4 you can 'disable' entire pages which is helpful (except you can't see the sprites...).

Anywho, hopefully 2.0 works out better.

Developer

I couldn’t find any resources on how game maker even made those IDs to make my own.

Should you need this in the future, any GUID will do. In GMEdit, I just use random characters (without respecting the format) and it works.

Later versions (2.3 and newer) mostly eliminate GUIDs (except in sprites).