Springe zum Inhalt

[Tech] Wie die Mauern entstehen

In vorigen Dev-Blogs haben wir uns darauf konzentriert, wie die Dinge im Spiel selbst funktionieren und aussehen – aber wir haben nie behandelt, wie sie eigentlich entstehen. Wie läuft es hinter der Bühne ab? Was auf den ersten Blick sehr einfach und offensichtlich wirkt, braucht eventuell durchaus einige Zeit bis eine adäquate Lösung gefunden und programmiert wurde.

Um also ein bisschen Licht ins Dunkle zu bringen, haben wir uns mit einem unserer Graphics-Programmer zusammen gesetzt – Florian. Er ist dafür zuständig, die Mauern, die ihr zum Schutz vor Invasoren verwendet, zu glätten. Unsere erste Frage an Florian war: Was genau ist ein Graphics-Programmer und was macht man so den ganzen Tag?

Die Antwort war nicht so klar wie erhofft, da der Job nicht so einfach zu erklären ist: Er versucht, Lösungen für die Grafiker zu finden, damit im Spiel alles korrekt aussieht. Außerdem implementiert er spezielle Effekte.

Wenn wir uns die Mauern anschauen, das Befestigungssystem, arbeiten ja schließlich mehrere Abteilungen daran: Die Grafiker, Animators, Logic-Programmer und der Graphics-Programmer. Grafiker bauen die Mauern als rechteckige Blöcke. Wenn wir diese allerdings auf das Terrain stellen, sieht das erstmal komisch aus – es sieht aus, als fehlt etwas.

Und hier kommt Florian ins Spiel. Er überlegt sich eine Lösung, die diese rechteckigen Blöcke in etwas Ebenes und gut Aussehendes verwandelt. Außerdem muss er immer ein Auge auf die Spielperformance haben: Manche Lösungen beeinflussen die Performance eventuell stärker als andere.

Das Ziel für Florian ist, einen glatten und flüssigen Übergang zwischen den einzelnen Mauerstücken sowie zum Terrain darunter zu erreichen.

Für seine Arbeit muss er auf mehrere Punkte achten:

  1. Flüssiger Übergang zwischen den Mauerstücken
  2. Mauern sollten sich an das Terrain anpassen
  3. Gras, und alles, das mit dem Terrain verbunden ist, sollte weiterhin funktionieren und sich korrekt verhalten
  4. Militäreinheiten müssen korrekt auf der Mauer laufen können

Hier beginnt nun die eigentliche Arbeit. Florian setzt sich hin und brainstormt mehrere Ideen. In der Welt von Die Siedler ist alles sehr dynamisch und die Assets müssen sich ihrer Umgebung anpassen, insbesondere dem Terrain-System. Daher müssen die Mauern dem darunterliegenden Gelände folgen. Das End-Stück der Mauer kann sich auch ändern, je nachdem wo der Spieler das nächste Stück platziert. Deswegen muss die Mauer anpassbar und flexibel genug sein.

Um das zu erreichen verwendet Florian „Splines“. Dieser Begriff beschreibt normalerweise eine weite Reihe von Funktionen. In diesem Fall ist diese Funktion eine Kurve, die aus 5 „Kontrollpunkten“ besteht. Einem Start, einem Ende und einem Punkt in der Mitte, mit einem Punkte jeweils rechts und links davon, um die Eigenschaften der Kurve festzulegen. Das macht es leicht, den Wall je nach Bedarf anzupassen.

Die Kontrollpunkte des Splines werden direkt auf dem Terrain platziert. Da die Mauer, wie beinahe jedes andere Objekt im Spiel, aus Dreiecken besteht, können wir das Spline benutzen, um seine Höhe auf die drei Eckpunkte des Dreiecks zu projizieren.

