This is an old revision of this page, as edited by Sajt (talk | contribs) at 06:07, 5 September 2004 (A bit more accuracy, a bit less inaccuracy). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
Revision as of 06:07, 5 September 2004 by Sajt (talk | contribs) (A bit more accuracy, a bit less inaccuracy)(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)QuakeC is a scripting language developed in 1996 by John Carmack of id Software to program parts of the computer game Quake. Using QuakeC, a programmer is able to customize Quake to great extents by adding weapons, abilities (such as flying) and programming complex scenarios. It can be used to control many aspects of the game itself.
Despite poor reviews by many of the leading magazines, and despite a public favoring of Duke Nukem 3D, QuakeC allowed the Quake engine to dominate the direction of the first-person shooter genre. Thanks to Carmack's idea of extending computer game life by adding unlimited expandability an enormous Internet community of gamers and programmers alike has arisen and nearly every modern multiplayer game is completely expandable. While they don't all use QuakeC, QuakeC was the first to truly popularize it.
Its syntax is quite similar to the C programming language, explaining its name, although it is much more limited. For example QuakeC does not allow the implementation of new types through either structures or objects. QuakeC also suffers from the fact that many builtin functions (functions prototyped in the QuakeC code but actually defined within the game engine written in C) that return strings return a temporary string in a string buffer, which only held one string. In other words, you could not do something such as this:
SomeFunction (ftos (num1), ftos (num2));
Because the second call to ftos (which converts a floating-point value to a string) would overwrite the sring returned by the first call before SomeFunction could do something with it. Other rather prominent examples of these quirks include the fact that QuakeC did not contain any string handling functions or file handling functions, which were simply not needed by the original game, although other people certainly could have used them. These minor limitations aside the QuakeC scripting language was one of the most powerful of its type for the time and defined a sub-style of game design that is still employed today.
However, as is their custom to do with nearly everything they make, id Software released the source of qcc, their QuakeC compiler, along with the original QuakeC code in 1996. Modified versions soon sprung up, including Jonathan Roy's fastqcc, J.P. Grossman's qccx, and Ryan "FrikaC" Smith's FrikQCC. These added functionality, optimizations, compiling speed boosts, and features such as arrays, pointers, and support for functions with more than 8 arguments. Then, in 1999 when id Software released the code from Quake's engine under the GPL, further features were added in the form of new builtin functions. Features long yearned for by QuakeC coders finally reached realization as QuakeC now had file and string handling functions, enlarged string buffers, more math functions, etc.
See also: Computer programming