Review

Linux als Spieleplattform?

Es gab Zeiten, da liefen Spiele nur unter DOS und an hardwarebeschleunigte 3D Grafik war noch nicht zu denken. Jeder (Spiele)Programmierer konnte direkt auf die Hardware zugreifen und so wunderbare Welten im Rechner erschaffen. id Software's DOOM war einer der letzten Vertreter dieser Gattung, welcher nochmals die gesamte Pracht des VGA Grafik zum Vorschein bringen konnte. Unter Windows 3.1 war nicht an schnelle Grafik zu denken, man entwicklete zwar einen kleine Schnittstelle namens WinG, mit der recht flotte 2D Grafik möglich war, es fehlten aber spieletaugliche Schnittstellen für den Sound und Eingabegeräte.
So begann Microsoft mit der Entwicklung (und dem Aufkauf) einer Schnittstelle für Spieleentwickler, welche Grafik (2D + 3D), Sound (2D + 3D), Eingabegeräte und Onlineverbindungen (Modem, Netzwerk, etc.) beinhalten sollte. DirectX war geboren. Seither machte DirectX einige Sprünge und ist mittlerweile bei der Version 8.1 angelangt. DOS starb aus und Windows 95 / 98 / Me trat seinen Siegeszug als Multimedia- und Spielebetriebssystem an. Heute gibt es kein Spiel, welches nicht einen kleinen Teil der DirectX Schnittstelle verwendet.
In den letzten Jahren haben sich für Linux und den Mac ähnliche Schnittstellen (OpenGL, OpenAL, SDL) entwickelt, mit denen es ohne Probleme möglich ist, aktuelle und zukünftige Spiele auf Linux und den Mac zu portieren oder, was wesentlich besser wäre, gleichzeitig für verschiedene Systeme zu entwickeln.

OpenGL - 3D Grafik, OpenAL - 2D/3D Sound und SDL - 2D Grafik, Eingabegeräte, Threads... sind also für Linux, Mac und Windows vorhanden.
Warum also nicht gleich ein Spiel für alle 3 Systeme entwickeln ?
Aus diesem Grunde habe ich mich dazu entschieden, einen kleinen Blick auf die aktuelle Situation unter Linux zu werfen.


Grafik unter Linux?!?!


Alles was unter Linux mit Grafik (ausgenommen ASCII-Zeichen Grafiken) zu tun hat, benötigt einen X-Server, der im X-Window System enthalten ist. X wurde vom MIT & Digital Equipment Corporation entwickelt. Die aktuelle Version ist X11R6 (Version 11, Revision 6).
Heute wird es von The Open Group weiterentwickelt und vertrieben. Abgesehen von seiner kommerziellen Nutzung, gibt es auch eine freie Version, namens XFree86, welche einst für 386'er Unix Systeme gedacht war, später aber auch auf nicht x86 Systemen eingesetzt wurde. Als 3D-API hat sich OpenGL durchgesetzt, da es auf vielen unterschiedlichen Systemen (Unix, Linux, Mac, Windows) läuft und per DRI (Direct Rendering Infrastructure) auf fast allen gängigen 3D Karten hardwarebeschleunigt ist.

DRI
Folgende Grafikchipsätze werden unterstützt:


ATI
  • Radeon
  • Rage 128 (Standard, Pro, Mobility)

Intel

  • i810
  • i810-dc100
  • i810e
  • i815
  • i815e

Matrox

  • G200
  • G400
  • G450

NVIDIA

NVIDIA stellt eigene Treiber bereit. Da es keine Hardwarespezifikationen vom Hersteller gibt, existieren auch keine DRI Treiber. Dummy Treiber liegen allen Linuxdistributionen (Suse, Red Hat, Mandrake, ...) aus lizensrechtlichen Gründen bei. Funktinierende 3D Treiber muß man also bei NVIDIA herunterladen.


3dfx
  • Voodoo 5
  • Voodoo 4
  • Voodoo 3
  • Banshee

3Dlabs
  • MX/Gamma Chipset

Sound unter Linux?!?!

