Tony Waters, Head of SEO Marmalade Technologies, berichtet in diesem Beitrag über die Zukunft der plattformübergreifenden Spieleentwicklungstechnologien.

Das geführte Interview ist eine Originalübersetzung vom Beitrag „Interview with Marmalade: Cross-platform Game Development Tool“ von 80.lv.

Marmalade Gamedevelopment tool

Reden wir über Marmalade. Erzählen Sie uns ein wenig über die Ursprünge dieses Entwicklungstools. Wie hat das Ganze angefangen?

Marmalade hat sich im Laufe der Jahre einen gewissen Stellenwert im Mobile-Gaming-Bereich erarbeitet. Insbesondere hat es einen starken Stammbaum, um hochkäratige AAA-Titel auf das Smartphone zu bringen. Schon früh fanden wir einen Entwicklungsprozess für mehrere Plattformen, der viele verschiedene Tools, SDKs und inkonsistente Implementierungen grundlegender APIs erforderte. Mit jeder neuen Plattform kamen weitere Komplikationen hinzu, die die Entwicklung komplexer und zeitaufwendiger machten. Das Marmalade SDK begann als interne Technologie, um diese Komplexität zu reduzieren, indem es eine gemeinsame Toolchain und Abstraktionsschicht zur Verfügung stellte, die den Prozess der Unterstützung neuer Plattformen vereinfachte.

Wie funktioniert diese Technologie?

Marmalade ist ein offenes und flexibles SDK, das es Entwicklern ermöglicht, ihre Anwendung einmal mit einer einzigen Codebasis zu schreiben und dann auf einer Vielzahl von Plattformen einzusetzen, ohne die Leistung zu beeinträchtigen. Zusammen mit dem Kern-SDK bieten wir eine große Sammlung von Marmalade- und Partner-Middleware und SDK-Erweiterungen, die Entwickler optional in ihre Projekte integrieren können, um ihre Anwendungen zu vervollständigen. Dies reduziert den Zeit- und Arbeitsaufwand für Plattformspezifika erheblich, was bedeutet, dass Entwickler ihre Zeit dort konzentrieren können, wo es darauf ankommt und eine hervorragende User Experience bieten.

Der Kern unseres Produkts ist das C++ SDK, aber es gibt eine Reihe von zusätzlichen Tools, die Entwickler verwenden können. Marmalade Quick ist eine RAD-Game-Engine mit der Lua-Skriptsprache. Marmalade SDK ermöglicht es Entwicklern, iOS-Anwendungen, die in Objective C geschrieben wurden, auf Android umzustellen und schließlich erlaubt Marmalade Webentwicklern, hybride Anwendungen für Android und iOS mit HTML5 zu erstellen.

Die Erstellung eines Multiplattform-Spiels erfordert viel Zeit und Optimierung. Sie müssen Tausende von Details, Mechanik, Steuerung und Optik anpassen. Wie kann Marmalade bei der Lösung dieser Probleme helfen?

Marmalade erlaubt es Entwicklern in C++ zu programmieren, mit voller Unterstützung für Standardbibliotheken und Erweiterungen von Drittanbietern. Marmalade macht die Verwendung von Plattformwerkzeugen, Sprachen und APIs überflüssig, um sie durch eine einzige, einfach zu verwendende API und Tool-Chain zu ersetzen. Mit einem einzigen Projekt können Entwickler mit einer einzigen Codebasis auf einem Mac oder PC arbeiten und diese auf allen Plattformen einsetzen, einschließlich der Bereitstellung auf iOS von einem PC aus.

Die Marmalade Toolchain kompiliert direkt zu nativem Maschinencode ohne nennenswerten Performance-Overhead. Da Marmalade ein modulares System ist, sind nur die Bibliotheken und Dienste, die tatsächlich von der Anwendung verwendet werden, im Anwendungspaket enthalten, was die Installationsgröße gering hält und ein Aufblähen der Anwendung verhindert, was bei anderen plattformübergreifenden Lösungen ein Problem sein kann. Die API-Abstraktionsschicht von Marmalade macht den Umgang mit Plattformunterschieden sehr einfach, ein Beispiel dafür ist der Zugriff auf Low-Level-APIs über verschiedene Plattformen (wie Display, Sound, Accelerometer, Location etc.). Auf einer höheren Ebene gibt es Utility-Module sowie die nahtlose Handhabung verschiedener Eingabemethoden (wie Touch, Maus, Tastatur und Controller), die auch den Umgang mit unterschiedlichen Bildschirmauflösungen beinhaltet.

