Archive for the ‘Software’ Category

UT3 Linux Server kommt …

Friday, December 7th, 2007

Auch wenn die Mac OS X Version von Unreal Tournament 3 noch ein bischen auf sich warten lässt, so kam eben die Meldung, dass der Linux Dedicated Server nun bald erscheinen wird. Ohne einen Linux Dedicated Server sieht es nämlich schlecht aus in der Online-Gaming Welt. Die Zahl der Windows Server ist einfach zu gering und die ganzen Windows UT3 Gamer wollen ja schließlich irgendwo zocken.

Ryan C. Gorden aka icculus hat grade auf der UT3 Mailingliste folgendes geschrieben:

Very very soon for the server. We’re ironing out last-minute things, and will probably ship in sync with the Windows patch.

Ich schätze mal sobald der Linux Server draußen ist, sind auch wieder Resourcen (hier: Zeit) verfügbar um an dem Mac Client weiter zu arbeiten. Alles in Allem also gute News.

Wie Cider funktioniert und die Auswirkungen aufs Mac-Gaming

Friday, November 30th, 2007

cider_logo.gifCider ist eine Technologie der Firma Transgaming mit welcher Spielehersteller ein Windows Spiel ohne aufwendige Portierung der Quellcodes auf dem Mac (nur Intel Macs) lauffähig machen können. Ich will versuchen in diesem Beitrag zu erklären wie Cider funktioniert damit sich dann am Ende jeder eine Meinung bilden kann, ob Cider der richtige Weg für das Gaming auf dem Macintosh ist.

Bevor ich im speziellen auf Cider eingehe möchte ich ersteinmal Wine vorstellen. Wine ist eine quelloffene (Open Source) Implementation der Windows API für Unix Systeme mit X Grafiksystem.

API steht für Application Programming Interface und ist (in diesem Fall) im Prinzip eine Schnittstelle für Software um mit dem Kernel des Betriebssystems und damit mit der Hardware zu kommunizieren. Die Software muss ja schließlich Benutzereingaben bearbeiten, Netzwerkpakete verarbeiten und Ausgaben auf den Bildschirm bringen, all diese Aktionen laufen durch die API hindurch. Würde es die Abstraktion nicht geben müsste z.B. jedes Spiel selber alle möglichen Grafikkartentreiber mitbringen und herausfinden welchen es benutzen muss und würde dabei außerdem nicht besonders gut mit anderer Software (vorallem dem Betriebssystem) harmonieren. Alles in Allem wäre das undenkbar.

Aber nun wieder zurück zum Thema. Wine ist also eine unabhängige Version dieser Windows API für Unix Systeme, allen voran Linux aber auch FreeBSD, Solaris und Mac OS X. Die folgende Grafik soll ein wenig beim Verständnis helfen wie das ganze funktioniert und ist deshalb stark vereinfacht.

wine_api.png

Der einzige Haken an der Sache ist folgender: Da die Windows Programme direkt ausgeführt werden und es sich nicht etwa um einen kompletten Emulator handelt muss die CPU des Rechners eine x86 CPU sein, also etwa ein AMD Athlon/Opteron oder ein Intel Pentium/Xeon/Core etc., auf einer PowerPC CPU (wie in den alten Macs) oder z.B. einer Sparc CPU wäre es gar nicht möglich das Programm in den Speicher zu laden und auszuführen.

Nun aber endlich zu Cider. Cider basiert auf Cedega, einem anderen Produkt von Transgaming, welches es ermöglicht Windows Spiele ohne Modifikation unter Linux zu spielen. Cedega wiederum wurde vor einiger Zeit aus den Quellen von Wine abgespalten und wird seit dem von Transgaming weiter entwickelt. Während nämlich Wine das Ziel hat möglichst alle Windows Anwendungen zu unterstützen liegt der Fokus bei Cedega eindeutig auf Spielen und damit auch auf einer besonders guten Grafikunterstützung. Das Stichwort hier wäre DriectX, aber das auch noch zu behandeln würde den Rahmen sprengen.

Als Beispiel will ich jetzt an Hand von Battlefield 2142 zeigen, wie das ganze aussieht. Ein Rechtsklick auf das Battlefield 2142 Icon im Programme Ordner und dann Paketinhalt zeigen enthüllt folgende Struktur:

bf2142_1.jpg

In den Programm selbst steckt eigentlich nur ein kleiner Loader und dann das eigentliche Spiel inkl Cider. Das erklärt auch warum beim Starten zwei Icons im Dock zu sehen sind.
Ein weiterer Rechtsklick auf das Battlefield 2142 Programm und wieder “Paketinhalt zeigen” ausgewählt und wir sehen das eigentliche Game.

bf2142_2.jpg

Im Ordner Resources gibt es zwei interessante Ordner, Preferences und transgaming. Im Ordner Preferences gibt es unter anderem die Datei config, welche wir im Prinzip schon aus dem Battlefield Widescreen Fix kennen, d.h. dort werden Konfigurationsoptionen für Cider abgespeichert. (Jeder Benutzer hat allerdings noch eine eigene, personalisierte config Datei im ~/Library/ Ordner.)
Im Ordner transgaming verbirgt sich nun die Windows Dateistruktur. Es gibt zwei Ordner c_drive und g_drive, geht man weiter im Ordner c_drive, welcher unter Windows dem Laufwerk C: entspricht so findet man einmal die Ordnerstruktur C:\windows\system32\ und zum anderen die Ordnerstruktur C:\Program Files\Electronic Arts\Battlefield 2142\. Im Battlefield Ordner findet man dann 1:1 die selben Dateien, welche auch in der Windows Version von Battlefield vorhanden sind.