Hierzu gib es unter Linux verschiedene Soundserver - Open Sound System (OSS), Advanced Linux Sound Architecture (ALSA), esound, aRTs, Simple DirectMedia Layer oder waveout. Damit werden nahezu alle aktuelle und älteren Soundkarten unterstützt. Die Treiber gehören bei jeder modernen Linuxdistribution zum Lieferumfang und stellen keine besonderen Anforderungen bei der Installation. OpenAL bietet für jeden Soundserver ein eigenes Backend und läuft somit auf allen.


Der Performancevergleich



Testsystem

Komponente
Beschreibung
Betriebssystem(e)
Windows 98 (DirectX 8.1 beta)

Linux Mandrake 8.0 (Kernel 2.4.7, XFree 4.1.0 patch Level 7 mdk, glibc-2.2.3-7mdk)
Treiber
Windows : NVIDIA Detonator 14.40, VIA 4in1 4.32

Linux : NVIDIA Detonator 1.0-1251
Benchmark(s)
Quake 3 Arena - Point Release 1.29g beta (demo four)

Unreal Tournament 4.36 ( utbench , benchmark )
CPU
AMD Duron 1 Ghz (133 Mhz FSB)
Mainboard
Abit KT7a (VIA KT 133a) ohne Raid
Speicher
2x 256 MB PC133 Micron (2-2-2)
Festplatte(n)
Western Digital WDAC418000 18 GB, Maxtor 52049H3 20 GB
Grafikkarte
NVIDIA Geforce 2 PRO 64 MB + TV-Out (ASUS 7700 PRO/T) - lief mit AGP 2x!
Netzwerkkarte
Realtek RTL8139 100 MBit
Soundkarte
Creative Soundblaser Live Value


Benchmarkeinstellungen Quake 3:

  • VSYNC aus, per Treibermenu (Windows) / __GL_SYSNC_TO_VBLANK=0 (Linux)
  • r_ext_compressed_textures 1 + vid_restart
  • s_initsound 0
  • alle Werte im Spiel auf Maximum (außer bei Fastest!)


Quake 3


Warum Windows in den niedrigen Auflösungen nicht an Linux herankommt bleibt mir ein Rätsel. Die Windows 98 Version war neu und es wurden nur die nötigsten Treiber installiert. Ich habe es mit den 12.41'er & den 14.40'er Detonator Treibern versucht - kein Unterschied. Auch dürfte es nichts mit dem VSYNC zu tun habe, denn das war deaktiviert und die Hz Rate des Monitors lag gerade in den niedrigen Auflösungen bei 150. Trotzdem sind die Werte auf beiden Systemen zufriedenstellend und dürften für ungetrübten Spielspaß sorgen.


Benchmarkeinstellungen Unreal Tournament:

  • VSYNC aus, per Treibermenu (Windows) / __GL_SYSNC_TO_VBLANK=0 (Linux)
  • neue OpenGL.dll unter Windows verwendet (http://unreal.epicgames.com)
  • UnrealTournament.ini
    • OpenGLDrv.OpenGLRenderDevice] / [SDLGLDrv.SDLGLRenderDevice]
      • DetailTextures=1
      • UseTrilinear=1
      • UseS3TC=0
      • UseTNT=0
      • LODBias=0
      • UseMultiTexture=1
      • UsePalette=1
      • UseAlphaPalette=0
      • Translucency=1
      • VolumetricLighting=1
      • ShinySurfaces=1
      • Coronas=1
      • HighDetailActors=1
      • MaxAnisotropy=0
      • AlwaysMipmap=0
      • UsePrecache=0
      • SupportsLazyTextures=0
  • Min. Desired Framrate auf 0
  • mit Kommandozeilenoption -nosound gestartet


Unreal Tournament - min

Unreal Tournament - avg

Unreal Tournament - max


