<?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=Spieleprogrammierung</id>
	<title>Spieleprogrammierung - 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=Spieleprogrammierung"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Spieleprogrammierung&amp;action=history"/>
	<updated>2026-05-27T09:43:59Z</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=Spieleprogrammierung&amp;diff=468702&amp;oldid=prev</id>
		<title>imported&gt;MetalSnake: Änderung 246775790 von 212.18.213.164 rückgängig gemacht; Ich sehe keinen Grund hier Starbound zu entfernen.</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Spieleprogrammierung&amp;diff=468702&amp;oldid=prev"/>
		<updated>2024-07-15T13:03:05Z</updated>

		<summary type="html">&lt;p&gt;Änderung &lt;a href=&quot;/index.php/Spezial:Diff/246775790&quot; title=&quot;Spezial:Diff/246775790&quot;&gt;246775790&lt;/a&gt; von &lt;a href=&quot;/index.php/Spezial:Beitr%C3%A4ge/212.18.213.164&quot; title=&quot;Spezial:Beiträge/212.18.213.164&quot;&gt;212.18.213.164&lt;/a&gt; rückgängig gemacht; Ich sehe keinen Grund hier Starbound zu entfernen.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Belege}}&lt;br /&gt;
[[Datei:UnrealEd.PNG|mini|&amp;#039;&amp;#039;UnrealEd&amp;#039;&amp;#039;, Level-Editor des &amp;#039;&amp;#039;Unreal Development Kit&amp;#039;&amp;#039;]]&amp;#039;&amp;#039;&amp;#039;Spieleprogrammierung&amp;#039;&amp;#039;&amp;#039; bezeichnet den Vorgang für die [[Programmierung]] eines [[Computerspiel]]s und ist Teil der [[Spieleentwicklung]]. In den meisten Fällen kommt eine bereits existierende [[Spiel-Engine]] (kurz „Engine“) zum Einsatz. Bedeutende Ausnahmen sind z. B. [[Minecraft]] und [[Starbound]].&lt;br /&gt;
&lt;br /&gt;
Der wichtigste Faktor für die Auswahl der zur Anwendung kommende(n) [[Programmiersprache|Programmiersprache(n)]] ist meistens die [[Spiel-Engine|Engine]] selbst, da die Integration mit dem bestehenden Code der [[Spiel-Engine|Engine]] erheblich erschwert werden würde, wenn der neue, spiel-spezifische Code nicht in (einer) der primär unterstützen Sprache(n) geschrieben werden würde. Viele [[Spiel-Engine|Engines]] bieten zudem (oftmals spezialisierte) Skriptsprachen und [[Drag and Drop|Drag-and-Drop]]-Baukastensysteme an, um die Entwicklung der Spiellogik einfacher und mit weniger Expertise als bei der Verwendung einer mächtigeren [[Allzweck-Programmiersprache]] möglich zu machen.&lt;br /&gt;
&lt;br /&gt;
== Entwicklungsprozess ==&lt;br /&gt;
Für ein modernes [[Kommerz|kommerzielles]] Computerspiel schreiben oft bis zu 30 [[Programmierer]] schätzungsweise über eine Million Zeilen [[Quellcode]]. Dies erfordert eine gute Projektplanung sowie den Einsatz von [[Versionsverwaltung]]ssoftware, [[Bugtracker]]n, [[Erstellungsprozess|automatisierten Erstellungsprozessen]] und [[Spiel-Engine|Spiele-Engine]]s.&lt;br /&gt;
&lt;br /&gt;
=== Planung ===&lt;br /&gt;
Eine [[Profi|professionelle]] Spieleprogrammierung richtet sich nach dem [[Game-Design]]-Prinzip. Aufgrund dessen werden detailliertere Pläne für die [[Implementierung]] der Spielfunktionen erstellt. Die meisten Phasen der Entwicklung werden mehrmals durchlaufen, da sich in allen [[Projektphase|Phasen]] immer wieder Änderungen ergeben. Auf solche Änderungen schnell reagieren zu können, ist von besonderer Wichtigkeit für das ganze Projekt.&lt;br /&gt;
&lt;br /&gt;
=== Umsetzung ===&lt;br /&gt;
Der Quellcode für ein Computerspiel ist im Normalfall nach einem [[Schichtenmodell]] aufgebaut. Am unteren Ende stehen die [[Gerätetreiber|Treiber]], sie bieten den direkten Zugriff auf die Hardware. Darüber steht eine hardwarenahe API wie z. B. DirectX oder OpenGL, die vom wohl wichtigsten Element im ganzen Spielprojekt verwendet wird, der darüberliegenden [[Spiel-Engine]], die sich hauptsächlich aus der [[Grafik-Engine]], einer Sound-Engine, einer möglichen [[Physik-Engine]] und weiteren [[System]]en für [[Kollisionserkennung (Algorithmische Geometrie)|Kollision]], [[Animation]], Steuerung, [[Rechnernetz|Netzwerk]] usw. zusammensetzt und den Kern des Spiels bildet. Eine Spiel-Engine wird größtenteils für mehrere Spiele verwendet und ist deshalb in begrenztem Rahmen [[Universalität|universell]] verwendbar. Als über der Spiel-Engine liegenden Teil kann man das [[Skriptsprache|Scripting]]-System betrachten, das eine [[Scriptsprache]] zur Verfügung stellt und Teile der Spiel-Engine verwendet, aber nur in speziellen Bereichen eingesetzt wird. Den Abschluss bildet dann der Quellcode für die Spiele-Logik, der individuell für das jeweilige Computerspiel geschrieben wird.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich werden speziell für die Entwicklung (und ggf. die Erweiterung) von Spielen bestimmte [[Anwendungssoftware|Werkzeuge]] geschrieben. Diese helfen bei der Erstellung von Elementen, welche im Spiel häufig wiederkehren, aber individuell aufgebaut und angepasst werden müssen, etwa [[Grafik|grafische]] Elemente oder ganze [[Level (Spielabschnitt)|Level]]. Eine Implementierung auf [[Programmiersprache]]n-Ebene ist hier zu aufwendig und unübersichtlich; eigens erzeugte [[WYSIWYG]]-Editoren (beispielsweise [[Karteneditor|Level-Editoren]]) ermöglichen eine einfachere und effektivere Erzeugung der entsprechenden Inhalte.&lt;br /&gt;
&lt;br /&gt;
=== Test ===&lt;br /&gt;
Die genaue Vorgehensweise beim Testen kann sich von Entwickler zu Entwickler unterscheiden. Seitens Programmierung können aus der Softwareentwicklung bekannte Vorgehensweisen wie [[Testgetriebene Entwicklung]] verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Häufig werden zum Testen der Spiele speziell dafür beschäftigte Tester beauftragt, welche sich um die Planung, Koordinierung und Durchführung der Tests kümmern. Im Gegensatz zu den Programmierern, welche beispielsweise mithilfe von [[Modultest]]s die Bestandteile des Spiels einzeln testen können, erhalten die Tester eine gebaute Version des Spiels, welche ohne tiefere Kenntnisse der Interna auf Fehler geprüft wird (siehe [[Black-Box-Test]]).&lt;br /&gt;
&lt;br /&gt;
Abhängig von der Art des Spiels, häufig aber wenn ein Mehrspielermodus den Kern des Spiels darstellt, werden [[Alpha-Version|Alpha]]- und [[Beta-Version|Betatests]] verwendet, bei der Spieler die Möglichkeit erhalten, das Spiel vor dem offiziellen Erscheinen bereits zu spielen. Entwickler sind dabei an auftretenden Fehlern oder Problemen interessiert, da diese dann ggf. noch vor Release des Spiels behoben werden können. Zu den möglichen Problemen gehören Fehler im Spiel selbst (siehe [[Programmfehler]]), ein unausgewogenes Balancing&amp;lt;!--siehe [[:en:Balance (game design)|Balance (game design)]] (engl. WP)--&amp;gt;, welches sich bspw. auf das Game- oder Level-Design zurückführen ließe oder auf eine Überforderung der Hardware durch zu geringe Rechenleistung oder Netzwerkbandbreite. Die Alpha- und Betatestphasen können öffentlich oder geschlossen sein und werden dann entweder als „open“ oder „closed Alpha/Beta“ bezeichnet. Bei einer öffentlichen Testphase haben die Spieler meist während der gesamten Phase die Möglichkeit, daran ohne größere Umstände teilzunehmen, während bei einer geschlossenen Teilnahme meist eine Einladung erforderlich ist, die unter anderem aus Verlosungen vergeben werden kann.&lt;br /&gt;
&lt;br /&gt;
== Werkzeuge und Hilfsmittel ==&lt;br /&gt;
&lt;br /&gt;
Prinzipiell kommen bei der Spieleprogrammierung die gleichen Werkzeuge wie bei der sonstigen [[Softwareentwicklung]] zum Einsatz. [[Spiel-Engine|Engines]] bieten allerdings oftmals eine eigene [[Integrierte Entwicklungsumgebung|IDE]] an, die zusätzlich zur Programmierung selbst weitere Aufgaben der Spielentwicklung integriert. Zusätzlich kommen, je nach [[Spiel-Engine|Engine]], spezialisierte Skriptsprachen zum Einsatz, insbesondere für die Spiellogik.&lt;br /&gt;
&lt;br /&gt;
== Spieleprogrammierung als Hobby ==&lt;br /&gt;
&lt;br /&gt;
Die meist verwendeten Plattformen für die [[Hobby]]entwicklung sind [[Betriebssystem]]e für den PC und für Mobiltelefone, wie [[Microsoft Windows|Windows]], [[Linux]], [[Android (Betriebssystem)]] oder [[Apple iOS|iOS]], da die Entwicklung für diese Geräte entweder keine Lizenz erfordern oder diese verhältnismäßig einfach und günstig zu erhalten ist. [[Spielkonsole]]n sind seltener Ziel von Spielprojekten, da für die Entwicklung, für das Ausführen auf einem Testgerät und/oder für den Vertrieb Entwicklerlizenzen erforderlich sind, welche mit Kosten verbunden sind und häufig nur an Unternehmen, nicht aber an Privatpersonen, vergeben werden. Eine Ausnahme stellt dabei Xbox Live Indie Games dar, da dort verhältnismäßig einfach Spiele veröffentlicht werden können.&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Spieleentwickler]]&lt;br /&gt;
* [[Spiel-Engine]]&lt;br /&gt;
* [[Game-Design]]&lt;br /&gt;
* [[Leveldesign]]&lt;br /&gt;
* [[Programmierung]]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [https://www.spieleprogrammierer.de/ Deutschsprachige Community mit Forum und Wiki zum Thema Spieleprogrammierung]&lt;br /&gt;
* [https://zfx.info/ Deutschsprachiges Forum zum Thema Spieleentwicklung und Spieleprogrammierung]&lt;br /&gt;
* [http://pewn.de Deutschsprachige Community zum Thema Spieleentwicklung und Spielepräsentation]&lt;br /&gt;
* [http://gamedevelop.eu/Artikel/Einfuehrung-in-die-Spieleentwicklung.htm Einführung in die Spieleentwicklung und Spieleprogrammierung]&lt;br /&gt;
* [https://spieleprogrammieren.com/ Online Nachhilfe Programmieren – Tipps, Tricks, Links und Artikel zum Thema]&lt;br /&gt;
* [https://jython.ch/ Webbasierte Lernumgebung TigerJython für Gymnasien]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Computerspiel-Entwicklung| ]]&lt;/div&gt;</summary>
		<author><name>imported&gt;MetalSnake</name></author>
	</entry>
</feed>