In den letzten Monaten war ich damit beschäftigt, ein 2D-JRPG (RPG im japanischen Stil) in C ++ mithilfe der SDL-Bibliothek zu programmieren. Der Erkundungsmodus ist mehr oder weniger abgeschlossen. Jetzt gehe ich den Kampfmodus an.
Ich konnte keine Ressourcen darüber finden, wie ein klassisches rundenbasiertes JRPG-Kampfsystem aufgebaut ist. Ich finde nur Diskussionen über die Schadensformel. Ich habe versucht zu googeln, das Messagev von gamedev.net zu durchsuchen und C ++ - bezogene Fragen hier auf Stack Exchange zu durchsuchen. Ich habe auch versucht, den Quellcode bestehender Open-Source-RPGs zu lesen, aber ohne eine Anleitung ist es so, als würde man versuchen, eine Nadel im Heuhaufen zu finden.
Ich suche keine Regeln wie D & D oder ähnliches. Ich spreche nur über Code- und Objektstrukturdesign. Ein Kampfsystem fordert den Spieler zur Eingabe über Menüs auf. Als nächstes wird der Kampfzug ausgeführt, während die Helden und die Feinde ihre Aktionen ausführen.
Kann mich jemand in die richtige Richtung weisen? Danke im Voraus.
Antworten:
Ich habe auch noch nie viele Ressourcen zu diesem Thema gesehen, aber die beste, die ich gefunden habe, ist wahrscheinlich die:
Es bietet einen Einblick in die KI des Feindes wie folgt:
Auf diese Weise können Sie sehen, dass Ihre Feinde wahrscheinlich eine Zustandsmaschine benötigen, um die verschiedenen Zustände zu verwalten, in denen sie sich befinden können, und dass jeder Zustand sein eigenes Verhalten hat, um jede Runde auszuführen, entweder fest in den Feind codiert oder datengesteuert durch ein Skript Sprache.
Selbst zwischen rundenbasierten JRPGs gibt es viele Unterschiede, daher gibt es für nicht alle Regeln. Sie können beispielsweise alle Gruppenbefehle ausgeben , bevor sie ausgeführt werden, oder sie können unmittelbar nach der Auswahl ausgeführt werden. Die Angriffsreihenfolge kann zufällig sein oder häufiger durch die Geschwindigkeitsstatistik bestimmt werden.
Nehmen wir zum Beispiel an, Sie haben ein rein rundenbasiertes Kampfsystem, in dem Sie zuerst alle Gruppenbefehle ausgeben und dann die gesamte Aktion am Ende des Zuges ausführen. Sie könnten es so angehen:
Die FAQ zur Kampfmechanik enthält auch viele nützliche Informationen, insbesondere zum Zeitmanagement in den Schlachten. Leider ist dieses System (auch bekannt als ATB oder Active Time Battle) patentiert, sodass Sie nichts Ähnliches machen können.
BEARBEITEN Ich habe kürzlich auch diese Website gefunden, die viele technische Informationen zur Implementierung von FF7 enthält. Leider scheinen die Abschnitte des Kampfmoduls noch nicht vollständig geschrieben zu sein.
quelle