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?
Rick-Johnson>
As of about a month ago, id hadn't made the C scripting external yet - it was
still be compiled directly into the code. So we really didn't have a choice
about using the quake-c scripting language. Though I've seen what id has done
so far in the regular c scripting, and it looks very nice. If we had another
3 months to the project, we probably would have converted everything over.
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.