Wie Cider funktioniert und die Auswirkungen aufs Mac-Gaming

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.

8 Responses to “Wie Cider funktioniert und die Auswirkungen aufs Mac-Gaming”

  1. Monty Says:

    Ich bin nicht der Meinung, dass Cider für die Zukunft gedacht ist, sondern das die Spielehersteller erstmal sehen, dass auch Leute am Mac Aktuelle “PC”-Spiele spielen wollen. Mich würde mal interessiere, ob man mit Cider selbst seine alten Spiele konvertieren kann?

    Es soll mehr ein Anreiz sein auch Spiele für Mac zu entwickeln (ohne Cider an sich), nicht nur für Windows. Ich bin mir sicher, dass diverse Hersteller Interesse haben, aber ohne eine größere Spielegemeinde (wie sie unter Windows einfach vorhanden ist) lohnt es sich einfach nicht.

    Cider ist wie gesagt nur eine Übergangslösung.

    Mir gefällt dein Beitrag :D Großes Lob ;) .

    - Monty

  2. Natural Selecter Says:

    wird es durch Cider etwas ausgebremsty
    Das ist der springende Punkt und leider ein kaum auszugleichendes Manko dieser Lösung.
    Abhilfe würde wohl nur eine von Unix (Mac, Linux, usw.), Windows und allen CPU Herstellern einheitliche Behandlung von für Spiele relevanten Ein- und Ausgaben bringen aber da können wir lange weiter träumen.

  3. Arne Says:

    Ja leider wird es so ein einheitliches System so lange nicht geben, wie irgendwelche Firmen nur an Profit interessiert sind…

  4. nebu Says:

    joa ich sag mal blizzard bringt seit eh und je spiele raus die für os und win laufen; EA hat auch angefangen und ich denke, der rest wird auch bald folgen; ( wieso nicht? )

  5. Spore - Mac OS X Version angekündigt - Mac Gaming Says:

    […] 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 […]

  6. Cider Artikel im Games4Mac Podcast - Mac Gaming Says:

    […] Artikel “Wie Cider funktioniert” ist als Feature in Folge 17 des Games4Mac Video-Podcast zu sehen. Schaut euch das Video doch […]

  7. Cedega-Linux-User Says:

    Also ich verwende zur Zeit cedega und Wine um auf meinem Linux spielen zu können. Leider muss ich anmerken das Transgaming, welche sowohl Cedega als auch Cider entwickeln, sich nicht mehr sonderlich um die Cedega-User kümmern, seitdem sie für Electronic Arts Spiele “portieren”.

    Bsp. Ich warte seit 1/2 Jahr auf Bugfixes obwohl ich jeden Monat 5 Euro Abdrücke. CNC3 läuft noch nicht und Civ4-BTS ist auch noch nicht fertig. Auch auf COD4 muss man noch warten, was mittlerweile dank wine aber gut spielbar ist.

    Cedega als auch Cider basieren zum Teil übrigens aus dem Wine-Code, damals noch wineX genannt.

    @Spiele-Entwicklung:
    Es GIBT schon die Möglichkeit Spiele so zu entwickeln das sie auf vielen Systemen laufen. Epic Games und ID machen es vor. Zugegeben, dafür muss man wissen wie man Spiele ohne Direct X entwickeln kann. Und bei den meisten Entwicklern fehlt einfach schlichtweg das Knowhow. Außerdem werden sie mit ihren Werkzeugen kurz gehalten.

    Es ist übrigens nicht so schwer ein im Vorfeld als portierbar-Entwickeltes Spiel zu portieren. Dazu reicht ein einzelner Programmierer aus der sich damit beschäftigt. Unreal Tournament 3, ET:QW…

  8. Cedega-Linux-User Says:

    “EA hat auch angefangen und ich denke, der rest wird auch bald folgen; ( wieso nicht? )”

    EA hat transgaming.com damit beauftragt. Angefangen haben sie nicht. Sonst würden sie die Spiele selber Native bei Erzeugung und auch Zeitgleich ebenfalls für den Mac veröffentlichen.

    Vielmehr hab ich das Gefühl das transgaming.com sich aus Interesse zwischengeschaltet hat und dafür eine kleines Endgeld bekommt. Denn die Entwickler von transgaming.com scheinen zu sehr unter Druck zu stehen, als das sie Rechte für eine Portierung von EA “abgekauft” hätten.

    Es sind nicht sehr viele Spiele die mit cedega/cider laufen. Aber ein Anhaltspunkt sollte dieses (cedega) Wiki geben:

    http://cedegawiki.sweetleafstudios.com/wiki/Main_Page

    Zusätzlich empfehle ich einen Blick in die wine-appDB (Wine Application Database) auf winehq.org

Leave a Reply

You must be logged in to post a comment.