Ich bin der Meinung, dass jeder Spieleentwickler alles tun sollte, um seinen Workflow zu verbessern, anstatt alles von Hand oder von Grund auf zu tun. Aber was meine ich mit Werkzeugen? Level-Editoren, Debugger, Analysen…? All das und mehr! In diesem Artikel werde ich die verschiedenen Arten von Tools, die Spielentwicklern zur Verfügung stehen, aufschlüsseln und erläutern, warum Sie jedes verwenden möchten.
Wenn Sie ein Spiel entwickeln, wird es sicherlich die Zeit sein, in der Sie Inhalte hinzufügen müssen. Dies ist zunächst eine einfache Aufgabe: Sie müssen nur einige Arrays und Objekte in Ihrem Code einrichten. Aber während Ihre Entwicklung fortschreitet, kann ich fast garantieren, dass Ihr Inhaltscode unordentlich aussieht.
Stellen Sie sich vor, Sie haben zehn Level eines Plattformspiels, die im Code angeordnet sind, mit gegnerischen Spawn-Positionen, Objekten, Gegenständen, Plättchen und allem anderen darin. Während Sie es testen, stellen Sie fest, dass Sie die Spawn-Position eines Feindes ändern müssen. Der Inhalt der Ebene befindet sich in dieser großen Datei mit allen Informationen für alle Ebenen. Es klingt sicher nach Kopfschmerzen, wenn Sie den gesamten Code durchgehen und nach der genauen Zeile suchen, die Sie ändern möchten. Dies gilt nicht einmal für Änderungen, die sich auf andere Änderungen auswirken könnten - etwa die Position einer Plattform, auf der sich ein Feind befindet.
Natürlich möchten Sie Ihr Niveau auch visualisieren und im laufenden Betrieb ändern. Dies ist beim Betrachten des Codes nicht möglich.
Das Schreiben von Tools, die Sie in Ihrem Spielentwicklungsprozess unterstützen, ist ein komplizierterer, aber lohnenderer Ansatz. Sie könnten ein Werkzeug schreiben, das den gesamten Inhaltscode für Sie visuell in die Ebene selbst übersetzt. Wenn Sie ihn ändern, ändert das Werkzeug den Inhaltscode. Sie können auch Tools schreiben, mit denen Sie mehr Inhalte für Ihr Spiel erstellen, das Debuggen Ihres Spiels und sogar die Bereitstellung auf mehreren Plattformen unterstützen können. Oder Sie könnten eine Stufe höher gehen und das Tool für Ihre Spieler freigeben und sie auch Inhalte für Ihr Spiel erstellen lassen!
Dies kann den Erfolg Ihres Spiels sogar erhöhen, wie Sie vielleicht bemerken, wenn Sie sich nach den letzten Spielen umsehen, die dies bereits getan haben.
Werfen wir einen Blick auf die verschiedenen Tools, die Sie erstellen können, wie jedes dabei helfen kann, Inhalte zu Ihrem Spiel hinzuzufügen und zu verwalten, und die Schwierigkeiten bei der Erstellung.
Dies ist der breiteste Abschnitt. Ein Erstellungswerkzeug ist alles, was Ihrem Spiel Inhalte hinzufügt - Gegenstände, Charaktere, Stufen, Musik… Diese Werkzeuge sind die, mit denen Sie die meiste Zeit verbringen werden, denn das Spiel wird sich um sie herum drehen: Erstellen der Stufen, Gegenstände und Feinde; alles zusammenfügen; bis ins kleinste Detail polieren. Jede dieser Aufgaben kann ein Erstellungswerkzeug umfassen.
Auch wenn der Level-Editor nur von Ihnen oder Ihrem Team verwendet wird, müssen Sie die Benutzeroberfläche intuitiv und benutzerfreundlich gestalten.
Nehmen wir an, Sie haben ein Level-basiertes Spiel. Um ein gutes Werkzeug zum Bearbeiten Ihrer Ebenen zu erstellen, besteht die erste Aufgabe darin, dass das Werkzeug die Ebene für Sie visuell darstellt. Das heißt, es muss Ihnen genau zeigen, wie das Level für Ihre Spieler aussehen wird. Danach müssen Sie den Inhalt irgendwie bearbeiten können, damit Sie die Ebene erstellen können. Dies erfolgt über eine Schnittstelle. Lesen Sie sich jetzt sorgfältig durch, denn das ist wichtig: Auch wenn der Level-Editor nur von Ihnen oder Ihrem Team verwendet wird, müssen Sie die Benutzeroberfläche intuitiv und benutzerfreundlich gestalten. Warum? Weil niemand gerne mit etwas arbeitet, für das Sie eine Kombination von Schaltflächen drücken oder auf eine Reihe von Schaltflächen klicken müssen, um etwas so einfaches wie ein Objekt auf dem Bildschirm hinzuzufügen. Und dazu gehören Sie und Ihr Team.
Selbst wenn Sie es erstellt haben und alles über den Editor wissen, hilft das Erstellen einer benutzerfreundlichen Benutzeroberfläche jedem, dem Spiel Inhalte hinzuzufügen. Und wenn jemand die Abkürzung vergisst, wie ein Objekt beispielsweise als "kollidierbar" markiert wird, dann ist eine intuitive Benutzeroberfläche eine große Hilfe.
Hier ist ein aktuelles Beispiel - ein einfacher Level-Editor, den ich für ein Kettenreaktionsspiel von Windows Phone 7 erstellt habe:
Wie Sie vielleicht bemerkt haben, befindet sich der gesamte Level-Editor in der Adobe Flash Professional-Software. Ich habe keine separate App erstellt. Flash Pro war eine perfekte Umgebung: Für das Erstellen von Grafiken auf dem Bildschirm brauchte ich keinerlei Anstrengung, da ich mir ein einfaches Werkzeug anschaute, mit dem ich die Level für das Spiel erstellen konnte. Das einzige, was ich tun musste, war, eine sehr einfache Erweiterung zu erstellen (wie Sie auf dem Video sehen können), um alle Informationen dieser Ebene irgendwo für mich zu speichern (ich habe eine XML-Datei verwendet)..
Alles andere wurde von Flash Pro für mich erledigt: Ich konnte die Bildschirmgröße genau auf die Bildschirmgröße meines Spiels einstellen, ich konnte alle Objekte in ihrer tatsächlichen Größe auf dem Bildschirm platzieren und Hilfslinien einfügen, die mir helfen zu visualisieren, wohin die Aufnahmen nach einem Bild gehen würden Objekt war explodiert. Der Testprozess war so einfach wie das "Kompilieren" des Projekts in Flash, wodurch ein Fenster geöffnet wurde, in dem gefragt wird, wo die XML-Datei gespeichert werden soll. Wenn ich mein Spiel erneut kompilierte, würde es die aktualisierte XML-Datei lesen.
Nun stellen wir uns vor, Sie haben ein Shoot'em-Up-Spiel. Haben Sie schon einmal versucht, eine zu erstellen? Es ist ärgerlich (und kompliziert), all diese Feindbewegungen und Schießmuster durch den Code selbst einzurichten, und das Einstellen des Timings ist ebenfalls langwierig.
Hier ist ein Level-Editor, den ich als weiteres Experiment erstellt habe:
Dies ist ein Beispiel für was nicht machen. Obwohl mein Editor die Grundfunktionalität hatte, dass Sie feindliche Bewegungsmuster nach Belieben einrichten konnten, und sogar einige Hilfsfunktionen enthielt (in diesem Fall spiegelte ich den Feind wider, den ich bearbeitet hatte, um einen "Spiegeleffekt" zu erzeugen, als die Feinde im Spiel auftauchten). Die Schnittstelle war ein totaler Fehler.
Ich hatte nicht die Möglichkeit, alle Ebenen gleichzeitig zu visualisieren: Ich konnte nur Welle für Welle visualisieren. Haben Sie sich jemals vorgestellt, wie schmerzhaft es wäre, etwas auf dieser Ebene zu verändern? Wenn ich zum Beispiel die Laichzeit zwischen den Feinden der aktuellen Welle um 400 Millisekunden verzögern wollte, müsste ich alle nachfolgenden Wellen durchlaufen und hinzufügen (400ms * Anzahl der Feinde geändert
) zu allen Anfangslaichzeiten der anderen Wellen. Aus diesem Grund musste ich das Werkzeug von Grund auf neu erstellen.
Das Erstellen von Erstellungswerkzeugen ist eine sehr schwierige Aufgabe. Vielleicht sind dies die schwierigsten aller anderen Werkzeuge, die erstellt werden müssen, da Sie täglich damit beschäftigt sind, um Ihr Spiel zu erstellen. Sie müssen dafür sorgen, dass sie so schnell und einfach wie möglich verwendet werden, und sie dürfen nicht im Weg stehen, den Inhalt für Ihr Spiel zu erstellen. Wenn Sie feststellen, dass Sie Minuten oder sogar Stunden damit verbringen müssen, Dinge in Ihrem Editor zu ändern, weil Sie etwas anderes geändert haben, das behoben werden musste, sollten Sie vielleicht überdenken, ob das Werkzeug seinen Zweck erfüllt.
Ein hervorragender Ansatz ist das Erstellen von Editoren im Spiel. Mit diesen Tools können Sie den Inhalt während des Spiels ändern und testen, was Sie zur Laufzeit geändert haben.
Tools wie diese bringen Ihre Produktivität an Grenzen, da Sie sofort ein Feedback zu den von Ihnen vorgenommenen Änderungen erhalten. In einigen Editoren können Sie sogar den Wert von Attributen während des Spiels ändern, sodass Sie Befehle in Echtzeit ausführen und die Ergebnisse beobachten können. Sie können auch "Zeit biegen" und die Aktionen aufzeichnen, die Sie im Spiel ausgeführt haben, und dann die Attribute in Ihrem Spiel ändern (z. B. die Schwerkraft) und sehen, wie die Bewegung des Spielers, der dieselben Aktionen ausführt, in dieser neuen Umgebung aussehen würde.
Betrachten Sie dieses Beispiel eines In-Game-Karteneditors für ein in Entwicklung befindliches Spiel, Concerned Joe:
Dies sind wahrscheinlich die besten Freunde eines Programmierers. Wenn mit einem Spiel etwas schief geht, können Sie mit Hilfe von Debugging-Tools herausfinden, was es war. Sie können auch Statistiken zu Ihrem Spiel anzeigen, die Prozesszeit aller aufgerufenen Funktionen in Ihrem Code überprüfen, Speicherauszüge bereitstellen, wenn etwas fehlschlägt, Protokolle erstellen, solange die Anwendung ausgeführt wird, und vieles mehr.
Beim Programmieren eines Spiels verwendet ein Programmierer häufig viele dieser Tools - insbesondere den eigenen Debugger der Entwicklungsumgebung (falls vorhanden). Es können jedoch viele andere Tools geschrieben werden, um den Spielentwicklungsprozess in diesem Bereich zu unterstützen.
Für ein sehr komplexes Spiel möchten Sie häufig den Funktionsaufrufstapel wiederherstellen, wenn etwas abstürzt (damit Sie genau wissen, welche Codezeilen den Absturz verursacht haben) und so oft wie möglich Protokolle erstellen. Natürlich müssen Sie diese Protokolle interpretieren können. Möglicherweise könnte ein Tool zur Analyse der Protokolle hilfreich sein…
Schauen Sie sich beispielsweise dieses von Adobe erstellte Tool namens SWF Investigator an:
Mit diesem Tool, das zur Analyse von SWF-Dateien erstellt wurde, können Entwickler eine Vielzahl von Dingen ihres Spiels untersuchen, einschließlich der Code-Analyse (sie kann die SWF-Datei zerlegen, um genau zu erfahren, was die Anwendung gerade macht), was für eine sehr wichtige Rolle spielt Spieleentwickler - besonders bei der Optimierung von Code.
Das Schreiben eines Debugging-Tools ist jedoch sehr schwierig. Nicht, weil es eine "perfekte" Schnittstelle wie Erstellungswerkzeuge geben muss. Diese Tools werden häufig nur von Programmierern und dem Kernentwicklungsteam verwendet, und die Schnittstelle spielt keine Rolle Das viel. (Natürlich muss es immer noch in der Lage sein, Ihnen alles Wichtige zu zeigen und es Ihnen zu ermöglichen, Dinge mit Leichtigkeit zu manipulieren.) Nein, es ist schwierig, weil es eine Menge technischer Details gibt, die in sie einfließen müssen.
Diese Tools können jedoch dazu beitragen, dass Ihr Spiel auf den Plattformen Ihrer Spieler besser läuft, was natürlich sehr wichtig ist.
Bereitstellungstools sind erforderlich, wenn ein Team an verschiedenen Aspekten des Spiels arbeitet (möglicherweise ein Künstler und ein Programmierer) und wenn Sie für mehrere Plattformen entwickeln. Bei der Entwicklung für mehrere Plattformen müssen Sie die Bildschirmgröße jedes Geräts (insbesondere für mobile Spiele) und die technischen Einschränkungen jeder Plattform berücksichtigen.
Stellen Sie sich vor, Sie entwickeln ein Spiel für ein Smartphone mit einer Auflösung von 1280x768 und ein Tablet mit einer Auflösung von 1920x1200. Möglicherweise möchten Sie für jedes Gerät zwei unterschiedliche Bildsätze verwenden, da Sie keine Bilder für das Smartphone verwenden und für das Tablet vergrößern möchten. Das würde hässlich aussehen. Außerdem verfügt Ihr Smartphone wahrscheinlich nicht über genügend Speicher und Verarbeitungskapazität, um mit den großen Bildern zu arbeiten, die Sie für Ihr Tablet verwenden. Aus diesem Grund ist ein Bereitstellungstool erforderlich, das Sie bei der Verwaltung der Assets für Ihr Spiel unterstützt.
Nehmen wir an, Sie arbeiten in einem Team, das aus einem Künstler und einem Programmierer besteht. Der Künstler wird auf jeden Fall eine Menge Kunstgegenstände schaffen, aber wie wird der Programmierer damit umgehen, diese Kunstdateien im Spiel zu referenzieren? Am bequemsten ist es, den Namen der Datei an jeder Stelle, an der der Code verwendet wird, zu ändern oder hinzuzufügen, wenn der Künstler Kunstdateien ändert oder hinzufügt. Für große Projekte ist dies jedoch nicht möglich, da dies eine gute Entwicklungszeit in Anspruch nehmen würde.
Ein guter Weg, um damit umzugehen, wäre die Erstellung eines Tools zum Verwalten von Kunst-Assets für das Team: Der Künstler gibt einfach an, auf welche Art-Datei sich welche bezieht, und das Tool konvertiert die Dateinamen automatisch in einen vordefinierten Namen, der vom Tool selbst festgelegt wird . Auf diese Weise muss sich der Programmierer nicht um das Ändern von Namen im Code kümmern, wenn der Künstler etwas ändert.
Diese Tools sind leicht zu übersehen, aber Sie sollten sie auf jeden Fall in Ihren Spielen verwenden. Mithilfe von Tools nach der Veröffentlichung können Sie feststellen, wie sich Ihr Spiel auf dem Markt entwickelt und wie die Spieler es erhalten.
Dies ist für virale Web- und Mobile-Spiele sehr wichtig, aber auch Desktop-Spiele können von diesen Tools sehr profitieren. Damit können Sie nachverfolgen, wo das Spiel verfügbar ist und wie viele Spieler Ihr Spiel gespielt haben. Sie können sogar noch weiter gehen: Tools wie Playtomic, Mochi Analytics und GamesAnalytics können nachverfolgen, wie oft ein bestimmtes Level gespielt wurde, wie oft auf eine Schaltfläche geklickt wurde und wie viele Spieler Ihr Spiel abgebrochen haben (in der ersten Minute, erste fünf Minuten, zweite Sekunde) Ebene und so weiter) und mehr. Sie können diese Informationen dann verwenden, um daraus zu schließen, dass ein bestimmtes Level zu schwer ist (basierend auf der Anzahl der Spieler, die es nicht vollenden) und es dann korrigieren.
Es gibt noch mehr: Sie können auch Tools schreiben, um den öffentlichen Empfang Ihres Spiels im Internet zu verfolgen. Verwenden Sie dazu Bots, die Informationen über Facebook-Posts oder Tweets sammeln, die den Namen Ihres Spiels enthalten, und zeigen Sie an, welche Bewertungs-Websites Ihr Spiel überprüft haben, und so weiter. Vergessen wir auch nicht Google Alerts, ein hervorragendes Tool, das Sie benachrichtigt, wenn ein bestimmter Begriff im Web angezeigt wird.
Obwohl Sie wirklich müssen benutzen Tools zur Unterstützung Ihres Spielentwicklungsprozesses. Manchmal werden Sie feststellen, dass Sie dies eigentlich nicht brauchen erstellen Sie, da die Spieleentwicklungs-Community bereits viele Tools erstellt hat.
Es gibt viele hervorragende Spieleentwicklungswerkzeuge, die online verfügbar sind und die Sie verwenden können - es dauert nur ein wenig, um sie zu finden. Aber seien Sie vorsichtig: Wenn Sie der Meinung sind, dass ein Werkzeug nicht genau das tut, was Sie brauchen, ist es möglicherweise besser, Ihr eigenes Werkzeug zu schreiben, als Zeit zu verlieren, es so zu drehen, dass es in Ihr Spiel passt. Dies ist häufig bei spiel- oder gattungsspezifischen Tools der Fall.
Das Erstellen eines Tools ist eigentlich ein großes Thema, das mehrere Artikel allein verdient, aber ich gebe Ihnen hier einen Tipp: Sie müssen oft standardisieren, wie Sie mit dem Inhalt Ihres Spiels umgehen. Dies bedeutet, dass Sie eine Möglichkeit finden müssen, die Informationen Ihres Spiels zu speichern, sie laden und speichern zu können. Die meisten Benutzer verwenden XML oder JSON zum Beschreiben von Informationen. Möglicherweise möchten Sie jedoch Ihr eigenes Binärformat erstellen, wenn Sie eine spezifischere Beschreibung benötigen.
Das ist das Ende meiner Analyse der verschiedenen Tools, die Sie verwenden können, um Sie bei der Entwicklung Ihres Spiels zu unterstützen. Ich hoffe, Ihnen hat der Artikel gefallen und daraus gelernt! Wenn Sie Fragen haben, zögern Sie bitte nicht zu fragen.
Anmerkung des Herausgebers: Wir werden eine Liste großartiger Tools wie Ogmo Editor, Tiled und SFXR erstellen. Wenn Sie Vorschläge haben, lassen Sie es uns wissen!