<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=QuakeC</id>
	<title>QuakeC - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=QuakeC"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=QuakeC&amp;action=history"/>
	<updated>2026-05-26T22:28:54Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=QuakeC&amp;diff=456826&amp;oldid=prev</id>
		<title>imported&gt;Peb99: /* growthexperiments-addlink-summary-summary:1|1|0 */</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=QuakeC&amp;diff=456826&amp;oldid=prev"/>
		<updated>2025-03-13T00:09:02Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;growthexperiments-addlink-summary-summary:1|1|0&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Belege fehlen}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;QuakeC&amp;#039;&amp;#039;&amp;#039; ist eine 1996 von [[John Carmack]] von [[id Software]] entwickelte [[Skriptsprache]]. Sie wurde entwickelt, um Teile des [[Computerspiel]]s &amp;#039;&amp;#039;[[Quake]]&amp;#039;&amp;#039; zu schreiben und findet innerhalb der [[Quake (Computerspielreihe)|&amp;#039;&amp;#039;Quake&amp;#039;&amp;#039;-Serie]] sowie Spielen auf Basis der [[Quake-Engine]] Verwendung. Ein Programmierer kann mit QuakeC &amp;#039;&amp;#039;Quake&amp;#039;&amp;#039; 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ünstliche Intelligenz|künstlichen Intelligenz]], Auslösung von Ereignissen oder Aufbau der Spielkarten zu verändern.&lt;br /&gt;
&lt;br /&gt;
== Übersicht ==&lt;br /&gt;
Der QuakeC-[[Quellcode]] für die originale Quake-Spiellogik von id Software wurde 1996 veröffentlicht und wurde als Basis für [[Mod (Computerspiele)|Mods]] genutzt. QuakeC-Quellcode wird mit einem Programm namens qcc in [[Bytecode]] [[Compiler|kompiliert]] und in einer Datei mit Namen &amp;lt;span style=&amp;quot;font-family:monospace;&amp;quot;&amp;gt;progs.dat&amp;lt;/span&amp;gt; gespeichert. Der Programmierer eines &amp;#039;&amp;#039;Quake&amp;#039;&amp;#039;-Mods kann dann seine modifizierte &amp;lt;span style=&amp;quot;font-family:monospace;&amp;quot;&amp;gt;progs.dat&amp;lt;/span&amp;gt; veröffentlichen, ohne den Quellcode veröffentlichen zu müssen. Die meisten Quake-Mods wurden auf diese Weise veröffentlicht.&lt;br /&gt;
&lt;br /&gt;
QuakeC erhöhte die Erweiterbarkeit von Quake und ermöglichte Mod-Entwicklern eine größere Flexibilität als dies bei den vorherigen Titeln von id Software wie [[Doom (1993)|Doom]] und [[Wolfenstein 3D]] möglich war. Dadurch erlangte Quake eine große Modding-Gemeinschaft.&lt;br /&gt;
&lt;br /&gt;
== Einschränkungen ==&lt;br /&gt;
Die [[Syntax]] von QuakeC basiert – wie der Name bereits vermuten lässt – auf derer der [[C (Programmiersprache)|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 &amp;#039;&amp;#039;built-in&amp;#039;&amp;#039;-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 (Informatik)|Puffer]] speichern, der nur eine [[Zeichenkette]] speichern kann. Im Klartext heißt das, dass ein Konstrukt wie&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;EineFunktion( ftos(Zahl1), ftos(Zahl2) );&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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 &amp;lt;span style=&amp;quot;font-family:monospace;&amp;quot;&amp;gt;progs.dat&amp;lt;/span&amp;gt;-Dateien zu vermeiden.&lt;br /&gt;
&lt;br /&gt;
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 [[Mod (Computerspiele)|modden (&amp;#039;&amp;#039;eine Mod zu erstellen&amp;#039;&amp;#039;)]].&lt;br /&gt;
&lt;br /&gt;
== Modifizierte Compiler und Syntax ==&lt;br /&gt;
Wie es bei id Software Brauch ist, wurde der Quellcode von [[qcc]], des QuakeC-[[Compiler]]s, 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.&lt;br /&gt;
&lt;br /&gt;
Im Jahre 1999, als id Software den Quellcode der [[Game-Engine]] von Quake unter der [[GNU General Public License|GPL]] veröffentlichte, untersuchte die Mod-Gemeinde die Funktionsweise der [[Virtuelle Maschine|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 [[Abwärtskompatibilität|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 [[Feld (Datentyp)|Arrays]], [[Zeiger (Informatik)|Zeigern]], [[Integer (Datentyp)|Integer]]-Variablen, [[for-Schleife]]n und [[Zeichenkette]]n-Manipulation.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.gamers.org/dEngine/quake/spec/quake-spec34/qc-menu.htm Inoffizielle QuakeC-Spezifikationen] (englisch)&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Quakec}}&lt;br /&gt;
[[Kategorie:Skriptsprache]]&lt;br /&gt;
[[Kategorie:Computerspiel-Entwicklung]]&lt;br /&gt;
[[Kategorie:Virtuelle Maschine]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Peb99</name></author>
	</entry>
</feed>