[Blog] Entwicklung des SimCity-Offlinemodus

  • Neuer Blog-Artikel aufgetaucht!
    Blog Article





    Jan 14, 2014
    Simon Fox, Lead Engineer für den Offline-Modus
    Hi, ich bin Simon Fox. Ich kümmere mich als Lead Engineer um den Einzelspielermodus für SimCity. Ich möchte hier gerne mehr darüber erzählen, wie wir SimCity auf den Offlinemodus vorbereitet haben.
    Viele unserer Fans haben zum Release von SimCity nach einem Offline-Modus gefragt. Ich habe das Team versammelt, um dies nach der Veröffentlichung umzusetzen, sobald es praktisch möglich war.
    NEUAUFBAU EINER KREATIVEN VISION
    Die ursprüngliche kreative Vision für SimCity sah vor, dass sich jede Aktion im Spiel auch auf die anderen Städte der Region auswirken sollte. Mit dieser Vision vor Augen haben wir das Spiel kreiert. Der PC des Spielers sollte als Client alle Informationen an unseren Server übermitteln. Die gesamte Spielarchitektur war auf dieses Ziel ausgerichtet "“ von den Simulationsfunktionen bis hin zur Kommunikation innerhalb einer Region aus mehreren Städten. So konnte zwar kurz nach dem Start des Spiels die Zeitfunktion deaktiviert werden. Wichtige Aktionen wie die Kommunikation mit anderen Städten, die lokal erstell wurden oder ihrer übrigen Regionen oder auch das Speichern des aktuellen Status einer Stadt waren jedoch nicht möglich.
    Mein Team erkannte die Möglichkeit, einen Schritt nach vorn in Richtung Offlinemodus zu machen, ohne die Stabilität der Simulation zu gefährden. Lucy meinte, der Offlinemodus wäre ohne ein beträchtliches Maß an technischen Veränderungen nicht machbar. Und sie sollte Recht behalten. Am Ende werden wir sechseinhalb Monate damit verbracht haben, zentrale Elemente des Spiels neu zu entwerfen und umzuschreiben, damit es funktioniert. Selbst auf den ersten Blick triviale Dinge wie etwa das Speichern und Laden von Städten mussten komplett neu strukturiert werden, damit alles sauber läuft.
    UMSCHREIBEN ZENTRALER ELEMENTE
    Es wäre natürlich schön gewesen, einfach einen Schalter umzulegen und dem Spiel zu sagen, es soll ab sofort mit dem Test-Client statt unserem Server kommunizieren. Doch leider war es nicht so einfach. Komplette Berechnungen mussten umgeschrieben werden, damit das Spiel ordnungsgemäß funktioniert.
    SimCity ist grundsätzlich ein serverbasiertes Spiel. Das Spiel ruft routinemäßig wichtige Informationen wie den Regionsstatus, die Anzahl der Arbeiter, Handelsdaten etc. von unseren Servern ab. Ohne diese Daten geht im Basisspiel gar nichts. Das bedeutete für uns, dass wir das gesamte System von Java auf C++ umschreiben mussten. Alle Programmzeilen zur Onlinekommunikation mussten raus. Es gibt eine Menge Codezeilen, die zum Abruf von Daten von den Servern dienen. Daher galt es eine ganze Latte an Codes neu zu schreiben, um die Daten lokal zu erzeugen, vor allem, was die Informationen zur Region anbelangte.
    Das Spiel leitet Datensätze von einer Stadt zur nächsten. So bewegen sich die Daten durch die Regionen. Die dafür notwendigen Codes liegen auf den Servern. Wir haben sie jetzt alle im Client zusammengefasst. Der Client verarbeitet das Datenpaket der Region, wohin alle Städte ihre Daten schicken. Auch das haben wir mit in den Client hineingepackt.
    Danach galt es, alle regionalen Simulationen lokal durchführen zu lassen. Die Algorithmen, welche den Handel zwischen den Städten kontrollieren, mussten neu kalibriert werden. Für die Offlinevariante mussten sie beim Austausch von Daten zwischen den Städten empfindlicher reagieren. Allein dafür waren groß angelegte Optimierungsschritte vonnöten, um die Simulation auf den lokalen Modus vorzubereiten. Außerdem ist es unverzichtbar, dass das Spiel auf allen Systemen Spaß macht und funktioniert. Es wäre enttäuschend, nach dem Spielgenuss des Multiplayer-Modus herauszufinden, dass der Einzelspielermodus aufgrund mangelhafter Optimierung seine Dienste versagt.
    Es ging nicht nur darum, Komponenten hinzuzufügen. Es mussten auch Teil des Spiels entfernt werden, damit alles reibungslos funktioniert. Dabei gingen viele Codezeilen verloren, die fester Bestandteil des Multiplayer-Modus sind. Hierzu zählten etwa Codes und UI-Komponenten, welche für den Handel, den sozialen Austausch, den Weltmarkt, die Bestenlisten und die Erfolge vorgesehen waren. Und all das, ohne den Multiplayer-Modus zu beschneiden.
    Ihr werdet euch fragen, wie weit wir jetzt sind. Wir haben seit August daran gearbeitet und stecken mitten im Alpha-Test. Dies ist die letzte Testphase, bevor wir den Offlinemodus zusammen mit Update 10 in Umlauf bringen. Im Namen des gesamten Entwicklerteams danke ich euch für eure Geduld. Wir wissen, wie sehr ihr euch den Offlinemodus für SimCity gewünscht habt, und freuen uns wirklich sehr, ihn euch endlich nach Hause liefern zu dürfen.

  • Jetzt heisst es: Auf Patch 10 warten und der Offline Modus sowie wahrsch. Karten dürfen kommen!

  • Da hat sich Maxxis doch mal richtig Arbeit gemacht, wenn das ganze wirklich so umfangreich ist hätte ich ja nicht wirklich mit einer Umsetzung gerechnet.


    Im Moment legen die ja richtig los mit ihren Blog's, lange Zeit nichts und dann einer nach dem anderen so schnell muss man erst mal lesen können ;)


    Bin schon richtig gespannt wie sich die Modding Geschichte dann weiterentwickelt, so ne Region "am Stück" zu spielen wäre schon ne feine Sache :D

    • Offizieller Beitrag

    Ich als Dauernörgler bezüglich "ich will aber online spielen, was soll der Mist" kann da nur sagen, dass hoffentlich die Modderszene sich dann mehr zutraut und auch Mods bereitstellen wird, die von Maxis auch fürs Onlinespiel abgesegnet werden. Derzeit traut man sich ja nicht so recht ran bzw. ist übervorsichtig, auch weil Maxis ja noch keine wirklich Schnittstelle bereitstellt. Ich habe Hoffnung, dass es diese dann auch geben wird und die Mods auch teilweise übernommen werden können.

    Avalon - ein deutsches Text-Rollenspiel. Jeden Abend ueber 50 Spieler. Sei dabei!