Fazit
Das heißt also, wenn man ein Electronic Arts Spiel für den Mac, oder eines der anderen mittels Cider umgesetzten Mac Games kauft, kauft man eigentlich nur die Windows Version mit einem kleinem Kompatibilitätslayer drumherum der alle Windows-API Aufrufe übersetzt. Alle Berechnungen die im Spiel selbst ablaufen werden mit der selben Geschwindikeit wie unter Windows ablaufen, da der Code direkt von der CPU ausgeführt wird (Wine und Cider sind keine Emulatoren), aber sobald das Spiel mit der Hardware des Rechners kommuniziert wird es durch Cider etwas ausgebremst, da alles API Aufrufe übersetzt werden müssen. Und eigentlich ist fast alles was das Spiel macht in irgendeiner Form mit einem API Aufruf verbunden. Jede Bewegung der Maus, jedes Paket dass ins Netzwerk übertragen wird (Multiplayer/Online), jede Ausgabe an die Grafikkarte (und das sind hoffentlich mehr als 30 pro Sekunde).
Wenn man jetzt noch auf das Thema DirectX eingehen würde, welches mit der Grafikausgabe zusammenhängt würde man sehen, dass die Umsetzung dieser Aufrufe wohl die aufwendigste von allen ist. Die Abfrage der Mausposition ist dagegen wohl kaum mit Verlusten behaftet, aber grade dort wo es dem Gamer weh tut, nämlich bei der Grafikperformance muss man die meisten Nachteile in Kauf nehmen, wenn das Spiel mit Cider läuft.

Wenn man sich anschaut, wie viel schlechter Battlefield 2142 unter Mac OS X gegenüber einem vergleichbarem Rechner mit Windows läuft, insbesondere bezogen auf die Grafikperformance, dann untermauert das genau diese Aussage noch weiter.

Spiele wie Unreal Tournament 2004 oder Unreal Tournament 3 oder auch das schon etwas in die Jahre gekommene Quake 3 benutzen keine derartige Technologie sondern wurden durch aufwendige Änderungen im Quellcode so angepasst, dass sie direkt auf Mac OS X laufen ohne dass irgendwelche API Aufrufe übersetzt werden müssen. Die Grafikausgabe erfolgt über den OpenGL Standard und die Spiele laufen auf dem Mac mit einer wahnsinnig guten Performance und stehen der Windows Version in nichts nach.

Ich hoffe ich kann mit diesem Beitrag etwas dazu beitragen Licht in die Mac Gaming Szene zu bringen. Mit diesem Wissen kann sich nun jeder selbst ein besseres Bild zum dem Status des Mac Gaming machen. Ich selbst halte Wine (und damit auch Cider) für eine sehr gute Technologie und respektiere den darin eingeflossenen Aufwand, aber meiner Meinung ist Cider der Tod für das Gaming auf dem Macintosh, denn solange die Spiele deutlich schlechter auf dem Mac laufen als auf einem Windows PC (oder einem Mac mit Windows) wird kein ernsthafter Gamer in Erwägung ziehen unter OS X zu zocken.

Steam unter Mac OS X

Thursday, October 25th, 2007

Im Natural Selection Blog Lerk.de gibt es noch einmal die Bestätigung, dass man Steam und damit Half-Life unter OS X benutzen kann. Möglicht wird dieses Wunder durch die Software Crossover, einer erweiterten und kommerziellen Version des Wine Projektes. Crossover funktioniert damit ähnlich wie die Cider Technologie mit der EA seine Spiele auf den Mac portiert hat, nämlich in dem man in einem Kompatibilitäts-Layer die Windows API Aufrufe der Software abfängt und auf die API Aufrufe der eigenen Platform (hier:Mac) übersetzt. Möglich wird der Einsatz dieser Techniken auf dem Mac übrigens erst seit Intel Prozessoren und damit die x86 Architektur zum Einsatz kommt, sonst könnte man die Windows Programme überhaupt nicht ausführen (außer mit Emulatoren, die sehr viel Performance kosten).
Das Beste an Crossover für den Mac ist übrigens, dass Half-Life 2 offiziell unterstützt wird …

steam.jpg

Ich denke ich werde mir mal die Trial Version von Crossover runterladen und ausprobieren.

VMWare vs. Parallels

Wednesday, August 29th, 2007

Auf Macworld.co.uk gibt es einen interessanten Artikel über VMWare und Parallels als Virtualisierungslösungen für den Macintosh. Auf den ersten Blick sehen VMWare Fusion und Parallels Desktop for Mac nämlich relativ ähnlich aus. Wenn man die Produkte allerdings benutzen will um Windows Spiele auf dem Mac zu spielen, ohne Bootcamp zu benutzen, dann sieht das ganze schon etwas anders aus.

Zwei Aussagen aus dem Artikel fand ich besonders interessant:

VMware Fusion is also capable of more heavy duty, multimedia tasks due to its support of multiple core processors. Parallels currently only supports one core per CPU.

und

On the flip side, however, Parallels Desktop is the only virtualization product that supports 3D gaming right now. Parallels is “the only solution that can run OpenGL applications like Quake4,” said Rudolph.

Was bedeutet das also für den durchschnittlichen Mac-Gamer? Im Prinzip, dass beide Produkte ihre Schwächen haben. VMWare bietet zwar deutlich mehr CPU Power, aber nur Parallels unterstütz aktuelle 3D Technologien.

Für mich heißt das, dass nur Parallels in Frage kommt, was meint ihr?