My Talking Tom Friends 2 mit Animation und Physik zum Leben erwecken

Als die Fortsetzung von My Talking Tom Friends, einem der erfolgreichsten Titel von Outfit7, fühlt sich My Talking Tom Friends 2 wie der natürliche nächste Schritt an, um den Spielern ein aktualisiertes Erlebnis zu bieten. Das Mobile-Spiel vereint beliebte Charaktere aus der ersten Iteration für ein virtuelles Haustierabenteuer der nächsten Stufe in einer neuen, spaßigen Stadt.
Wir haben uns mit Mihec Pezdirc, einem Software-Ingenieur bei Outfit7, und Črt Kristl, dem leitenden Software-Ingenieur des Teams, zusammengesetzt, um zu besprechen, wie sie die Leistung auf verschiedenen Geräten optimiert, ein skalierbares Animationssystem aufgebaut und die Komplexität der Inhalte verwaltet haben.
Was waren die größten technischen Herausforderungen beim Bau des Spiels?
Mihec Pezdirc: Die Optimierung des Spiels, damit es reibungslos auf Geräten von iPhone 5S und günstigen Android-Handys bis hin zu den neuesten Android-Handys läuft, war eine große Herausforderung. Wir haben uns auf Leistung, Größe, Energieeffizienz und visuelle Aspekte konzentriert.
Mit fast 1.000 Animationen haben wir ein benutzerdefiniertes System entwickelt, um die von Animationen verwendete App-Größe niedrig zu halten, zwischen 10 und 15 MB. Der Wechsel von vorgerenderten Grafiken zu einer dynamischen Welt erforderte den Verzicht auf ältere Standards wie OpenGL ES 3.0. Wir ermöglichen auch ASTC-Texturkompression und Compute-Shader für High-End-Geräte. ASTC reduziert auch die App-Größe, was in Märkten mit Speicher- und Downloadbeschränkungen hilfreich ist.

Wie hat die Arbeit mit Unity bei dem Kernspiel und den Minispielen geholfen?
MP: Der flexible Editor von Unity ermöglicht eine effiziente Zusammenarbeit zwischen Entwicklern, Künstlern und VFX-Teams. Wir haben benutzerdefinierte Tools und Timeline-Erweiterungen für filmische Momente entwickelt.
Črt Kristl: Aus der Sicht eines Entwicklers ist die schnelle Iteration von Unity ein großer Vorteil. Sie können den Code anpassen, in Sekunden neu kompilieren und Änderungen sofort testen. Wir haben auch einen Großteil unserer Pipeline mit benutzerdefinierten Nachbearbeitungswerkzeugen und Asset-Workflows automatisiert, was erheblichen manuellen Aufwand spart.

Wie beeinflusst die benutzerdefinierte Scriptable Render Pipeline (SRP) das Aussehen und die Leistung des Spiels?
MP: Unsere benutzerdefinierteSRP optimiert das Rendering für mobile Geräte und passt die Effekte je nach Gerätestufe an. Es bleibt dennoch visuelle Konsistenz erhalten. Wir steuern das Schatten-Rendering und die Bildschirmraum-Umgebungsokklusion (SSAO) direkt, was GPU-Zeit mit einem einmaligen, herunterskalierten SSAO und einer statischen Schattenkartenkamera spart. Dies reduziert die CPU-Überlastung und erhöht sowie stabilisiert die Schattenqualität.

Wie wirkt sich die Nutzung des C# Job Systems und des Burst Compilers auf die Grafiken des Spiels aus?
ČK: Das C# Job System verwaltet Animationspipelines – Retargeting, IK und Look-at-Transformationen – und führt Jobs effizient über Charaktere aus. Es unterstützt auch CPU-intensive Systeme, wie das Kochen von Minispiel-Simulationen, parallel zur GPU.
MP: Der Burst-Compiler und Unity.Mathematics für Single Instruction, Multiple Data (SIMD) verbesserten die Leistung und halfen uns, frühe Herausforderungen mit der Leistung des verwalteten Codes zu lösen. Dies ermöglicht es dem Spiel, selbst auf Geräten mit niedrigerer Leistung reibungslos zu laufen.
Welche Rolle spielt Unity Physics?
ČK: Unity Physics ist entscheidend im Koch-Minispiel, wo alle Objekte, von Lebensmitteln bis zum Förderband, vollständig physikbasiert sind. Anstatt Objekte manuell zu bewegen, läuft alles über Rigidbodies. Sobald Parameter wie Widerstand und Masse eingestellt sind, wird das System stabil und ermöglicht zuverlässige Interaktionen wie das Stapeln von Lebensmitteln.
MP: Da wir Unity Physics seit Unity 5 nicht mehr umfassend genutzt haben, sind wir von den Verbesserungen beeindruckt. Außerhalb der Minispiele deaktivieren wir die meisten Physikfunktionen auf Geräten mit niedrigerer Leistung und aktivieren nur leichte Operationen, wie Kugel- oder Kapselcasts für Tap- und Zieh-Interaktionen.
ČK: Die Low-Level-Physiksteuerungen von Unity geben uns die Flexibilität, das Gameplay fein abzustimmen, was es uns ermöglicht, spezifische Kollisionen zu ignorieren oder die Kontaktauflösung manuell ohne zusätzlichen Overhead zu handhaben.

