Ein Spiel als Tutorial machen? [geschlossen]

19

Ich bin verantwortlich für einen Spieleentwicklungsclub an meiner Schule und möchte diesen Sommer an einem Projekt arbeiten, das ich als Tutorial für das nächste Semester verwenden könnte. Ich habe so etwas noch nie gemacht, also habe ich mich gefragt, ob jemand irgendwelche Richtlinien oder Ideen hat.

Grundsätzlich möchte ich ein sehr einfaches Spiel machen. So etwas wie ein Top-Down-Shooter, bei dem Feinde hereinkommen, damit Sie sie töten und Beute einsammeln. Ich möchte jedoch, dass alles sehr einfach geändert wird. Die Leute im Club haben wenig Erfahrung mit der Entwicklung von Spielen. Wenn ich mein Spiel also so einrichten könnte, dass die Leute problemlos Funktionen ändern und hinzufügen könnten, wäre das großartig für sie.

Dinge wie eine feindliche Klasse, in der das Verhalten leicht zu spielen ist, oder die Waffen anders schießen lässt / neue Waffen hinzufügt und neue Beute. Sogar das Hinzufügen neuer Elemente zum Spiel. Was wäre der beste Weg, um das Spiel so zu gestalten, dass es so formbar ist?

Benixo
quelle
1
Schauen Sie sich diese Antwort auf Stack Overflow an.
Andrew Russell

Antworten:

16

Ein traditioneller Weg, um dieses Ziel in der Spieleentwicklung zu erreichen, ist die Verwendung einer datengesteuerten Architektur für die Spielsysteme.

Im Wesentlichen bedeutet dies, dass der Code keine bestimmte Art von Waffe (eine Waffe) mit explizit definierten Werten für Reichweite / Schaden / Durchschlag implementiert, sondern die allgemeinen Konzepte einer Fernkampfwaffe (Reichweite / Schaden / Durchschlag ...) auffüllt. von einer externen (zum Code) Datenquelle. Diese externe Quelle kann von analysierbaren (möglicherweise XML-) Dateien, die von der Festplatte eingelesen wurden, bis zu Binärdateien oder Datenbankelementen variieren, die über interne oder externe Tools der Game Engine selbst generiert wurden.

Das KI-System definiert so etwas wie einen Feind und kann so konzipiert sein, dass es eine Reihe allgemeiner Verhaltensweisen (aggressiv, defensiv, unterstützend, feige) unterstützt, die dann durch datengesteuerte Elemente optimiert werden.

My New Enemy beginnt mit dem aggressiven Basis-KI-Verhalten mit datengesteuerten Werten für: - Spieler> mein Level + X - Verfolge Spieler bis zu X Einheiten jenseits des Spawn-Punktes - Flee, wenn Gesundheit <X -Range-Fähigkeitsprioritäten - Nahkampffähigkeitsprioritäten (wenn Spieler zu nahe kommen)

Ein komplizierteres datengesteuertes Schema kann die Definition bestimmter Datenpunkte (Ereignisse) ermöglichen, an denen ein AI-Zustand (endliche Zustandsmaschine) in einen anderen Zustand übergeht (oder sogar die Möglichkeit, in einen von N anderen Zuständen überzugehen) komplizierte Hierarchie von Verhaltensweisen.

All dies ist natürlich mehr Arbeit als nur das explizite Codieren eines Verhaltens, aber es ist eine unterhaltsame Herausforderung, es Benutzern zu ermöglichen, Inhalte ohne Änderung der Quelle zu erstellen.

Es gibt Bonuspunkte zu erreichen:

  • Wenn Sie Daten dynamisch aktualisieren und die Änderungen in der Spiel-Engine wiedergeben können, ohne die Anwendung neu zu starten
  • Wenn Sie benutzerfreundliche Benutzeroberflächen über den Daten erstellen, sodass Benutzer über eine Schnittstelle mit den Daten interagieren können, anstatt Textdateien (XML oder was auch immer) direkt zu bearbeiten

Für ein Tutorial-Spiel, das sich an eine eher technische Zielgruppe richtet, besteht der größte Teil der Arbeit stattdessen aus entworfenen Klassen / Objekten, die saubere Schnittstellen für die Benutzer bereitstellen, die erweitert werden können, was wiederum auch datengesteuert sein kann.

Christopher Larsen
quelle
Gute Antwort! +1
AttackingHobo
Danke für deinen Beitrag :)! Würden Sie zufällig Websites kennen, die mir zeigen, wie man diese Art von Code implementiert? Ich habe noch nie solche Spiele mit externen Quellen gemacht. Obwohl ich auf jeden Fall möchte, dass sie im Club XNA codieren, werde ich wahrscheinlich etwas mehr nach dem Muster von Klassen und Objekten tun, die sie leicht in ihren eigenen Klassen erben könnten. Aber ich werde das auf jeden Fall untersuchen
Benixo
Ein guter Weg, dies zu tun, erfordert Ihren eigenen Konfigurationsparser, damit sehr einfache datengetriebene Strukturen geladen werden können. Im Wesentlichen ist der Schlüssel zu jedem Tutorial das Unterrichten in Blöcken, daher ist Abstraktion der absolute Schlüssel. Eine gute Übung könnte dann sein, eine einfache Benutzeroberfläche zu entwerfen, mit der ein Benutzer neue Waffentypen definieren und erstellen kann.
verzögerte
Die häufigsten datengetriebenen Aspekte in Spielen sind Levels. Selbst wenn alles andere fest codiert ist, werden die Level-Designs (dh wo die Szenerie platziert ist, wo die Feinde platziert sind usw.) fast immer in Datendateien definiert, die das Spiel lädt. Sein zweiter Bonuspunkt beschreibt ein Levelbearbeitungswerkzeug.
jhocking
Der Vorgang des Schreibens / Lesens von Objekten auf / von der Festplatte wird als "De- / Serialisierung" bezeichnet. Unter diesem Begriff finden Sie möglicherweise einige nützliche Tutorials.
Exilyth
1

Wenn Sie ein paar Ideen suchen, wie Sie Ihr Projekt starten und Schritt für Schritt aufbauen können, damit es in ein Tutorial umgewandelt werden kann, schauen Sie sich XNA Game Programming Adventures an . Der Autor hat mehrere Tutorials mit Erklärungen und Quellcode eingerichtet, die schrittweise inkrementiert werden.

Bart
quelle
0

Ich würde vorschlagen, sich das Java Game Development Tutorial auf www.thenewboston.com anzuschauen

Es ist vielleicht nicht genau das, wonach Sie suchen, was Typen mit Waffen und den ganzen Jazz angeht, aber es gibt eine gute schrittweise Aufschlüsselung einer Reihe von Schlüsselfaktoren für die Entwicklung von Spielen. Der Moderator "Bucky" hat auch einen entspannten, spaßigen Unterrichtsstil. Genießen.

Jonny
quelle