In der ersten Woche im August 2021 erklärte die chinesische Regierung Online-Videospiele als „elektronisches Opium“. In Anbetracht dessen, dass einige junge chinesische Spieler bekanntermaßen über acht Stunden am Stück spielen und dabei ihre schulischen Pflichten, ihre Familie und jeglichen Versuch, soziale Kontakte zu pflegen, komplett außer Acht lassen, scheint diese Einschätzung der chinesischen Behörden nicht gänzlich falsch. Spielsucht ähnelt Drogensucht in vielerlei Hinsicht und ist ebenso zerstörerisch. Was heißt das jetzt für dich und deine Abenteuer in Gershin Impact? Wahrscheinlich nichts. Allerdings könnte es sein, dass die Entwicklung verlangsamt wird, um den chinesischen Bemühungen um Schadensbegrenzung zu entsprechen. Das heißt, dass Schlachten und Waffen seltener sind, aber womöglich nur für Spieler und Spielerinnen in China. Genshin Impact wurde in der Programmiersprache C++ geschrieben, der Sprache zur Programmierung von Robotern und zur Bedienung einer Reihe anderer Systeme. Wie schwer wäre es eigentlich den gesamten Code des Spiels in Python zu schreiben? Tatsächlich wäre es gar nicht schwierig.

Die besten Lehrkräfte für Programmierung verfügbar
Erblin
5
5 (4 Bewertungen)
Erblin
30CHF
/h
Gift icon
1er Unterrichtseinheit gratis !
Andrin
5
5 (2 Bewertungen)
Andrin
60CHF
/h
Gift icon
1er Unterrichtseinheit gratis !
Eric
Eric
20CHF
/h
Gift icon
1er Unterrichtseinheit gratis !
Musa
Musa
20CHF
/h
Gift icon
1er Unterrichtseinheit gratis !
Pierre
5
5 (27 Bewertungen)
Pierre
40CHF
/h
Gift icon
1er Unterrichtseinheit gratis !
Matthias
5
5 (30 Bewertungen)
Matthias
86CHF
/h
Gift icon
1er Unterrichtseinheit gratis !
Erblin
5
5 (54 Bewertungen)
Erblin
29CHF
/h
Gift icon
1er Unterrichtseinheit gratis !
Said
4,9
4,9 (34 Bewertungen)
Said
19CHF
/h
Gift icon
1er Unterrichtseinheit gratis !
Erblin
5
5 (4 Bewertungen)
Erblin
30CHF
/h
Gift icon
1er Unterrichtseinheit gratis !
Andrin
5
5 (2 Bewertungen)
Andrin
60CHF
/h
Gift icon
1er Unterrichtseinheit gratis !
Eric
Eric
20CHF
/h
Gift icon
1er Unterrichtseinheit gratis !
Musa
Musa
20CHF
/h
Gift icon
1er Unterrichtseinheit gratis !
Pierre
5
5 (27 Bewertungen)
Pierre
40CHF
/h
Gift icon
1er Unterrichtseinheit gratis !
Matthias
5
5 (30 Bewertungen)
Matthias
86CHF
/h
Gift icon
1er Unterrichtseinheit gratis !
Erblin
5
5 (54 Bewertungen)
Erblin
29CHF
/h
Gift icon
1er Unterrichtseinheit gratis !
Said
4,9
4,9 (34 Bewertungen)
Said
19CHF
/h
Gift icon
1er Unterrichtseinheit gratis !
Und los geht's

Was ist ein Computerspiel?

Du denkst vielleicht, was für eine Frage ist das? Wer weiß denn nicht, was ein Computerspiel ist? Ja natürlich kennen wir alle die tollen Grafiken und mitreißenden Geschichten aus Videospielen. Was ist ein Computerspiel nun aber eigentlich genau? Spiele, die auf Mobilgeräten und Spielkonsolen gespielt werden, brauchen eine grafische Benutzeroberfläche.

