QuakeC

QuakeC

QuakeC ist eine 1996 von John Carmack von id Software entwickelte Skriptsprache. Sie wurde entwickelt um Teile des Computerspiels Quake zu schreiben. Ein Programmierer kann mit QuakeC Quake individualisieren, zum Beispiel durch das Hinzufügen von Waffen, Ändern der Spiellogik und -physik oder der Beschreibung neuer Szenarien. Es kann genutzt werden um viele Aspekte des Spiels wie Teile der künstlichen Intelligenz, Auslösung von Ereignissen oder Aufbau der Spielkarten zu verändern.

Inhaltsverzeichnis

Übersicht

Der QuakeC-Quellcode für die originale Quake-Spiellogik von id Software wurde 1996 veröffentlicht und wurde als Basis für Mods genutzt. QuakeC-Quellcode wird mit einem Programm namens qcc in Bytecode kompiliert und in einer Datei mit Namen progs.dat gespeichert. Der Programmierer eines Quake-Mods kann dann seine modifizierte progs.dat veröffentlichen ohne den Quellcode veröffentlichen zu müssen. Die meisten Quake-Mods wurden auf diese Weise veröffentlicht.

Trotz schlechter Bewertungen vieler führender Computerspielemagazine und trotz des sehr beliebten, kurz zuvor erschienenen Computerspiels Duke Nukem 3D machte QuakeC Quake zu einem Wegweiser in der Ego-Shooter-Branche. Dank Carmacks Idee die „Lebensdauer“ von Computerspielen durch unbegrenzte Erweiterbarkeit zu erhöhen entstand eine bis heute wachsende, enorm große Gemeinschaft von Spielern und Programmierern. Heute ist nahezu jedes Multiplayer-Spiel komplett erweiterbar.

Einschränkungen

Die Syntax von QuakeC basiert – wie der Name bereits vermuten lässt – auf derer der Programmiersprache C, ist allerdings vergleichsweise stark limitiert. QuakeC erlaubt zum Beispiel nicht die Definition neuer Datentypen durch Strukturen oder Objekte. Außerdem leidet QuakeC unter der Einschränkung, dass viele built-in-Funktionen (Funktionen, die einen Prototyp in QuakeC haben, aber in der in C geschriebenen Game-Engine definiert werden), die Text zurückgeben, diesen in einem temporären Puffer speichern, der nur eine Zeichenkette speichern kann. Im Klartext heißt das, dass ein Konstrukt wie

EineFunktion( ftos(Zahl1), ftos(Zahl2) );

nicht funktioniert, da der zweite Aufruf der ftos-Funktion (welche eine Gleitkommazahl in einen String umwandelt) die Zeichenkette, die vom ersten Aufruf gespeichert wird, überschreibt, bevor EineFunktion diese verarbeiten kann.

Die Mängelliste lässt sich mit dem kompletten Fehlen von Funktionen, die das Bearbeiten von Zeichenketten oder Zugriff auf das Dateisystem zulassen, fortführen, welche das Originalspiel einfach nicht benötigte. Auch wenn andere Programmierer die Funktionen hätten brauchen können, wurden Dinge wie Dateimanipulation nicht eingebaut, um Sicherheitsprobleme beim Herunterladen von fremden progs.dat-Dateien zu vermeiden.

Die Spiellogik der meisten Computerspiele ist in purem C(++) geschrieben und wird in die ausführbare Datei des Spiels kompiliert, was schneller ist als eine Skriptlösung. Dies macht es jedoch schwieriger für die Spieler die Spiele zu modden (einen Mod zu erstellen).

Modifizierte Compiler und Syntax

Wie es bei id Software Brauch ist, wurde der Quellcode von qcc, des QuakeC-Compilers, zusammen mit dem QuakeC-Quellcode 1996 veröffentlicht. Schnell erschienen modifizierte Versionen wie Jonathan Roys fastqcc und Ryan Smiths FrikQCC. Sie fügten Funktionalität, Optimierungen und Verbesserungen der Geschwindigkeit des Compilers hinzu.

Im Jahre 1999, als id Software den Quellcode der Game-Engine von Quake unter der GPL veröffentlichte, untersuchte die Mod-Gemeinde die Funktionsweise der virtuellen Maschine der Engine und veröffentlichte neue QuakeC-Compiler wie J.P. Grossmans qccx und eine neue Version von FrikQCC. Diese Compiler machten Gebrauch von neuen Fähigkeiten in einer rückwärts-kompatiblen Weise, sodass die virtuelle Maschine der unveränderten Engine die kompilierten Skripte nach wie vor interpretieren konnte. Neue Fähigkeiten waren unter anderem die Unterstützung für Arrays, Zeigern, Integer-Variablen, for-Schleifen und Zeichenketten-Manipulation.

Mit der Veröffentlichung des Quellcodes der Engine konnten neue Funktionen eingebaut werden, die Mod-Entwickler lange vermisst hatten. Dazu gehörten die bereits erwähnten Funktionen für Zeichenketten-Manipulation, Zugriff auf das Dateisystem, vergrößerte Zeichenketten-Buffer, mehr Mathematik-Funktionen und so weiter. Allerdings verloren Programmierer, die die neuen Fähigkeiten nutzten, die Kompatibilität zu der unveränderten Quake-Engine.

Siehe auch

Weblinks


Wikimedia Foundation.

Игры ⚽ Поможем написать реферат

Schlagen Sie auch in anderen Wörterbüchern nach:

  • QuakeC — is an interpreted 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, changing game logic and physics,… …   Wikipedia

  • QuakeC — QuakeC  интерпретируемый язык программирования, разработанный в 1996 году Джоном Кармаком (id Software) для написания части компьютерной игры Quake. Используя QuakeC, программист имеет возможность модифицировать игру: добавить оружие,… …   Википедия

  • QuakeC — est un langage développé en 1996 par John Carmack de id Software pour programmer des éléments du jeu vidéo Quake. En utilisant QuakeC, un programmeur est en mesure de personnaliser Quake en ajoutant des armes, en changeant la logique et la… …   Wikipédia en Français

  • QCX — QuakeC Extreme (Computing » Software) *** Quad City Times (Community » Media) …   Abbreviations dictionary

  • Quake (Spieleserie) — Quake ist eine Computerspiel Serie von id Software, die zum Genre der Egoshooter zählt. Inhaltsverzeichnis 1 Überblick 2 Spiele 2.1 Quake 2.2 Quake II …   Deutsch Wikipedia

  • Quake — Infobox VG |title = Quake developer = id Software Midway Games (N64) Lobotomy Software (SS) Pulse Interactive (mobile) publisher=GT Interactive (PC) PXL computers (Amiga) MacSoft (Macintosh) Midway Games (N64) Sega (SS) Pulse Interactive (mobile) …   Wikipedia

  • Nexuiz — Developer(s) Alientrap Publisher(s) Alientrap Engine DarkPlaces …   Wikipedia

  • List of game engines — Many tools called game engines are available for game designers to code a game quickly and easily without building from the ground up. Contents 1 Free and open source 2 Proprietary 2.1 Commercial 2.2 Freeware …   Wikipedia

  • Operation Bayshield — Abdul Gouat Komsvallow in Operation Bayshield Engine(s) …   Wikipedia

  • Quake (video game) — This article is about the original video game. For the series as a whole, see Quake (series). Quake Developer(s) id Software Midway Games (N64) …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”