Detect orphaned assets in Game Maker project.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
assets
org/json
.gitignore
GMOrphanedFiles.java
GMOrphanedFiles.mf
README.md
go.bat
jar-me.bat
output.txt

README.md

GameMakerOrphanedFiles

Sometimes when you're working on Game Maker projects, you stop using scripts or sprites or objects but don't delete them. This leads to bloated projects, and can make it hard to find the assets that you do need. This will hopefully make it easier to detect those assets, so that you can decide if you want to delete them.

Note: I'm currently writing this for Game Maker Studio 1. If I ever finish this and there's demand for it, or if I get bored enough, I'll make a version for Game Maker Studio 2, also.

24 October 2018: am working on a GMS2 version. No idea when it'll be done.

Usage

  1. Make sure you have Java installed. It should probably be at least Java 8, too. I don't know what happens if you try running this with like Java 5 or something. Probably nothing good. If you're interested in cloning this project, I'm guessing you already have that, though.

  2. go.bat is a Windows Batch file that automatically compiles and runs GMOrphanedFiles.java. Because I've had experience with Java failing to recompile changed classes, it deletes existing ones before it does this. This probably is a bit of a time sink, but because this project is so miniscule it shouldn't really matter.

  3. If you have a Game Maker project that you want to be the ginuea pig, copy it to this folder under the name project.gmx. Or edit the batch file to point to an existing one.

  4. jar-me.bat is for when you have something that works and you want to turn it into a jar. I couldn't figure out how to make it automatically increase a version number, though, so the jar it spits out will just be called gmof-x.x.jar and it's your job (or mine) to give it the right number.

Other than that, follow the directions, they tell you what to do.

Remind me to do this at some point

  • My ginuea pig project doesn't have any Paths or Timelines in it, so I can't open them up and see what's inside right now

  • GMS2 Rooms can have other kinds of asset layers like free-floating sprites and paths and maybe some other things, but I don't know how those are stored right now

Some extra credits

GMS1 projects are stored in XML, which Java can read on its own. GMS2 projects are stored in JSON, though, and I couldn't find anything built-in to Java that lets it parse JSON, so I needed to use someone else's code to do that. This code, to be specific.