19
« on: April 11, 2004, 07:33:26 PM »
Hi there all forum members.
I started using WME about a month ago after seeing a post from Marek at his own forum at adventuregamers.com regarding this engine. Till then I had been testing AGS for about two months. Since AGS is a very good and flexible engine I wouldn't normally be seeking to replace it but I had a very big problem with its code management system. It has one global script, one global header and one script per location/room/scene. That's it. I've been writing code for years now and I know that managing your code successfully in large-scale projects is absolutely critical. I've been only testing it and already I became lost in all the functions I coded into these few files. What would it be like with a full-scale game?
Another thing is that the scripts in AGS are not simple text files but instead they are saved in binary form together with the rest of the game/locations data. This way it is very difficult to keep them under any kind of source control software as is customary with big projects having multiple people working on them.
Last thing, it was extremely painful for me to go back to the old pre-object-oriented days. A bunch of functions crammed together in a few files is not my idea of good coding practice anymore...
As it is, I tried WME after reading Marek's post and fell in love with it. It's object-oriented and I can manage my code in virtually any way I like. And the source files are, as they should always be, text based.
There are a few things that AGS accomplishes better than WME (e.g. the walk-behinds in the scenes - can't something be done about it?) but overall, WME is, by far, my choice.
One thing bothers me, though, and that's the stability of the engine. I managed to crash the engine quite a lot with my tests. Most of the time it was my fault, of course, but still, the engine just crashed without any clear explanation of the problem. I had to start guessing that some control's definitions crash the engine if the text alignment of the control is written with double quotation marks or not (i.e. left as opposed to "left" or vice versa) and this is only one small example.
Most of the time I manage to solve all these things eventually but I'm stuck now with a weird crash when my game loads a certain entity (with LoadEntity), my inventory has at least five items (doesn't matter which), and my dialog with a certain NPC has at least three responses. If all that is true, when I choose the first (and only the first) response during the conversation with the above-mentioned NPC, the engine crashes. Go look for the source of the problem now with no debugger and no programs like BoundsChecker or Purify. I'm sure many of you are thinking that I'm making this up but I'm not, really. It's true that all the things I mentioned as leading to the problem are virtually unrelated to each other at all, but in the low level, if any of them has a bug and it writes onto the memory space of another (which is really common when coding in C++, for instance), then bang, it blows up in your face.
Now I'm not sure this is a memory buffer overrun bug in the engine or just yet another stupid mistake made by yours truly, but if the game crashes instead of giving a clear error, how am I supposed to find the problem?
Am I the only one with this kind of problem? Does anyone have any experience with such problems and can guide me in ways of dealing with them?
Last note, I know it's my first post here and all I've done is criticizing the engine. Well, just for the record, I think that in spite of its temporary shortcomings, WME might as well be the best engine out there for adventure games and Mnemonic has done quite an elegant piece of work here and thus earned my deepest respect. I know and understand very well that this engine is a work-in-progress and as such, bugs are an inherent part of it. Software needs time and a lot of versions to become ripe somewhere in the future.
How's that for a first post? I planned to just say hello and maybe ask some question and look what happened...