Auch hier sind die Resultate sehr eng zusammen. Nur bei sehr hohen Auflösungen hat Windows einen leichten Vorteil. Die Treiber scheinen sich jedoch durch ihre einheitliche Codebasis sehr zu gleichen. Auch hier erlebte ich keinerlei Systemabstürze. NVIDIA hat mit seinen Treibern wirklich saubere Arbeit geleistet. Auch bei zukünftigen NVIDIA Grafikkarten kann davon ausgegangen werden, dass diese am schnellsten mit Linuxtreibern versorgt werden, da ja alle auf einer einheitlichen Codebasis basieren und vom Hersteller selbst geschrieben werden.
Alle anderen Hersteller geben Informationen an die Entwickler der DRI Treiber weiter und lassen diese die Treiber programmieren. Damit dauert die Treiberentwicklung natürlich länger und verschafft NVIDIA wieder einen Kundenvorteil. Gerade in so einem hartumkämpften Markt werden die Treiber eine große Rolle im Kampf um Kunden.



Das Fazit


Wie man sieht, hat Linux durchaus das Zeug, sich zu einer attraktiven Spieleplattform zu entwickeln. Immerhin läuft in Japan bei Sony bereits eine Linuxversion auf der Playstation 2.
Die Entwicklungen der Treiber und Systembibliotheken geht in die richtige Richtung und wenn mehr und mehr Spiele auf den Mac portiert werden, dann wird man sich sicher auch eine weitere Verdienstmöglichkeit, wie Linux, nicht lange entgehen lassen. Zum Schluss habe ich noch eine kleine List zusammengestellt, die die meisten erhältlichen und kommenden Spiele + "Zubehör" für Linux enthält.


Spieleliste (Stand 09.08.2001)

Titel
Termin (leer bedeutet bereits erhältlich!)
Alpha Centauri
Alpha Centauri Strategy Guide
Bunnies
Civilization: Call to Power
Civilization: Call to Power Strategy Guide
Conquest of Elysium II
Descent 3
Descent 3 Strategy Guide
Descent 3: Mercenary
Deus Ex Erwartet am 05 Okt 2001 (nicht bestätigt!)
Dominions
Eric`s Ultimate Solitaire
Heavy Gear II
Heavy Gear II Strategy Guide
Heavy Metal: F.A.K.K.2 Erwartet am 15 Sep 2001 (nicht bestätigt!)
Heretic II
Heretic II Strategy Guide
Heroes of Might and Magic III
Heroes of Might and Magic III Strategy Guide
Hopkins FBI
Jagged Alliance II
Kohan: Immortal Sovereigns Erwartet am 15 Aug 2001
Krilo
LinuxForKids CD Collection Volume 1
Mindrover
Myth II: Soulblighter
Neverwinter Nights Erwartet am 15 Nov 2001 (nicht bestätigt!)
Quake II Strategy Guide
Quake II: Colossus
Quake III Arena
Quake III Arena Strategy Guide
Quake III Team Arena
Quake: The Offering
Railroad Tycoon II: Gold Edition
Reel Deal Slots
Rune
Rune: Halls of Valhalla Erwartet am 15 Aug 2001
Shogo: Mobile Armor Division
SimCity 3000
SimCity 3000 Strategy Guide
Sin
Sin Strategy Guide
Soldier of Fortune
Soldier of Fortune Strategy Guide
Terminus
Theocracy
Tribes 2
Tribes 2 Strategy Guide
Unreal Tournament
Wurstelstand


Wo kann man Spiele für Linux kaufen???

http://www.lokigames.com
http://www.tuxgames.com


Quellen:

http://www.dri.sourceforge.net
http://www.precisioninsight.com
http://www.freshmeat.net
http://www.xfree.org
http://www.openal.org
http://www.kernel.org
http://www.opengl.org
http://www.devolution.com/ ~slouken/SDL/

http://www.idsoftware.com
http://unreal.epicgames.com

http://www.evil3d.net
http://www.anandtech.com
http://www.3dcenter.de

http://www.mandrake.com
http://www.suse.de
http://www.redhat.com

http://www.microsoft.com/directx/
http://www.nvidia.com
http://www.ati.com
http://www.3dlabs.com
http://www.3dfx.com
http://www.matrox.com