How Ore no Ryomi saved Spirits of Metropolis

Today, I had one goal: Get the final version of Spirits out for testing and start looking for publishers.

Hooboy, did that not happen.

The newest version was riddled with a game-crippling bug that would freeze whenever you tried to change music. It was a hard crash…only control alt delete would get you out…and that’s one of the worst kind of bugs: the one that tells me somewhere along the lines, Spirits got corrupted. And I have absolutely no idea how to fix it.

***

Way back when I was making Ore no Ryomi (over five years ago, in fact) I was nearing the finish line when something happened…Game Maker told me the game was corrupted. That was that. There was no going back to fix anything, or getting it to work…it was broken, period. Game Maker suggested to load up an old copy. Problem was, the latest backup I had was dated months previous. I had lost months of work, just like that. I couldn’t believe it. I was angry, sad, and heartbroken all at the same time…but, I just picked up where I left off a few months ago and started programming again.

That experience still stays with me to this day…so much so, that I don’t just keep three backups handy. Here’s what my folder has looked like lately:



Thankfully, I was able to successfully reproduce the game crashing multiple times, and with that I went through each file, seeing which one wasn’t crashing. Thankfully I didn’t have to go far: spiritsofmetropolis31merged seems to work flawlessly. So I lost a few days of work (really just a day of work, as I didn’t work on the game from the 26th to today)…honestly, it could have been much much worse. Heck, further testing may reveal I have to go back a few more files. But in the end, I’m extremely thankful that the Ore no Ryomi incident happened…otherwise, who knows how much work I would have lost today.

