Blzut3's Weblog

Weblog ECWolf ECWolf Wiki

ZDoom ceases development 2017-01-08 09:23:03

Randi has announced the end of ZDoom development, in a move that is somehow expected and unexpected at the same time. I do wish that Randi was more open, as I would love to know what all led up to the decision instead of speculating. In the end though this does ultimately mean a lot of good for ZDoom, or perhaps more correctly its children, even if it's not the outcome we wanted to hear.

There is no doubt at all that ZDoom has played a very large role in my life. Not just because I've been a user for more of my life than I have not, but it was the reason I transitioned into writing C++ code, and the first established open source project I've contributed to. More than anything it gave me the experience that I needed in order to be far ahead during college, which in turn led to many great experiences working with Dr. Andrew Sutton. I do not think it is a stretch to say that ZDoom is a large part of the reason that I've been able to participate in the ISO C++ committee meeting in 2014 and landing the job that I have now. Given how long the project has been around, I'm sure I'm not the only person in the community that can say something to this effect. It is kind of funny to think how what might appear on the surface to be just a silly hobby project can turn out to have a real positive impact on the lives of people.

One thing that always impressed me when reflecting on ZDoom is how well it has thrived considering its lack of structured leadership. Even when I became a proper developer for the project, there was no formal communication channel between contributors. Randi, Graf, and I pretty much added whatever we felt like adding and somehow even in this anarchistic environment some fairly unified grand vision of what ZDoom was came through. I make that sound more glorious than it actually is, but when you think of a bunch of people doing whatever they want a stable product doesn't usually come to mind and yet that is what ZDoom usually was. You definitely don't think of a project where people ask for other projects with the same philosophy for other games. A discussion forum for developers and other key members of the community was opened later as inevitably as things grow more communication is necessary, and grow ZDoom did.

One thing that people often don't realize when it comes to open source software is that being open source doesn't mean that people will contribute to a project. That is to say, if you expect that you can start a project on GitHub and you'll eventually start getting people sending in code submission then you'll be quite disappointed. Popularity obviously has something to do with this, but popularity doesn't necessarily imply more contributors. Most projects only have one developer so having two or three would be considered a very successful project. ZDoom did more than that though, after we switched to DVCS the floodgates opened and ZDoom reached a point where it could feasibly became entirely community maintained (with those with write access just pushing code around). It wouldn't be pretty, but it could have been done and that is an outstanding achievement for an open source project.

ZDoom had been growing so well that ultimately the persistent problem became to be a lack of commenting on important issues from the only person that can actually make the arbitrary decisions. Unlike Skulltag which had a problem of a desire of too much control by an otherwise disengaged leader, with ZDoom we would constantly be left with unanswered questions. Most importantly in my opinion was no guidance on releases which really required nothing more than dropping by every few months to take a snapshot. Something needed to be done about this and Randi apparently chose to just let it go. Given how much time my back burner project occupy my mind I can't imagine this was an easy decision to make, but it needed to be done.

Effectively this makes Graf Zahl and GZDoom the new supreme leader, which kind of alienates me a tiny bit. One of the things I derive fun from is toying with old hardware and to that end my development stack consists of a retro PowerMac G4 and Pentium 3 running Windows 98. Even currently trying to build a dual Tualatin for running NT 4.0 on hardware. I know that Graf finds targeting these systems to be entirely pointless, and previously I had agreed that GZDoom targetting these platforms was pointless. With it being the root I'm left wondering what this means. Currently there's not much stopping unofficial builds of GZDoom running the software renderer on legacy systems, but if the philosophy stops being "if it doesn't hold anything back, go for it" then it could be problematic. Removing the DirectDraw code might seem worthwhile for example even though I don't think its a big deal keeping around.

It is perhaps not unreasonable to consider that this may be the excuse I need to make my exit from coding for Doom. Since I got a full time job I haven't had time for everything that I want to work on. This is a good problem in my mind since I'm never bored, but I can imagine in recent times I'm gaining a reputation for promising the world and delivering on nothing. Having less on the mind would certainly alleviate the issue, but I don't know. I wouldn't ever truly be gone since I still have the auto builds and the code sharing with ECWolf. That's really what makes it harder than anything else, if ECWolf is using (G)ZDoom components then I potentially put myself at the mercy of unfavorable decisions on those components if not directly involved to some extent. (Again going back to platform support I can only support in ECWolf a subset of what the libraries support.)

In any case though I'm excited to see how things unfold with the artificial barriers lifted. The previous key features of GZDoom and QZDoom didn't interest me since in my opinion the only way to play Doom is with the Carmack renderer, but as long as that remains an option GZDoom (the future merged GZDoom/QZDoom version) will likely remain my port of choice.


© 2004-2024 Braden "Blzut3" Obrzut