QuakeC är ett tolkat programmeringsspråk utvecklat 1996 av John Carmack ( id Software ) för att skriva en del av datorspelet Quake . Med QuakeC har en programmerare möjlighet att modifiera spelet: lägga till vapen, ändra spellogik och fysik, skriva ett komplext skript. Språket kan användas för att styra många aspekter av spelet såsom artificiell intelligens (motståndare), triggers, kartändringar.
QuakeC-källkoden publicerades 1996 och har använts som grund för att skriva mods (som " Capture the Flag ") för Quake. QuakeC-program kompileras till bytekod med hjälp av ett verktyg som heter qcc. Detta gjorde det möjligt för programmerare att publicera sina mods utan att öppna källkoden.
QuakeC användes i Quake 1, i Quake 2 och senare spel av Id Software ersattes det med laddningsbara operativsystem DLL:er (.dll på Windows och .so på Unix ) med inbyggd CPU-körbar kod istället för bytekod. Detta ökade flexibiliteten att skapa modifieringar av Quake, till exempel blev det möjligt att skriva till vilka filer som helst i filsystemet, men minskade säkerheten (QuakeC körde kod i en säker sandlåda). Men det här är inte så skrämmande - koden som finns i modifieringsbiblioteket körs på Quake-servern och inte på klienten som ansluter till den, så helt enkelt genom att ansluta till Quake-servern kan du till exempel inte bli infekterad med en trojan (exklusive fall med sårbarheter i buffertspillklient ).
Anledningen till skapandet av QuakeC kan ha varit att MS-DOS- systemet , under vilket Quake-spelet ursprungligen släpptes, inte hade "inhemska" biblioteksladdningssystem.