Wie teuer ist es, ihr Spiel zu einem Multiplattform-Titel zu machen? Hilft ihnen Marmalade, diesen Übergang kostengünstiger zu gestalten?

Wir sind der Meinung, dass Entwickler Zugang zum breitesten Markt der Verbraucher haben sollten, d.h. auf so vielen Plattformen wie möglich verfügbar sein sollten. Für jede Plattform zu entwickeln, ohne ein plattformübergreifendes Tools wie Marmalade zu verwenden, bedeutet oft, separate Projekte von separaten Teams erstellen zu lassen. Um zum Beispiel zwei Plattformen mit den nativen SDKs statt mit Marmalade anzusprechen, benötigen Sie die doppelte Menge an Code; das verdoppelt auch die Anzahl der zu behebenden Fehler und den doppelten Support, die Sie benötigen. Fügen Sie eine 3. oder 4. Plattform zur Liste hinzu und die Kosten werden immer höher. Der Single-Codebase-Ansatz mit Marmalade reduziert die Kosten für das Hinzufügen zusätzlicher Plattformen und macht es für Entwickler sehr einfach, ein sehr breites Publikum anzusprechen.

Können Sie uns etwas über den Testprozess erzählen? Nehmen wir an, wir haben bereits einen funktionierenden Prototyp und möchten diesen auf verschiedenen Plattformen testen. Wie machen wir das? Ist das auf einem PC möglich?

Marmalade bietet einen Simulator für PC und Mac, mit dem Entwickler ihre Anwendungen testen und debuggen können, ohne das spezielle Geräte benötigt werden. Marmalade ermöglicht es Entwicklern auch, auf echten Geräten zu testen, z.B. auf iPhones und iPads von einem PC aus.

Welche Plattformen unterstützen Sie? Kannst du ein Spiel für den PC oder einen Browser erstellen und es dann mit Marmalade auf mobilen Plattformen portieren?

Marmalade unterstützt alle führenden mobilen Plattformen: iOS, Android, Windows, Desktop, OSX, LG TV und Amazon Fire. Sobald Sie ein Spiel für eine Plattform entwickelt haben, ist es sehr einfach, es auf einer der anderen von Marmalade unterstützten Plattformen einzusetzen. Tatsächlich können bestehende Anwendungen problemlos auf neuen Plattformen eingesetzt werden, wenn Sie dem SDK hinzugefügt werden. Wenn Sie ein bestehendes C++-Projekt haben, ist Marmalade aufgrund seiner offenen und flexiblen Natur auch eine sehr gute Lösung für die Portierung von Anwendungen von anderen Plattformen. Natürlich, wenn Sie ein bestehendes Objective C Projekt haben, erlaubt Marmalade Juice Entwicklern, diese in Android zu implementieren.

Marmalade basiert auf C++. Warum haben Sie sich für diese Sprache entschieden? Wäre es nicht viel einfacher, etwas weniger Komplexes für Neulinge zu benutzen?

C++ bietet Entwicklern maximale Performance und viel Flexibilität. Wir wissen, dass C++ nicht unbedingt die richtige Sprache für jeden ist. Aus diesem Grund haben wir neben dem C++ SDK auch Marmalade Quick, eine RAD-Game-Engine, die die Lua-Skriptsprache und Marmalade Web verwendet, die es Entwicklern ermöglicht, schnell und einfach hybride Anwendungen mit HTML5 zu erstellen.

Was sind ihre Pläne für die weitere Entwicklung von Marmalade?

Wir werden weiterhin neue Plattformen hinzufügen und wir planen auch neue Werkzeuge und Dienste in die SDK aufzunehmen, um die Entwicklung von Anwendungen mit Marmalade noch einfacher zu machen.