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.