16 Commentsto How Ore no Ryomi saved Spirits of Metropolis

  1. joe_042293 says:

    It’s very fortunate that you had the foresight to do this sort of thing.

  2. PizzaBoy says:

    You know, there are programs that can attempt to recover files out of a ‘corrupt’ gmk file. I used it once and it recovered my entire game (some 50 megs of sprites, music, and code) without a problem (I think I lost a single music file). I don’t remember what the program was though and I don’t have it anymore (as I stopped working with gamemaker). I think I found it in a post on the GMC.

    And then there is the you-know-what, but that thing is taboo to mention and is the bane of all commercial GM games.

    I’m not saying you shouldn’t do backups, but I do think the above pic is a little… overboard.

    Random off topic-ness: A while back you released the source of Sandbox of God. Is that still uploaded anywhere? I wanted to mess with it, maybe get it working in GM7 and such.

  3. I’d have to disagree with you on this one PizzaBoy, yeah that is pretty hectic the amount of saving. But in reality, that’s only a few hundred megabytes needed, and look what happened. He managed to only lose about a day’s work. That is worth spending a few hundred megs on if you ask me. 😛

    Oh and PizzaBoy, you’ll find the *editable* files here.
    http://www.vertigogaming.net/editible.htm
    Better bookmark it, it’s hell trying to find that file with chubigans’ notoriously bad spelling. 😉

  4. chubigans says:

    I spell it so badly. So badly. 🙁

    There is indeed a non-corrupting program, but only works for GM6 unfortunately. Ah well, it won’t be too much work.

  5. blueflare says:

    Wowza bo bowza! That’s a lotta saves. 😮

    I guess this is just one of the many reasons why you should work on ONR3/KOAC next.

    Just sayin’. 😀

  6. chubigans says:

    : )

  7. PizzaBoy says:

    Got SOG working in GM7 with no errors, but all the fonts stopped working. I think I would have to go through all the code and replace any font references, and boy is this game a tangled mess of code :P.
    I had an idea while looking at it though. I recently started coding my own game engine in C# with SDLDotNet. The way I’m setting up the engine will allow me to port GM games to it fairly easily by changing the GML into pseudo-logic and then into C# (my engine objects will be similar to GM objects, so its just a matter of copying logic). I was thinking as maybe a ‘test goal’ for my engine I would port either SOG or Jumper 2 to C# (since both are open source). Of course, I have no idea if I will follow through with it, but its something to do :P.
    Heh, my comments could almost be a blog themselves. Maybe I should get one of these things…

  8. chubigans says:

    Yeah, my coding is really really REALLY horrible. Literally all my games before I went commercial hang by thin strings. After I make them I have no idea what the code means anymore or how it works, haha.

    I’ve been more careful and clean since then, but yeah…its pretty jumbley.

  9. Them says:

    I actually make extra backups like that sometimes, but not to that extreme :). At least now I know I’m not being paranoid.

    Wow, I just downloaded the editable version of SoG. It is confusing. Do you still use D&D?

  10. chubigans says:

    I don’t use as much D&D as I used to, but I still rely on it. I’d say old games like SOG were 95% D&D. Spirits of Metropolis is about 60% D&D. The other forty are examples from other users, some help I got with coding, or programs that make exporting GML easy (like Particle Designer, the best GM App I’ve seen yet).
    I’m understanding GML a lot more now. But I’m still not fluent in it.

  11. PizzaBoy says:

    Wow, you do? I would think a commercial GM game would be all GML.
    Once you master GML you will never want to use drag and drop again.

  12. I’m certainly not fluent in GML so I probably shouldn’t comment. But I don’t see, even after you’re fluent why you would want to code 100% in GML. Its just as easy to whack in a variable D+D object and hitting in the names as it is to type the variable name in code. They’re both simple and both work. (Of course something’s in code can be expanded considerably so I’ll give you that)

    Anyway, What’s C# like? I don’t know much about it other then it’s Microsoft’s answer to Delphi. Do you find it easy? Have you learnt any other languages before?

  13. Ravenheart says:

    C# is Microsoft’s answer to Sun’s JAVA. C# is an interpretated language, meaning when you compile your app, it doesn’t compile it to machine code but to CIL(also MSIL) which means Common Intermediate Language. At runtime(when you start the app) the .NET Framework compiles that CIL into machine code for your specific CPU.

    The advantage of C#(and any other .NET language) is that there is a so called Garbage Collector which cleans up the resources your app uses. Say in unmanaged C++ the programmer had to manualy free the resources he used once he is finished using them and if he forgets to do that you would get a memory leak. GC takes care of that resource cleaning so its almost impossible to create a memory leak.

    C# is made to bridge the gap between VB programmers and C++ programmers, its easy to use, easy to understand and quite similiar to C++ syntax wise.

  14. Them says:

    While it’s easy to do simple things in D&D, GML is very convenient because its so easy to edit, and you can have a lot more GML on the screen at the same time, making it easier to read. Plus, its so much faster to type stuff in GML than it is to do it in D&D, not to mention the flexibility that GML provides. I personally never use D&D anymore(except to execute pieces of code, which is just GML 🙂 ) because I can do everything possible with D&D so much faster and more effeciently in GML. PizzaBoy’s right when he says you’ll never want to go back again. Once you learn GML, D&D’s a lot harder to work with(or you could say the GML is way easier to work with, D&D is just a pain in comparison)

  15. Them says:

    Sorry, no edit button. I also wanted to say that I’m shocked that you made Spirits in 60% D&D. As good as you are at making games, I would have thought that you’d be more than proficient in GML. It’d take me forever to make a game like the Spirits with what I know now. I guess that its more what each person is good at. I’m more of a programmer, and you’re more of a game designer(plus I can be lazy and often lose interest in projects :S, you’re good at sticking with them, even if you are at least 5 months past the initial deadline now 🙂 ). I’m still amazed by how much you accomplished with D&D, you’d be able to do some amazing stuff with GML. I can give you a link to Carl Gustaffson’s GML tutorial. That’s how I finally was able to understand GML. The reason you might want to try it is that it’s so much faster and easier than D&D, it could cut out a lot of tedious work and make the whole process faster.

  16. chubigans says:

    I learned quite a bit with Spirits, and I’d say the amount of D&D drops with each new game. But DnD isn’t as reliable as GML…in fact, the old engine that fell apart was made with DnD and had to be rewritten in GML, which was a major improvement. Right now I’m having to backtrack a bit and insert some new GML scripts that help ease the memory burden the game puts on computers, as well as the editor being GML.

    So maybe Spirits isn’t exactly 60% DnD…it was at one point, but I’ve had to tone that number down a bit over the last few days. Still, I’m proud to show what Game Maker, at its core, can really accomplish.