Playstation-Controller, Spielekonsolen sind eine Art von Benutzeroberflächen
Spielekonsolen dienen als GUI und ermöglichen die Interaktion mit dem Spiel. Quelle: Unsplash.
Diese grafischen Benutzeroberflächen, die GUIs genannt werden, bestimmen die Interaktion der Nutzer mit ihrem Gerät. Auf deinem Smartphone ist das zum Beispiel, deine Finger über den Bildschirm zu streichen, um ein neues Menü zu öffnen, oder wenn du eine Anwendung zum Zeichnen oder Schreiben geöffnet hast, dass dort, wo dein Finger sich lang bewegt, Buchstaben oder Linien erscheinen. Manche Smartphones lassen sich nur dadurch entsperren, dass du mit deinem Finger ein Muster auf dem Bildschirm zeichnest. All diese Beispiele sowie viele weitere – zum Beispiel das Öffnen einer App durch das Antippen eines Symbols – sind eine Interaktion zwischen dir und deinem Telefon. Wenn du ein Spiel auf deinem Telefon oder einer Spielekonsole spielst, ist das nichts Anderes: Du löst durch physischen Bewegungen Aktionen auf dem Bildschirm aus. Jetzt, wo klar ist, dass Computerspiele im Grunde nichts anderes sind als GUIs, wollen wir uns damit befassen, welche Programmiersprachen sich am besten eignen, um sie zu schreiben. Wir haben bereits erwähnt, dass Genshin Impact in C++ codiert wurde. Für viele Spieleprogrammierer ist C++ die erste Wahl, weil die Programmiersprache komplexe und sehr schöne Grafiken möglich macht. Die negative Seite ist jedoch die Komplexität der Sprache und diese kann sehr unnachgiebig sein. Zieht man außerdem in Betracht, dass bis zu 100 Programmierer*innen nötig sind, um ein Spiel zu schreiben und dass sie die Programmiersprache nahezu auf ähnlichem Niveau beherrschen müssen, dann ist das im Falle der Komplexität der Syntax von C++ keine leichte Aufgabe. C++ kann auch in puncto der plattformübergreifenden Programmierung nicht mithalten. Es gibt zwar Bibliotheken, um den Spielcode auf verschiedene Betriebssysteme anzupassen, die Komplexität der Sprache macht es jedoch schwierig, sie zu benutzen. Man muss C++ wirklich in- und auswendig kennen und wissen, wie man sie an bestimmte Plattformen anpassen kann. Erst dann kannst du ein Spiel in dieser Sprache programmieren. JavaScript schafft ein interessantes Spielerlebnis. Selbst wenn du kein Gamer bist, kennst du sicherlich das Spiel, das dafür berühmt ist, voll und ganz in JavaScript programmiert zu sein: Minecraft. Java ist eine gute plattformübergreifende Programmiersprache: 97 % aller Webseiten verwalten das Verhalten der Seite mit Java. Allerdings ist es recht langsam – wenn du Minecraft kennst, wirst du zustimmen, dass es nicht gerade ein dynamisches Spiel ist. Außerdem ist Java für leistungsschwächere Computer nicht so gut geeignet, es sei denn du verwendest gleichzeitig ein Optimierungsmodul wie Optifine. Programmierer sind sich einig, dass C# der Goldstandard ist, um Spiele darin zu programmieren. Allerdings hat auch diese Sprache eine große Schwachstelle: Sie funktioniert nicht auf allen Plattformen. Wir kommen gleich dazu, was das bedeutet. Python wiederum macht komplizierte Syntax und die Frage der plattformübergreifenden Funktionsweise hinfällig. Zunächst einmal ist Python im Gegensatz zu C++ eine interpretierende Programmiersprache. Der Quelltext muss dabei nicht in den Maschinencode übersetzt werden. Dabei geht allerdings etwas Leistung verloren – ein Aspekt, der Python zur idealen Sprache für maschinelles Lernen macht. Zweitens ist Python leicht zu lesen und macht die Notwendigkeit nach umfassendem Codieren überflüssig. Dank seines modularen Struktur ist es außerdem weniger fehleranfällig, da das Programmieren viel darin  besteht, das richtige Modul zu in Pythons riesiger Bibliothek zu finden und dort einzubauen, wo es gebraucht wird. Das waren alle Pluspunkte von Python, hier kommen die Schwachstellen: Wenn du ein Action-Spiel programmierst, das eine hohe Bildrate pro Sekunde und große Prozessorleistung verlangt, dann reicht Python allein womöglich nicht aus.
Gamer am PC auf Gaming-Konferenz, Videospiele können auf den verschiedensten Plattformen gespielt werden
Die Plattformen für das Gaming wie der Windows-PC oder Mac müssen bei der Entwicklung von Spielen bedacht werden. Quelle: Unsplash.

Plattformübergreifende Komptabilität

Hast du ein iPhone oder ein Smartphone mit Android? Spielst du Videospiele gern auf dem PC oder lieber Mac? Oder du sorgst dich sehr um den Schutz deiner Daten und hast dich für ein Linux-Betriebssystem entschieden? Diese Betriebssysteme und andere werden als Plattformen bezeichnet. Sie bereiten Programmierer*innen viel Kopfzerbrechen. Für Android-Apps gibt es den Google Play Store, für iOS-Apps den Apple Store und Microsoft hat seinen eigenen App-Store, um Apps für den PC herunterzuladen. In jedem dieser „Läden” findest du dieselben Apps: Facebook, Snapchat sowie viele derselben Spiele. Sie sind identisch bis auf den Code, der ihnen zugrunde liegt. Spieleentwickler und Programmiererinnen im Allgemeinen müssen immer darauf achten, auf welchen Plattformen ihre Anwendung laufen soll. Wenn du ausschließlich für Apple entwickelst, dann verlierst du damit automatisch die Märkte Android und Windows, wenn du ausschließlich für Windows entwickelst, dann ist es andersrum. Da Windows den kleinsten Marktanteil bei Smartphones hat, verlierst du damit nahezu den gesamten Markt für Mobilgeräte. Ältere Programmiersprachen sind nicht auf verschiedene Plattformen anwendbar, hier musst du für jede Plattform einen eigenen Code schreiben, wenn dein Spiel auf verschiedenen Plattformen laufen soll. Neuere Programmiersprachen, die sich besser anpassen lassen, dazu gehört auch Python, funktionieren gut auf verschiedenen Plattformen, was weiter zur Beliebtheit von Python beiträgt. Zugegeben: Python ist keine neue Sprache, sie existiert bereits seit 30 Jahren, sie erfreut sich jedoch neuerlich erneuter Beliebtheit nicht zuletzt aufgrund ihrer Vielseitigkeit. Python ist eine der besten Sprachen für die Webentwicklung, neben Vue.js und Angular.

