Question about ongoing AGS development and Scummvm support.
Moderator: ScummVM Team
Question about ongoing AGS development and Scummvm support.
Just a curiosity question about AGS support: Since AGS as a standalone engine still continues to this day, it must be a considerably daunting task to keep up with it, with new code, plugins and games (both freeware and commercial) still coming out, Strangeland being one of the most recent ones, which uses plugins which are not yet fully implemented. Do you plan to update the implementation as new stuff comes out, or do you have a milestone you mean to reach?
- dreammaster
- ScummVM Developer
- Posts: 559
- Joined: Fri Nov 04, 2005 2:16 am
- Location: San Jose, California, USA
Re: Question about ongoing AGS development and Scummvm support.
You're right in that it will require work to have to keep the ScummVM engine up to date with the stand-alone AGS. There are a couple of factors that play into this:
1) Upstream bugfixing. Testers have found a bunch of bugs during the testing period that were present in the upstream codebase; they've been exceptionally quick about resolving them one I pass them on, so keeping the two codebases in sync means we can benefit from it.
2) The current AGS codebase we use is 3.x, which they'll be winding down on sooner or later, in favor of a cleaned up, and incompatible, new AGS 4 version. At that point, 3.x will not have further new development done, apart from bugfixes presumably, so it'll be easier to keep ScummVM up to date. Of course, that raises the question of whether ScummVM will support AGS 4 when it comes out, but I'll leave that to the future.. maybe allowing a few years after it's released, to allow it's codebase to settle, and enough games to be made with it to be worth supporting in ScummVM.
As for Strangeland, we're actually lucky that they published the source code for the plugin, so it wasn't that hard to reimplement it in ScummVM. With a few minor exceptions like sound fading that I wasn't sure how to implement; maybe someone can revisit it in the future. But the game should be playable. At least, on release builds, since like many other games it's currently way too slow in nightly debug builds. Hopefully, as further 3.x games are released in the future, they'll use either just AGS itself, or only the known plugins. Or, as Strangeland, they'll release the source code for their plugins.
1) Upstream bugfixing. Testers have found a bunch of bugs during the testing period that were present in the upstream codebase; they've been exceptionally quick about resolving them one I pass them on, so keeping the two codebases in sync means we can benefit from it.
2) The current AGS codebase we use is 3.x, which they'll be winding down on sooner or later, in favor of a cleaned up, and incompatible, new AGS 4 version. At that point, 3.x will not have further new development done, apart from bugfixes presumably, so it'll be easier to keep ScummVM up to date. Of course, that raises the question of whether ScummVM will support AGS 4 when it comes out, but I'll leave that to the future.. maybe allowing a few years after it's released, to allow it's codebase to settle, and enough games to be made with it to be worth supporting in ScummVM.
As for Strangeland, we're actually lucky that they published the source code for the plugin, so it wasn't that hard to reimplement it in ScummVM. With a few minor exceptions like sound fading that I wasn't sure how to implement; maybe someone can revisit it in the future. But the game should be playable. At least, on release builds, since like many other games it's currently way too slow in nightly debug builds. Hopefully, as further 3.x games are released in the future, they'll use either just AGS itself, or only the known plugins. Or, as Strangeland, they'll release the source code for their plugins.
Re: Question about ongoing AGS development and Scummvm support.
As far as I know there aren't any plans to release AGS 4 anytime soon, so that should give you some time to work together. Hopefully the codebase will not have changed so much and ags 4 could be supported in the future. Will continue to hunt for bugs if I'm not clogging up the bug report site. From my point of view Strangeland is not playable yet though, still locks up after the wadjet eye logo with an unhandled 64-bit plugin method call.
- dreammaster
- ScummVM Developer
- Posts: 559
- Joined: Fri Nov 04, 2005 2:16 am
- Location: San Jose, California, USA
Re: Question about ongoing AGS development and Scummvm support.
Finally got around to looking at it again, and it turns out my 64-bit check may not have been needed, since the outer caller in cc_instance.cpp actually checks a global script variable to see whether it has had a pointer set, and if so, discards the return value. So I've committed in a minor change to move check to only be done when a 64-bit pointer is returned without having set the global variable. And verified with a 64-bit build that the error occurred before the change, and doesn't afterwards.
- dreammaster
- ScummVM Developer
- Posts: 559
- Joined: Fri Nov 04, 2005 2:16 am
- Location: San Jose, California, USA
Re: Question about ongoing AGS development and Scummvm support.
Speaking of keeping things synced up to date with the upstream standalone AGS repository, we're also lucky in that only the engine codebase needs to be kept up to date. As you'd expect, a significant percentage of commits are enhancements to the editor and various tools, which could be safely skipped, so it cuts down the amount of time I've had to spend considerably.
Re: Question about ongoing AGS development and Scummvm support.
The editor also sounds like it's the least portable of the ags components, since it hasn't been ported to any platform yet, so you can call that double luck I guess. Makes up for all the trouble you've had in convincing the ags team over the years (which is somewhat inexplicable) It's a shame I cannot code at all, otherwise I'd be helping you with this (and tinsel/noir), but glad to help anyway I can.