<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
</style>
</head>
<body class='hmmessage'>
Good morning everyone<br><br>I've just read the very interesting e-mails sent to -devel last night, and I'd like to share some thoughts too.<br><br>I'd like to speak about ITE first, as I'm the current engine maintainer of the SAGA engine.<br><br>(note: ITE = "Inherit the Earth: Quest for the Orb" and IHNM = "I Have No Mouth, And I Must Scream")<br><br>The SAGA engine is based on the old reinherit project, plus source code which we have been given from<br>the current copyright holders (Wyrmkeep). The engine was used for ITE and later on for IHNM. It was<br>then used for another game, Nick of Time, which was sadly never released. Then, the engine was<br>rewritten to be more object-oriented, and two more games were based on it: Dinotopia and Faery<br>Tale Adventure 2: Halls of the Dead (which is in fact an RPG game, not an adventure).<br><br>Several people have worked on this engine, including h00ligan/ajax3184 (I hope I got the username<br>right), sev and eriktorbjorn. When I first started working on the engine, ITE was supported with some<br>glitches and unexpected crashes (which were related to MIDI music). IHNM was partially working, with<br>several glitches and major bugs.<br><br>I joined the team 3 years ago, and started working on the SAGA engine (and partially on the AGI engine)<br>back then. This was the first time I was involved with an OSS project. Personally, I can blame myself<br>for several things. For example, I haven't been very good with communication, and I wrote code which <br>in retrospect I should have tested more. Speaking for myself, it has been a great learning experience<br>coding for a project like this. I've improved my programming skills based on the observations from others<br>as well as from code I have seen from other developers.<br><br>It is a fact that ITE was problematic in two major stable versions. There were several different versions<br>of the game, and the major differences were in the way its audio files were coded, as well as the<br>endianess in which its data files were saved in. In version 0.11.0, the game was not playable in some<br>platforms, because I had worked back then to replace the numerous different detection entries for<br>each version with calls to File::exists(). That proved to simplify things a lot, and everything was<br>working fine in the major desktop platforms (i.e. Windows, *nix and MacOS). Then, there was the<br>major change to the file system, based off the GSoC work. This was all great, but as LordHoto<br>mentioned, it broke File::exists() in several platforms. Given that SAGA is one of the few engines<br>that use exists(), I believe noone had tested the SAGA games in platforms where exists() was broken.<br>(which were less popular platforms). <br><br>In ITE, we also bypass the copy protection of the game, with permission from the current copyright<br>holders of the game. This copy protection was shown halfway through the game (at a door in the rat<br>maze). This special door was in fact a bit different from other objects in the game, as the protection<br>would kick in when the player wished to open it, which lead to some glitches at that part of the game.<br>When trying to fix one of these glitches, I accidentally broke the game, and it would crash when<br>exiting the rat maze area. Hence, version 0.11.1 was released, which fixed the problem in the engine<br>itself, as well as the problem in the file system backend. The two issues were not related to each<br>other, but they affected the same game.<br><br>In version 0.12.0, another issue was fixed, which was in fact a regression from the changes with IHNM:<br>an animation in ITE was all wrong. That issue was reported some days before the actual release of<br>version 0.12.0. I then went to fix that particular issue, but this also lead to another regression, which<br>affected a different part of the game (an animation sequence of a storm), causing a crash. There wasn't<br>any subsequent stable version of ScummVM, so this problematic scene could be passed with an earlier<br>stable version, or the current unstable version.<br><br>The issues themselves weren't found out till after the stable versions were released, because there<br>wasn't sufficient testing, as LordHoto mentioned. The problem is that these games aren't as popular<br>as the more well-known Lucasarts games, and during testing, people didn't try to complete them in<br>non-desktop platforms, which were some of the reasons that the issues weren't discovered until it<br>was too late. Another issue is that there aren't frequent builds of the unstable version of ScummVM,<br>which means that issues that appear in certain platforms won't be discovered till a stable version of<br>ScummVM has been released.<br><br>So, to sum it up, although testing can greatly help in determining these issues, the main problem is that<br>all games need to be tested under all platforms that ScummVM runs under, which is a very lengthy and<br>hard process. Unfortunately, such bugs might pop up, especially in engines that are actively developed<br>and new features are added. I'm not sure what the best course of action is, other than having regular<br>builds of the unstable version for all platforms, so that people can test all games properly. Unfortunately,<br>this is not easy...<br><br>I'll try and reply to the other issues mentioned too<br><br>Regards<br>Filippos Karapetis<br><br><br /><hr />Windows Live™: E-mail. Chat. Share. Get more ways to connect. <a href='http://windowslive.com/howitworks?ocid=TXT_TAGLM_WL_t2_allup_howitworks_022009' target='_new'>See how it works.</a></body>
</html>