Wie funktioniert das Charaktergesprächs-/Kommentarsystem?
ČK: Wir führen ein großes Excel-Dokument über alle Gespräche, die jeweils mit einer einzigartigen Kennung versehen sind. Designer aktualisieren dieses Dokument, und Unity importiert es, um ein Gesprächsdiagramm zu erstellen.
Charakteraktionen, wie Sitzen oder Essen, bestimmen, welche Gespräche verfügbar sind. Wenn beispielsweise drei Charaktere auf einer Bank sitzen, wählt das System zufällig ein nicht wiederholendes Gespräch aus. Es wendet dann Abklingzeiten an, um die Interaktionen frisch zu halten.
MP: Benutzerdefinierte Logik behandelt Interaktionen wie Begrüßungen, die Nähe erfordern und Abklingzeiten respektieren, um sie organisch zu halten. Das System zielt auf einen entspannten, natürlichen Fluss ab, indem es einfache Bedingungen und Zeitüberschreitungen anstelle komplexer Mechaniken verwendet. Das macht es effizient und designerfreundlich.

Welche anderen leistungsbezogenen Probleme hatte das Team während der Entwicklung?
ČK: Rendering und Shader waren auf Mobilgeräten sehr herausfordernd. Wir haben Geräte nach CPU/GPU-Leistung kategorisiert und dann Shader-Varianten erstellt, um nur das zu aktivieren, was jedes Gerät benötigte. Wir haben Compute-Shader benchmarked und häufig verwendete Shader während des Splashscreens vorgewärmt, um lange Ladezeiten zu vermeiden, ohne Frame-Hänger oder Abstürze zu verursachen.
MP: Wir haben das Laden von Szenen optimiert, indem wir Assets und Effekte dynamisch geladen haben, anstatt sie in Prefabs einzubetten. Das hält die Übergänge selbst auf Low-End-Hardware flüssig.
Welche Meilensteine erreichte das Team während der Entwicklung?
MP: Wir erreichen wichtige Kennzahlen, indem wir die App-Größe und den Speicher optimieren, ohne die Leistung zu beeinträchtigen. Wir balancieren LZMA- und LZ4-Kompression je nach Asset-Typ. Durch die Verwendung von benutzerdefinierten Asset-Bundles und selektiver Kompression haben sich die Ladezeiten auf älteren Geräten verbessert. Wir haben die Build-Pipeline automatisiert und diese Optimierungen schnell und wiederholbar gemacht.
ČK: Wir sind stolz auf das neue Aktionssystem. Es ist eine Zustandsmaschine, die die Aktivitäten der Charaktere verfolgt. Dieses Setup ermöglicht es mehreren Entwicklern, Interaktionen unabhängig zu erstellen, ohne das System zu stören.

Welchen Rat würden Sie einem Entwickler geben, der eine langfristige mobile Franchise aufbauen möchte?
MP: Planen Sie Ihre Verteilung und Vermarktung frühzeitig und verlassen Sie sich nicht auf die Sichtbarkeit im App Store. Schaffen Sie etwas Einzigartiges oder Besseres als das, was bereits vorhanden ist, und seien Sie bereit, mehrfach zu iterieren und zu scheitern.
ČK: Machen Sie Spiele, die Sie wirklich genießen. Leidenschaft für Ihre eigene Kreation ist oft wichtiger als Analytik.
Um mehr über Projekte zu lesen, die mit Unity erstellt wurden, besuchen Sie die Ressourcenseite.
