Wiw wrote:Where can I download older versions of ECWolf?
http://maniacsvault.net/ecwolf/files/ecwolf/1.x/
enderandrew wrote:At some point, would it make sense to try and sort of the Wolfenstein-specific features into a patch set that could be re-applied GZDoom if/when you ever want to update it?
Not really. The two engines are very similar in construction, but there's a very large number of small differences that are just not practical to factor out. More importantly the Wolf3D engine didn't provide as much of a framework as Doom to build upon, so there are a lot of redundant formats I need to support that I really don't think the GZDoom code base should be cluttered up with. Lots of what would normally be considered questionable heuristics as well.
Overall I think it makes a lot of sense for these to be separate projects as it allows me to make different trade offs when necessary in order to best represent the games that ECWolf supports.
enderandrew wrote:Or rebase the ECWolf code on a new release of GZDoom at some point?
ECWolf is based off of Wolf4SDL with some GZDoom things mixed in. This mostly includes resource management, a few parsers (but not all since DECORATE for example is new), and some OS interaction. I have rebased these bits from time to time, but I have to be careful now since ECWolf is dual licensed so I can only use code that is still licensed under the BSD.
(I may eventually decide to go GPL only with ECWolf, but I really don't like the restrictions on the GPL and all the oddities that it brings so dual licensing has been my way to force all new code to be licensed permissively.)
enderandrew wrote:If nothing else, there are probably old bugs you inherited from ZDoom that are fixed in recent GZDoom releases.
The code I use isn't very volatile so I don't usually get reports of bugs that were fixed in GZDoom, but ECWolf has in many instances exercised code paths that were rarely or never traveled in GZDoom. Some of these fixes made it back upstream, and in at least one case I fixed an issue which is not fixed in GZDoom due to backward compatibility. (Edge case in texture loading ordering that only really affects ECWolf due to some shortcuts taken internally.)
Which of course brings up another point, being a separate project I'm able to utilize hindsight to hopefully correct mistakes that are just being kept around to support older mods. For example ECWolf's DECORATE dialect doesn't suffer from the issues that required ZScript to be a whole separate language. (This is not commentary on ZScript, just saying that ECWolf's DECORATE dialect has a lot more flexibility as a result of hindsight.)
enderandrew wrote:I may be in the minority, but I'd almost like to see this just get merged into GZDoom (even if you have it spit out separate binaries) so you can focus on supporting Wolfenstein features, but inherit all the other aspects of GZDoom development.
If the binaries were split then the goal could equally be served by a libzdoom which includes the common pieces. I have thought about trying something like this in the past, but since ZDoom wasn't designed to be a library there are some aspects of the core bits that would make such library probably more work than its worth to factor out. Of course if someone were to take on such an effort I would look into using it with ECWolf provided it's BSD or LGPL licensed.