Interview with Rick Johnson on HexenC
Hexen 2 interview with Rick Johnson! A Quite interesting interview, mainly about HexenC, the Hexen2 programing language. The Interview was done by Drywall

Rick Johnson Interview |

Drywall> Ok, first, and most obvious question, why did you choose to build on the Quake-C language rather than use C & DLLs?



DW> Do you feel that Hexen2 has suffered from using HexenC? How?

    RJ> There are speed issues, as running the scripting language will never be as fast as directly compiled c code. There are also more annoyances that you have to live with in the hexen c language vs regular c (no case statements for example). We also hit many limitations that we had to extend in the language, but overall, I don't feel Hexen 2 has suffered.


DW> How did the limitations of QC effect Hexen2? Were there any features that you were not able to write in because of it?

    RJ> Pretty much anything that we needed, we wrote - we extended the Hexen C language quite a bit and added a bunch of new builtins. People on the net have always wanted file support, but there are just many problems with quake c / hexen c that make this difficult to implement.


DW> In what ways does HexenC improve upon QuakeC?

    RJ> We added arrays (constant read only), new mechanisms for dealing with frame definitions and showing of frames, 30+ new builtins, += -= *= operators, normal function definitions (void abc(void) ), unions, and other things I'm not remembering.


DW> Is there anything in using a language that is written specifically for a game that makes it inherently flawed, or is it merely the quality of the language written?

    RJ> A lot of games have always had a scripting language, though they were never released to the public. A scripting language allows you to accomplish a lot more, while making it easily extensible and flexible, though there are speed issues involved.


DW> Can you give us any information on Raven's upcoming projects? A Hexen 3 maybe? And will you bother to make any attempt to allow backwards compatability with HexenC patches?

    RJ> I'm sure there is going to be a sequel to Hexen 2, but as for the other projects, those have not been decided yet. As in the past with sequels, we start completely over, so we just have the Hexen 2 codebase, and then a completely new codebase for Hexen 3, so this won't make it difficult, just finding the time necessary.


DW> Is the HexenC code written for Hexen2 clean & commented for us patch makers to understand, or is it rather messy like ID's QC code?

    RJ> It will probably be in a little better state than id's, but there are hardly any comments in the code right now. As of right now, the .HC files total 1.7 megs, so that is a lot of code for us to clean up, so it may not ever get done.