December 17, 2011

So, WTF happened ?!

Yeah, I should apologize for the lack of update, so here we go : Sorry (on the other hand it's not like you've paid for the game or anything)! Not sincere? Yeah, you're right, what you deserve is an explanation of the "why". In fact, several things happened roughly at the same time. Let's summarize:

First, from late September to early October it was "vacation time" for me. Most of this time I wasn't even in front of a computer to explain what was going on. I also decided to buy a shiny new PC and upgrade from WinXP32 to Seven64 to take advantage of it. That is when everything went awfully wrong.

After the installation (and playing a few games, of course), I sadly discovered that the version of Delphi (it's the language used to write GRA) I was using  wasn't even compatible with this 64bit OS at all. So, never mind, I'm a programer, I have to keep up with the technology and all that jazz, so I bought the (ridiculously costly) upgrade to Delphi XE2. But, of course, given the sad state of the delphi/pascal community, several libraries I am using were totally incompatible with this new version (especially the graphical one). Being unable to fix those libraries myself (I know nothing about them, and it's very far from my area of expertise), all I was able to do was to wait. So I waited approximately one month before the said library was stable enough to be used again. Woot! GRA source code can be compiled again ! But, Ooooww... It crashes on startup. It's late November now. I read and debug the code, and it seems that when I create a L-shaped building the game crashes completely because, somehow, setting a variable X to 1 has a result of X being equal to -1875, which basically means that *somewhere* in the 30k lines of code there's an undetected issue that doesn't trigger any kind of warning beforehand, yeepee ! Of course none of that nonsense happened before the update.

At that point in time I was so fed up with GRA that I spent most of my free time in Skyrim robbing and killing everything that was not nailed to the environment or immortal. A thing that I also did in Saint Row 3, btw. But let's stay on topic. Well, I did not spent ALL my free time playing games, I also wrote tons and tons of technical documents regarding the missions, dialogs and dungeon systems but it's kinda useless until the game can be fixed.

Anyway, now I am looking at the GRA source code again, and to be honest, I am not 100% sure to be able to fix all the critical bugs introduced by the new version of Delphi (sic), because there is dozens of them and the debugger offer little to no help to locate them (as they are apparently deeply hidden in the lowest layers of my code and it only warns me when it's way too late). But, on the other hand, I am kinda proud of the engine I built behind the game itself so discarding all that and starting from scratch again is not really an option either.

So what's going to happen now is this: During the next weeks I am going to thoroughly read all my source code (and god, it will take more time and less enjoyment than reading the Robot and Foundation cycles from Asimov) and asset if I can (or not) continue onward with GRA. If so, you can expect 32 and 64 bits releases of the game and new regular updates. If not, which is, at the moment, the most probable, I will discontinue the GRA roguelike, and start anew (sort of, as I will be using large parts of the engine) with a more focused game.

Cheers,
SK.


5 comments:

  1. Rough doings, but I wish you all the best. The only thing I can think of is to haunt some developers also doing Delphi/Freepascal Roguelikes to see if they've any insights, or even just PascalGameDevelopment's forum as there's a mass of talented folk lurking in those parts.

    ReplyDelete
  2. Yeah, I skipped a few more personal things, but all in all it was a really shitty period. Thanks for the kind words, though.

    There's a few issues with what you are suggesting (at least atm), one being that I am not going to release my whole source code. Because my AI code is fast, adaptable and i'd love to make a living out of it. Anyway, I can't post a single erroneous function to a board to get an answer, because like i said in the post, when i set X = 1 in the said function and that X = -565648 the next line it means that the issue is buried much deeper in the code (basically, somewhere 'i' fucked the ram). If the issue was located in a single function / procedure i would have corrected it by now (my IRL job has often been to debug 3rth party code so i know my way around a debugger).

    Also, I'm sure that the free pascal community is still alive and well, mainly because it's linux focused. But between my work and (mostly tbh) the habits I chose the other way. Now that Delphi has nothing to do with Borland anymore, Delphi *will* die, and the FP community can't really help because it's unfamiliar with the tons of undocumented changes between Borland Delphi and "Embarcadero" Delphi".

    Anyway, like i said, i will re-read the whole thing, and try to correct the issues. If I'm unable to do so, it may be a good news too, as i will probably move toward more modern technologies.

    ReplyDelete
  3. Well, I'm pretty sure you need some support right now, let it be known that some of the community is still alive! I've been checking this website almost daily since your last update and I'm very glad to know you're alive! I don't have much to say or contribute, but I'd just like to let you know that I appreciate your work and I wish you luck and patience in your upcoming works!

    ReplyDelete
  4. I don't worry too much about the community, it will come back whenever a new version (or game) is released, thanks to Reddit and Google. And btw, it also seems that I am not the only one raising from the grave, check the rogue survivor blog.

    However, I am definitively not sure to continue GRA as it is, even if I manage to debug it. The general feeling, UI and engine will remain more or less the same, but the game itself will be more focused and have a specific theme. I still need to choose between several ideas i have, and will probably post about that in a few days.

    Cheers,
    SK.

    ReplyDelete
  5. I don't know whether it will help, but you might want to try static analysis. John Carmack raves about it here: http://altdevblogaday.com/2011/12/24/static-code-analysis/

    I found this tool with a limited, free evaluation version available: http://www.peganza.com/index.htm#PAL
    It seems to only support up to Delphi XE however. I don't know anything about Delphi or whether that would be satisfactory.

    This: http://www.campwoodsw.com/
    Also seems to support Delphi and appears to be totally free.

    And one more: http://sourceforge.net/projects/dca/
    Seems to be free again.

    I stress that I have no experience with any of these programs and they could easily be dead ends. But if you're faced with abandoning this project, you may want to consider a wild goose chase like these first.

    ReplyDelete