Spiele in Python programmieren

Python ist zwar einfach zu verwenden und funktioniert gut auf verschiedenen Plattformen, Leistung ist allerdings keine ihrer Eigenschaften. Wenn dein Spiel in den Punkten Grafik und Action viel abverlangt, dann reicht Python allein für deine Zwecke wahrscheinlich nicht aus. Wenn du aber ein Spiel programmierst, das in 2D mit wenig grafischer Leistung funktionieren soll, wie zum Beispiel „Noughts and Crosses“ oder „Snake and Apple“, dann ist Python ideal für deine Bedürfnisse. Pygame ist eine Bibliothek mit Python-Modulen, die speziell für Computerspiele geschrieben und gebündelt wurden. Dazu gehören Soundmodule und Grafiken, die du einfach in dein Spiel einbauen kannst. Wie funktioniert das?

  • Setze dich mit Tkinter auseinander, der Standard-GUI für Python.
    • Lerne, wie du geometrische Formen mit dem „Canvas Widget“ zeichnest.
    • Verwende den „Bind Widget“, um zu definieren, was bei einem Mausklick passiert.
  • Plane dein Spiel mit Hilfe eines Diagramms, das den Spielablauf darstellt.
  • Programmiere die Anfangsfunktionen deines Spiels.
  • Programmiere die Zeichnungsfunktionen deines Spiels.
  • Programmiere die logischen Funktionen deines Spiels.

Die logischen Funktionen steuern am Ende das eigentliche Spiel. Sie registrieren die Eingaben des Nutzers, die Phase des Spiels und treiben den Spielfortschritt voran. Sie dokumentieren auch den Spielstand; bestimmen, ob das Spiel beendet ist, und entscheiden über das Gewinnen oder Verlieren. Auch die nervigen Hinweise, dass eine Aktion nicht durchführbar ist, werden von den logischen Funktionen gesteuert. Das war jetzt natürlich nur eine sehr grobe Anleitung dazu, wie du ein Spiel programmierst. In Pythons Code-Bibliothek finden sich viele weitere Optionen, wie du das Spiel ausbauen kannst, mit Farben, Effekten und Vielem mehr. Spiele programmieren ist nur eine Anwendung für Python. Lies über mehr Anwendungsmöglichkeiten von Python.

Person spielt auf Playstation, Python ist nicht zum Programmieren von allen Arten von Spielen geeignet.
Für actionreiche Spiele ist Python nicht die ideale Programmiersprache. Quelle: Unsplash.

Nachteile des Spieleprogrammierens in Python

Der größte Nachteil, Spiele in Python zu programmieren, ist die schwache Leistung. Sieht man sich einige der beliebtesten Spiele an, wie das bereits erwähnte Gershin Impact, dann kann Python in Sachen Grafik und Geschwindigkeit einfach nicht mithalten. So vielseitig Python auch ist, es ist für mobile Endgeräte nicht geeignet. Wenige mobile Geräte nutzen Python, da seine Vorteile in der Entwicklung der Server-Seite liegen und weniger in leistungsbasierten Anwendungen. Smartphones und Tablets werden häufig zum Gaming genutzt, was bedeutet, dass Spiele, die in Python entwickelt wurden, einfach nicht mithalten können. Zu guter Letzt kann es auch etwas mühsam sein, Spiele in Python zu schreiben. Seine Bibliotheken sind zwar umfassend, gut beschrieben und einfach zu verwenden, dennoch ist die Spielentwicklung in Python recht aufwendig. Viele Programmierer*innen sehen deshalb den Aufwand in keinem Verhältnis zum Nutzen. Dennoch gibt es einige großartige Python-basierte Spiele: „Frets of Fire“ und „Save the Date“ zum Beispiel. Wo Python wirklich von Bedeutung ist, ist die Data Science.

>

Die Plattform, die Lehrkräfte und SchülerInnen miteinander verbindet

1. Unterrichtseinheit gratis

Du findest diesen Artikel toll? Vergib eine Note!

5,00 (2 rating(s))
Loading...