Hexen source code

The Hexen source code, the C language files from which the HEXEN.EXE file can be generated by a compiler, were released in January, 1999, by Kenn Hoekstra of Activision, acting in concert with Raven Software, shortly following the release of the Doom source code by John Carmack of id Software. It was simultaneously released with the Heretic source code.

Licensing
The Hexen source was initially released under a standard Activision EULA which limited the legal ability of many source ports, particularly those which had transitioned to the GNU General Public License in late 1999, to use the code. This was later corrected in a re-release by James Monroe after a long campaign by the community to have the license changed.

Technical details
Unlike the Doom source release, which was based on the Linux sources to avoid release of any of the proprietary DMX sound library's API or code, the Hexen source as released is for the original MS-DOS version of the game, as most of the other existing ports of Hexen were to other architectures such as game consoles. As a result, the sources as released cannot be compiled without substantial modification to remove dangling calls to the DMX API.

The Hexen game engine is a direct modification of the Heretic code base, and retains most of the new functionalities added there while extending some of them further. Significant technological additions made by Raven to the Doom engine for Hexen include a hub save system allowing non-linear progress through interconnected sets of maps (similar systems would later be used in Strife and in id's own Quake 2); a C-language-based scripting language called ACS which allows for implementation of map- and hub-specific logic; a new extended map format with parameterized actions; the ability to move walls within the game world in the form of polyobjects; storage of data on maps, sounds, music, and sector sound sequences inside text script lumps; support for CD audio music; and a player class system, allowing the player to play as any one of three different characters. In addition, network gameplay capability was expanded to accommodate up to eight players.

Non-source and obsolete files
Several non-source-code and obsolete source files were included with the Hexen source release.