Gamasutra is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Gamasutra: The Art & Business of Making Gamesspacer
Postmortem: Raven Software's Heretic II
View All     RSS
July 2, 2020
arrowPress Releases
July 2, 2020
Games Press
View All     RSS

If you enjoy reading this site, you might also want to check out these UBM Tech sites:


Postmortem: Raven Software's Heretic II

May 21, 1999 Article Start Previous Page 3 of 4 Next

What Went Wrong

1. No Linux code at launch.

One acknowledged misstep we made was not commissioning a Linux Server version of Heretic II to be released at the same time as retail. Half-Life demonstrated the wisdom of having Linux code available at launch time; witness the number of servers around on launch day. Heretic II never caught up on this, not even to this day. We have a Linux version in the works now, but it's been delayed by the Expansion Pack and the Expansion Pack bug fixes, but it may be a case of "too little, too late".

2. Don’t rebuild your physics system unless you really have to.

We did this, and it turned out to be a much larger albatross than we had imagined. It didn’t help that our resident physics expert left for greener pastures after implementing it, either. The original idea was to integrate the new physics systems with the AI more tightly, fix one or two legacy bugs with physics from the Quake engine, and add some cool features like proper friction and inertia. As it turned out, we introduced more bugs than we fixed, and the AI integration was never used.

Screenshots from Heretic II [zoom left] [zoom right]


3. Too many cooks can spoil the stew.

Since almost every programmer at Raven had been into the code base at one point or another, there was a fair amount of redundancy in routines, and so on. It’s a credit to lead programmer Pat Lipo that things went as smoothly as they did. However, inevitably, coding conflicts arise, as do competing subsystems. I think it would be safe to say that we found the point at which too many clever people working together becomes more of a liability than an asset. It is worth pointing out that the reason we had so much programming power on this project had little to do with the quality of the core team, and everything to do with the sheer quantity of work, and looming deadlines.

Concept sketch from Heretic II

A good example of this is what happened with the client effects DLL. Although this was an extremely helpful system, it also turned into a large pile of messy code. We ran into several problems both with removing some constantly occurring effects (such as the sphere of Annihilation). If the packet with the removal code got lost, then we were in trouble. Mostly, this was taken care of by the Quake system, which automatically removes entities when it loses track of them. However, there were circumstances where client effects with no owner were set off into the world, and then left to the effects system to be removed. We sometimes had some problems getting effects to go away if we had a large packet drop. Another aspect that gave us problems was the sheer complexity of the system. To begin with, it started out as a very cool subsystem, with some simple culling and a clear idea of its scope. However, with up to 11 programmers all attempting to add effects and code, it soon started burgeoning into a larger subsystem. At that point, there was no one person with a complete comprehension of exactly how it all worked, with predictable results — a big, complicated mess.

4. Release timing.

We released a few days off from Half-Life. You can’t get much more unfortunate than that, unless you release the same day as Quake 3. With all the anticipation that had been built regarding Half Life, the release time was unfortunate. On the other hand, our release date had been set by Activision when we were first green-lighted, whereas the Valve guys tended to be more floating with theirs, so it would have been difficult to plan around it.

5. A late release for the Enhancement Pack.

Once the game was released, the decision was made to go ahead with a glorified patch, referred to as the "Enhancement Pack". The idea behind this was that H2 was pretty much free of major bugs, and as such didn’t really require a patch to fix anything. However, there were some bugs in the code. The first was a joystick mistake we made. This was fixed almost immediately, and released on the net. After that, most of the team was disbanded into other projects, leaving Pat Lipo, Marcus Whitlock and myself to complete the Enhancement Pack. We started out fixing the small bugs we knew were out there, and then moved into expanding the feature set of H2 to what we would have liked it to have been when we shipped. Most notably, we added a female model, a custom skin selection, autodownloading of skins, models, maps, A3D 2.0 support, EAX support, some new deathmatch levels, correct prediction of Corvus-related effects and sounds, a couple of new spells and a plethora of other smaller helpful additions. Once we were comfortable with all the additions we made, we decided to try a small public beta test of the Enhancement Pack. This was an extremely successful thing to do, it turned out, as much helpful commentary came back from those involved. In fact, we ran into feature creep quite a lot at the end of this burst of activity, which mainly came from the extremely helpful and interesting suggestions we got from the beta testers. We did suffer a bit of criticism from the existing H2 community over the Enhancement Pack, because we originally predicted that we’d be done just after Christmas. That was a bit optimistic as it turned out, but our mistake was in announcing an approximate release date for the Enhancement Pack. The Heretic II community was not pleased about this, and made no bones about announcing it. Part of the reason for the lateness was due to the construction of the female model. With 1600 frames to build, and the fact that it was all built from scratch due to the limitations of the model format, it took longer to get it right than we originally estimated.

Article Start Previous Page 3 of 4 Next

Related Jobs

Disbelief — Cambridge, Massachusetts, United States

Remedy Entertainment
Remedy Entertainment — Helsinki, Finland

Technical Director
Wooga GmbH
Wooga GmbH — Berlin, Germany

Unity Game Engineer
Airship Syndicate
Airship Syndicate — Austin, Texas, United States

Mid to Senior Programmer

Loading Comments

loader image