Cider Artikel im Games4Mac Podcast
Thursday, February 7th, 2008Mein Artikel “Wie Cider funktioniert” ist als Feature in Folge 17 des Games4Mac Video-Podcast zu sehen. Schaut euch das Video doch einfach mal an.
Mein Artikel “Wie Cider funktioniert” ist als Feature in Folge 17 des Games4Mac Video-Podcast zu sehen. Schaut euch das Video doch einfach mal an.
Electronic Arts scheint gefallen daran gefunden zu haben Spiele mittels Cider auf den Mac zu portieren - statt endlich mal Titel wie Battlefield 2142 auf den deutschen Markt zu bringen wurde nun noch Spore für Mac OS X (Intel) angekündigt.

Spore ist eine Evolutions-Simulation und klingt prinzipiell recht spannend finde ich:
Deine Odyssee beginnt mit der Entstehung des Lebens als einfacher Organismus, der ums reine Überleben kämpft. Nutze dann die intuitiven Creator-Tools, um die Kreatur von ihrem Mikroben-Dasein in eine Spezies zu verwandeln, die intelligente Werkzeuge zu ihrem Vorteil einsetzt. Lenke deine Spezies, wenn sie die Dörfer, Gebäude, Städte und Fahrzeuge baut, die du entworfen hast. Auf dem Weg zur globalen Zivilisation liegt es an dir, ob du jagst oder plünderst, überfällst oder handelst, freundlich oder hinterlistig bist!
Mal schauen, ob und wann das Spiel in Deutschland erscheinen wird.
Grade wurde der Patch auf Version 1.40 für Battlefield 2142 auch für die Mac Version veröffentlicht. Windows User konnten sich ja schon etwas länger an dem Update erfreuen …
Der Patch enthält folgende Neugikeiten:
FEATURES
CHANGES
Cider 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.

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:

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.

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.
Seit ein paar Tagen ist EVE Online (ich hatte schon berichtet) in der Version 1.0 für Mac OS X erschienen.
Eine Demo Version kann man sich bei Apple herunterladen, was ich grade getan habe. Außerdem kann man mehr Infos über das Spiel in einem Feature Artikel auf apple.com lesen.
Aber nun zur Demo von EVE Online auf dem Mac:
Zuerst erstellt man sich auf der EVE Online Webseite hier einen Trial Account, mit dem man 14 lang das Spiel testen kann. Ist das erledigt startet man das Spiel und loggt sich mit dem Account auf dem Server ein. Danach geht es zuerst darum einen Charakter zu erstellen. Ich will hier nicht alle Details erklären, aber man wählt zwischen verschiedenen Rassen und Spezialisierungen. Ich fands ganz lustig und wenn man nicht rumtrödelt wird das auch nicht langweilig. Nach einiger Zeit hat man den Wunschcharakter erstellt und kann ins Spiel starten.
Nicht ganz klar ist mir an diesem Punkt, ob ich wirklich im Spiel bin oder ob es sich um einen Tutorial-Modus handelt, denn irgendein Assistent will mit mir ein Tutorial durchgehen, aber hier tauchen schon die ersten Probleme auf.
Zuerst fällt es mir ziemlich negativ auf, dass ich gar keinen Ton höre (gehört das so?), ein Spiel in dem es nicht mal eine Hintergrundmusik gibt und auch sonst keine Soundeffekte wird sehr - und ich meine wirklich sehr - schnell langweilig, so dass mich schon vor dem Anfangen die Motivation fast verlassen hat.
Dann will der Assistent, dass ich einen Rechtsklick auf mein Raumschiff mache. Dummerweise habe ich grade keine Maus zur Hand und kriege es mit dem Touchpad irgendwie nicht geregelt einen Rechtsklick durchzuführen den EVE (welches auch mittels Cider Technologie läuft) als solchen akzeptiert.
An diesem Punkt kann ich dem Tutorial also nicht mehr folgen, bin genervt von der Stille und suche einige Zeit nach einer Möglichkeit das Spiel überhaupt wieder beenden zu können (ESC drücken - ok hätte ich drauf kommen können). Das GUI ist leider doch etwas überladen und ich kann bei dem Spiel keine intuitive Steuerung erkennen.
Aber für jeden der auf solche Spiele steht ist es sicher eine tolle Nachricht, dass EVE Online nun endlich für den Mac verfügbar ist. Ich denke ich warte mal ein paar Tage und dann probier ich es ein zweites Mal, vielleicht ändert sich meine Meinung über EVE Online ja noch …