Jetzt haben wir nach wie vor das Problem, dass das Terrain eventuell höher oder niedriger auf den Seiten der Mauer ist, was bedeutet, dass wir es ebnen müssen, wenn wir ein Mauerstück platzieren. Auch wenn wir die Mauer verbessern, ändert sich der Spline nicht, da die Mauer eine vordefinierte Höhe hat. Sobald alles fertig gestellt ist, beginnt das Testen: Unterschiedliche Mauerstücke werden im Spiel platziert und es wird versucht, Fehler zu provozieren. Dabei wird beobachtet, wie sich die Mauer jeweils verhält.
Wenn alles perfekt läuft – und das tut es nie auf Anhieb – wird das System ins Spiel integriert.

Was sind eure Gedanken zur Arbeit eines Graphics-Programmers? Gibt es noch Informationen, die euch interessieren aber im Artikel fehlen? Welche Themen interessieren euch für einen zukünftigen Dev-Blog? Lasst es uns in den Kommentaren wissen.

de en es fr it pl ru

27 Kommentare

  1. Toph

    Hallo zusammen,

    ich hoffe mein Kommentar kommt nicht zu spät, ist der Artikel doch schon eine Woche alt. Da aber gerade nach Gedanken zum Thema „Graphics-Programmer“ gefragt worden sind, möchte ich die Gelegenheit nutzen. Worüber ich mir Gedanken gemacht habe sind gar nicht so sehr die Mauern, sondern ein anderes, grafisches Problem.

    Ich denke, dass ein zentraler Punkt in den Siedler-Spielen immer der Aufbau einer oder auch mehrerer eigenen Städte war. Die meisten Gebäude, gerade diejenigen die primär handeln und handwerken, werden zentral in „Hubs“ angeordnet, um möglichst kurze Wege untereinander zu realisieren. Mit Ausnahme von Siedler 6 empfand ich es allerdings immer so, dass die gebauten Siedlungen mehr wie eine Ansammlung an Gebäuden, aber nicht wie eine richtige Stadt wirken. Ich verweise zur Illustration mal auf folgenden Screenshot der Siedler-Allianz:

    https://ubistatic-a.akamaihd.net/0127/TSA/00_TSA/08_TS/01_Screenshots_GC/11.jpg

    In meinen Augen ist das zentrale Problem dabei, dass die Häuser und Straßen nur auf dem Untergrund platziert werden. Das ist bei den meisten Betrieben, die Resourcen aus der Landschaft erwirtschaften (Holzfäller, Jäger, Fischer, Bauernhöfe etc.) auch voll in Ordnung. Die Betriebe, deren Schwerpunkt mehr im Handwerk und Handel liegen, sollten sich jedoch eher zu einer Stadt „clustern“, der Untergrund sollte das entsprechend auch darstellen. Eine Straße könnte z.B. einen Bordstein und Laternen bekommen. Zwischen den Häusern ist es nicht grasgrün, sondern eher staubig, hier und da steht ein Busch zwischen den Gebäuden oder eine kleine Staute oder ein kaputtes Wagenrad. Das städtische Gebiet sollte sich optisch von der grünen Landschaft um die Siedlung herum abgrenzen.

    Natürlich muss das Spiel dafür in der Lage sein zu erkennen, wann ein Gebiet städtisch ist. Dies erscheint mir aber möglich. Bestimmt werden muss nur die Dichte „städtischer“ Gebäude innerhalb eines Bereiches – z.B. einer durch Straßen eingefassten Landschaft. Wenn diese Dichte hoch genug ist, setzt das Spiel automatisch andere Grafikelemente, um den städtischen Look zu erzeugen. Dabei könnte sogar die entsprechende Stufe der Stadt/der Gebäude mit einbezogen werden, beispielsweise durch eine andere Textur der Straße.

    Ich würde mich über eine Antwort auf diesen Gedankengang freuen!

    Viele Grüße
    Christoph

    Antworten zum Kommentar anzeigen
  2. OostfreesJung

    Toller Einblick hinter die Kulissen. Vielen Dank. Gerne Mehr! Und es gibt bestimmt mehr.. 😉
    Sucht euch doch einfach was aus, ich finde alles spannend!

    Mauern beruhigen mich ungemein im Spiel. Ich weiß auch nicht wieso. Vielleicht Igel ich mich gerne ein. 😀 Um dann zu planen, wie ich „draußen“ außerhalb der Mauern mit der rauen Umgebung umgehe..

    Antworten zum Kommentar anzeigen
  3. Elvis-sama

    Sehr interessanter Beitrag und auch mal ein Blick hinter die Kulissen. Danke dafür. Mehr! und Militär-Update wird es demnächst mal geben…? Da wir gerade von Mauern sprechen haha

    Antworten zum Kommentar anzeigen
  4. Alnothur

    Ich bin gespannt (und ehrlich gesagt leicht skeptisch) wie sich die Mauern dann schlussendlich ins Gesamtkonzept einfügen. Aber danke für den interessanten Einblick!

    Wo ja auch das Wort „Einebnen“ auftaucht: mir ist gerade aufgefallen, dass noch weit und breit nirgends der gute alte Planierer erwähnt wurde – wird es den im neuen Siedler auch wieder geben?

    Antworten zum Kommentar anzeigen
  5. Palisander

    Was ich von Anfang an bei den Türmen nicht zuordnen konnte, ist, warum die Türen nicht mit Eisenstreben verstärkt sind ?.?
    Ich nehme bisher ja noch an, dass die Türen auch zum ein und ausgehen ins Gelände von Arbeitern genutzt werden, z.B. wenn der Wald außerhalb der Stadtmauer liegt.

    Wenn schon Holztüren an strategisch wichtigen Punkten in Kauf genommen werden, warum gibt man dem Spieler nicht wenigstens die illusion, dass dort feuerfeste Türen zum Einsatz kommen? 🙁

    PS auf den Bildern sehe ich, dass die Mauer einmal quer gezogen wird. Komplett die Stadt einzumauern wird also aufgrund des Mapdesigns nicht nötig?

    PSPS Wird es auch wieder eine Burg geben? :3

    Antworten zum Kommentar anzeigen
  6. TSA_User59060

    Vielen Dank für den neuen Beitrag. Aber werden Splines ab einer bestimmten Anzahl an Kontrollpunkten nicht total kompliziert in der Berechnung? Wäre es nicht einfacher kubische Bezierkurven zu verwenden und diese aneinanderzureihen?

    Antworten zum Kommentar anzeigen
  7. sunny-u7

    Ich hoffe die Mauern sind auch stark genug um alle meine Feinde abzuhalten. Kann man die Mauern auch versetzen oder müssen sie abgerissen und neu errichtet werden, wenn man seine Stadt innerhalb der Mauern vergrößern will?
    Optisch macht das schon was her, wenn sich die Mauern so ins Gelände einfügen. Ist sicher nicht so ganz einfach der Job. Hoffe es wird alles so toll, wie es hier die Vorschau verspricht.
    Werden meine Bogis auch richtig auf der Mauer laufen können oder können sie nur eine Stellung halten?

    Antworten zum Kommentar anzeigen
  8. Reskul

    Super interessant ein wenig hinter die Kulissen schauen zu können und sowieso hier alles mehr oder weniger mit zu verfolgen. Ich freue mich schon sehr auf das Spiel und werde dann auch mal testen bis zu welchen extremen sich zum einen die Mauern setzen lassen und bis zu welchem extrem Florians Arbeit noch so super aussieht wie auf den Bildern hier 😉

    Antworten zum Kommentar anzeigen
  9. Valenti02

    Also ich möchte an dieser Stelle einfach mal ein ganz großes Danke an Ubsioft bzw das Siedler Team raushauen. Ihr gebt euch echt viel Mühe um über ein Spiel zu informieren und den User auch einen Einblick zu geben, das ist absolut nicht selbstverständlich und wird ja auch nicht von jedem Spiele Entwickler so gemacht… Deswegen Danke

    Antworten zum Kommentar anzeigen