Level-Layout und Terrain-Workflows in Survival Kids

Survival Kids ist Unitys erstes End-to-End-Entwicklungsprojekt, das in Zusammenarbeit mit KONAMI erstellt wurde. Das kleine Team, das es gebaut hat, hat auf jahrzehntelange Erfahrung in der Spieleentwicklung zurückgegriffen, und diese Blogreihe taucht ein, wie sie dieses ehrgeizige Projekt angegangen sind. Die erste Folge erkundete die Rahmen- und Rendering-Arbeiten des Teams, während diese Ausgabe sich mit Level- und Umgebungsdesign beschäftigt.
Während wir hauptsächlich darüber gesprochen haben, wie wir die Optik erreicht haben, die Sie auf dem Bildschirm sehen, wollten wir darauf eingehen, was wir getan haben, um unsere Arbeitsabläufe zu verbessern, um sie schneller zu machen, damit wir das Projekt rechtzeitig liefern konnten.
Aufgrund der Größe des Teams und des Umfangs des Projekts haben wir viel Überlegung in das Level-Layout und die Terrain-Arbeitsabläufe gesteckt. Wir benötigten etwas, das für einen Level-Designer einfach war, um Ideen zu iterieren, aber unser Ansatz musste auch minimal bis gar keine Nacharbeit erfordern, sobald die Levels an das Art-Team übergeben wurden. Wir haben uns für einen Ansatz entschieden, der einen sehr weißen Box-ähnlichen Arbeitsablauf für die Level-Designer hat, während wir bereits mit den endgültigen Spiel-Assets gearbeitet haben.
Survival Kids verwendet eine Reihe von wiederverwendbaren Bausteinen, um das Hauptlayout der Levels zu erstellen. Es handelt sich um eine Reihe von Prefabs mit Klippenfelsseiten und einem Mesh-Terrain-Patch oben, die in verschiedenen Größen und Formen konfiguriert sind.

Die Klippenseiten sind acht separate Meshes, Seiten und Ecken, jeweils mit einem vereinfachten Mesh-Collider. Alle teilen sich dasselbe Material, was ihre Rendering-Geschwindigkeit erhöht.

Dieses Setup ermöglicht es dem Level-Designer, diese Bausteine zu verwenden, um die meisten Levels mit den endgültigen Spiel-Assets zu erstellen, jedoch mit einem schnellen Arbeitsablauf, der sehr nah am White-Boxing ist, um eine schnelle Iteration von Ideen zu ermöglichen.
Dieser Terrain-Modul-„Baustein“-Ansatz führte zu vielen überlappenden Modulen aufgrund der organischen Formen der Levels. Es führte auch dazu, dass die meisten Klippenseiten innerhalb oder hinter anderen Modulen waren und nie von der Spielkamera gesehen wurden. Um dies zu lösen, haben wir ein Editor-Tool erstellt, das jedes Modul einzeln durchging, um zu überprüfen, ob irgendein Teil von ihnen jemals aus dem Blickwinkel der Spielkamera gesehen werden konnte, und alle unsichtbaren entfernt hat.

Wir haben ein Houdini Engine-Tool verwendet, um kontinuierliche Terrain-Meshes basierend auf den verschiedenen Abschnitten der Terrain-Module zu erstellen.

Eine modifizierte Version des Unity-Polybrush-Pakets wurde verwendet, um die verschiedenen Materialien auf den Terrain-Meshes zu malen. Die Modifikation bestand darin, dass Polybrush eine Kontrolltextur malen würde, ähnlich wie es das Terrain-System von Unity tut, anstatt Werte auf die Scheitelpunkte des Meshes zu malen.

Ambient Occlusion wird dann in die Vertexfarbe der Terrain-Meshes gebacken, um die Objekte, die darauf platziert sind, visuell besser zu verankern.

Ein benutzerdefiniertes Tool wurde dann verwendet, um kleine Objekte wie Gras, Blumen und kleine Steine auf den Terrain-Meshes zu verteilen. Die Verteilung der Objekte wird individuell mit Parametern wie Dichte, zugrunde liegendem Material, Terrain-Krümmung oder Nähe zu größeren Objekten gesteuert. Im Verlauf des Projekts haben wir eine sehr niedrige Dichte beibehalten, um die Leistungsauswirkungen kleiner Vegetation zu minimieren.

Wir haben dann ein weiteres benutzerdefiniertes Tool verwendet, um die Mesh-Collider der verschiedenen Terrains zu teilen. Wir haben dies auf zwei Arten gemacht:
- Als Raster, um die Dreiecksanzahl und das Volumen jedes Mesh-Colliders zu reduzieren und die physikalische Leistung des Spiels zu verbessern
- Nach Material, damit das Spiel unterschiedliche Geräusche und Fußschritt-VFX basierend auf dem Material, auf dem die Charaktere laufen (Gras, Sand, Schnee, Eis usw.), erzeugen kann.

Dieser Beitrag bietet nur einen Einblick, wie wir stilisierte, leistungsfähige Grafiken und Rendering eingerichtet haben, um unsere Zielrate für Survival Kids zu erreichen. Schau dir den ersten Beitrag in der Serie an, "Grafik- und Rendering-Tipps von Survival Kids," und bleib dran für weitere Unity-Blog Beiträge über das Spiel, einschließlich eines zweiteiligen tiefen Einblicks in das Multiplayer-Netzwerk. Du kannst auch weitere technische Entwicklergeschichten auf unserer Ressourcenseite finden.



