Spiele unter Linux |
Hier möchte ich ein wenig über Spiele reden, bei denen Windows
keine Voraussetzung zum Starten ist. Teilweise gibt es diese
Spiele aber auch unter Windows, und ziemlich oft sogar unter einer ganzen
Reihe von Betriebssystemen.
Unter Unix-ähnlichen Betriebssystemen gab es schon lange eine ganze Reihe von Spielen. Diese sind grafisch meist "sehr dezent", oft wird einfach nur "ASCII"-Grafik verwendet, d.h. der normale Zeichensatz eines Computers (Beispiele dafür sind Rogue oder auch NetHack). Dies hat natürlich keinen direkten Einfluss auf die Komplexität und Spieltiefe, aber gerade in der heutigen Zeit spielt beeindruckende Grafik schon eine sehr wichtige Rolle - auch wenn bei manchen Spielen vor lauter Grafik der Inhalt etwas vernachlässigt wurde. Grafik in Computerspielen ist aber keine alleinige Domäne von PCs, die unter Windows laufen. Sicherlich ist durch die Verbreitung dieser Kombination es verständlich, dass Computerspiele (neben Konsolenspielen) normalerweise auf Windows-Rechnern laufen, aber dass muss prinzipiell nicht sein. Gerade bei der Programmierung von 3D-Grafiken treten immer wieder die gleichen Aufgaben auf: Darstellen von Objekten durch Polygone, Überziehen dieser Objekte mit Texturen (Bildchen, die die Oberfläche darstellen sollen), Effekte durch Lichtquellen und natürlich auch das teilweise Verdecken von hintereinanderstehenden Objekten. Alle diese Aufgaben sind in der Theorie gelöst, in der Praxis gibt es aber immer noch Spielraum durch besonders effektive Implementierungen. Eine Implementierung dieser Aufgaben stellt "OpenGL" dar. OpenGL stellt eine Programmierschnittstelle (API) zur Erstellung dreidimensionaler (und auch zweidimensionaler) Grafiken dar. Neben dem Vorteil, dass ein Zurückgreifen auf fertige Produkte den Programmierer von dem "erneuten Erfinden des Rades" befreit, hat eine standardisierte Schnittstelle den Vorteil, dass das jeweilige Programm nach einem einfachen erneuten Übersetzen direkt (oder nur mit geringen Änderungen) auf vielen Computern lauffähig ist. OpenGL wird beispielsweise unter den folgenden Betriebssystemen unterstützt: Mac OS, OS/2, UNIX, Windows 95/98, Windows 2000, Windows NT, Linux, OPENStep, und BeOS.
Unter Linux steht eine OpenGL-Implementierung zur Verfügung (wie ja schon
erwähnt). Die software-mäßige Lösung der o.g. grafischen Arbeiten ist
allerdings sehr aufwändig. Moderne 3D-Grafikkarten (von speziell dafür
erstellten Workstations wie denen von
Silicon Grafics
mal ganz zu schweigen :-), aber wir reden hier ja von PCs) besitzen dafür
spezielle Prozessoren, in denen effektive Implementierungen zur
3D-Darstellung enthalten sind. Diese können durch diese "3D-Chips" deutlich
schneller verarbeitet werden als durch die Hauptprozessoren der Rechner.
Es gibt unter Linux eine ganze Reihe von Spielen, die es auch unter Windows gibt. Hier kann sich der geneigte Leser einen ersten Überblick verschaffen. Problematisch ist sicherlich, dass neue Treiber zuerst unter Windows angeboten werden, erst später, wenn überhaupt, unter Linux. Zudem dürften auch hartnäckige Spielefreaks ein Spiel nicht zweimal kaufen (einmal unter Windows, einmal unter Linux). Aber die Möglichkeiten sind da. Leider hat inzwischen der durch qualitativ hochwertige Spielumsetzungen bekannt gewordene Spielehersteller Loki das Handtuch geworfen (siehe Meldung ). Dabei ist vermutlich auch der Grund schuld, dass diese Spiele erst deutlich nach dem Erscheinungstermin der Windows-Varianten erschienen sind (erscheinen konnten), und dass viele potentielle Linux-Spieler diese schon als Windows-Ausgaben gekauft haben. Woran es aber auch immer gelegen hat, schade ist dies auf jeden Fall. In der letzten Zeit sind aber auch einige Spielehersteller pleite gegangen, die Windowsspiele erstellt haben (z.B. Looking Glass). Dass muss also keinen direkten Bezug zu Linux haben, obwohl dieser Markt (für Spiele) hier natürlich (noch?) recht schwer ist. So, hier gehts los. Na ja, noch nicht sehr viel los :-), aber das wird sicherlich noch.
©2020 Holger Thiele generiert aus "linuxspiele.template" vom 27 03 2004 ![]() |