Raven Software released the 3rd person 3D fantasy adventure, Heretic II, in fall of 1998. Based on id's Quake 2 engine, Heretic II featured a 3rd person camera, multi-player co-op, and hybrid vertex / skeletal animation.

The hero was an acrobatic elf, and his low-poly 3D model had over 1500 frames of vertex animation, 3x that of a Quake 2 model. The high frame count effectively kept the mod community from making new Heretic II player models.

I solved this problem by creating a freeware DirectX animation tool, Gwynflex. Gwynflex captured motion from the original male and female Heretic II player models by assuming a modified bipedal skeleton and tracking clusters of vertices across animation sequences. Gwynflex could also weight verts to bones and apply captured animations to another bipedal mesh, even if the bone lengths differed (see example Corvus animation applied to Quake 2 model at left).

Raven Software supported the Gwynflex project with helpful technical information. Thanks guys!. At least 90% of the community-made player models for Heretic II were made using Gwynflex.

Although custom Heretic II models were tough to create before Gwynflex, custom skins were easier. Heretic II used a custom image format with multiple mipmaps and a custom palette. Raven provided command line tools for converting to and from this format; I simplified matters by creating freeware Photoshop plug-ins. There's a link at left to some of the skins I created for Heretic II players.

Meanwhile, a pair of crazy Canadians were building a killer mod for Heretic II. Matthieu "Cybermat" MortÚza´ and Josh "Wankeroo" Gallagher developed the class-based teamplay mod The Heretic Fortress.

I joined the THF project and helped with model conversions, including (with permission from the authors) some popular Quake 2 models like Bauul and Winter's Fairy. In time, Wankeroo moved to another mod team and I took over the reins as lead programmer for Version 5 of THF.

Across the Atlantic a resourceful Brit named "Grin" had built some deathmatch bots for Heretic II, on a $100 bet. Her code borrowed heavily from the Quake II AceBot, EraserBot, and others, but also included some of her own innovations for goal selection, melee / sword fighting and magic use.

We had three major technical objectives for THF 5.0: integrate Grin's bots; add a fourth gameplay mode ("Get Excalibur"); add game event logging for web-based player stats. Grin was unable to work on the project but kindly donated her source code for overhaul.

I reprogrammed the bots to collaborate, follow orders, take advantage of class-specific skills, and find routes effectively even with dynamic obstacles, doors, and gates to open and close.

I also coded the new asymmetric game mode, Get Excalibur, in which one team defends a pickup object (the sword Excalibur) while the other team attempts to steal it and escape to a goal.

Marius "LtJax" Elvert developed the code for logging and web-based player stats.

My favorite part of THF 5 is the bots.

To route-find around doors, two A* route tables are precomputed from buoys and stored with the level data. One of these gives route costs if all doors are open, and the other if all doors are closed. The bots then recursively evaluate blocked and unblocked sections of a route, figuring the costs of finding switches to open closed doors, and considering the alternative of shouting to another player or bot to open the door for them.

I gave the bots a three-tiered, preemptable goal selection hierarchy as well: first, help the team and follow orders; then, survive; then position yourself strategically and collect ammo, mana, etc. The goal selection criteria are quite sophisticated, to create challenging and satisfying gameplay even when playing only with bots.

If you want to make custom maps for THF you'll need the map kit.

Back to Gallery