Hallihallo!
Vorwort: Ich bin ziemlich lange mit dem RPG Maker bewandert... Eigentlich kenne ich das Dingen schon seit etwa 2001/2002. Jedenfalls bin ich jetzt 13/14 Jahre damit vertraut. Aber irgendein gescheites Game habe ich noch nie hier veröffentlicht. Nur das eine Crap Game... Da war ich etwa 14... 14!! :D
Sämtliche Male habe ich Projekte angefangen und wieder abgebrochen. Allesamt waren es technische Spielereien mit mehr oder weniger gut funktionierenden Skripten, jedes Mal gab es ein Konzept, eine Idee, die ich nie richtig zu einer komplexen Story ausgebaut habe. Heute bin ich 21... damals, als ich angefangen habe, war ich 8. Naja, um kurz auf Mistakes zu sprechen zu kommen, das Spiel besitzt mehr oder weniger eine Story, die allerdings irgendwie aus der Luft gegriffen war, damit ich auch irgendwas zu erzählen habe. Es ging mir auch hier wieder um möglichst fortgeschrittene Skripte, die allerdings verbuggter gar nicht sein können. Wenn ich versuche, die aktuellste Demo von Mistakes zu spielen, bekomme ich nur NullPointer-Crashs (Missing Event Page/ID usw.) und so weiter und so fort... Ach, und wenn ich NPCs anklicke, dann werde ich von einer deartigen unsympathischen Unfreundlichkeit begrüßt, dass ich mich für mein eigenes 7 Jahre altes Spiel fremdschämen muss :D Die Handlung, das Mapping, die Technik ist aus meiner heutigen Sicht unter aller Sau. Ach und die Zeichnungen, die ich für die Szenen gemacht habe, lassen mich jedes mal verzweifelt lachen. Also, wenn ihr euch mal so richtig fremdschämen wollt, bitte! Tut euch das Spiel ruhig mal an, ihr findet es noch in der Dropbox :D Irgendwann verlor ich die Lust am Makern. Ich hatte zwischendurch irgendwie eine Pause von mehreren Jahren. Also ab 2008/2009 rum habe ich nur noch selten mit dem RPG Maker gearbeitet. Ich habe mittlerweile die Zuversicht verloren, überhaupt noch irgendwas vollständiges im Forum vorzustellen. Mistakes wird nicht weiterentwickelt, weil mir das Spiel zu alt ist und technisch veraltet ist... um ehrlich zu sein, habe ich vor auf richtige Spieleentwicklung umzusteigen. Keine Ahnung, Unity, Unreal Engine, XMA etc, das wird sich ergeben. Doch bevor das geschieht, möchte ich 4 meiner Konzeptideen in RPG Maker Spiele umsetzen.
Doch in diesem Thread möchte nur auf eines davon eingehen. Es ist viel weniger die Vorstellung eines Konzeptes, sondern viel eher die Demonstration einer sehr, sehr frühen Techdemo, die ein fortgeschrittenes Kampfsystem beinhaltet. Deswegem befindet sich der Thread auch in "Game-Design" und nicht "Spielevorstellung". Das Spiel soll einem 2D-Zelda sehr ähnlich sein, was Gameplay betrifft, wird aber sonst nichts mit Zelda zu tun haben. Zunächst erstmal ein Video:
Naja, zunächst mal... Auf der Suche nach einem Testgegner habe ich halt das Mario Sprite gesehen und habe mir gedacht, dass es vielleicht lustig wäre, einen Super Mario als Testgegner auf das Testgelände zu setzen :D Selbstverständlich ist der aber in einer Story-Demo nicht mehr vorhanden. Sobald ich das grobe Technikgerüst fertig habe, wird es eine Techdemo zum Download geben, jedoch wird die keinerlei Story beinhalten. Keine Sorge, anders als bei Mistakes, gibt es sehrwohl eine Story, die bereits sehr weit geplant ist und in der Tat sogar vor dem eigentlichen Spiel entstanden ist. Ich wusste ja noch nichtmal, was für ein Spiel ich daraus überhaupt mache. Ganz sicher kann ich sagen, dass es eben zeldaähnlich sein wird. Ach so, und das Titelbild ist nur für die Techdemo :)
Nun müsste ich noch ein paar Sachen erklären. Der Gegner besitzt einen Radius, innerhalb dessen man vom "bemerkt" wird. Dann ist der Gegner im "Aggro"-Modus und verfolgt den Helden. Im Video ist das der Punkt, wo der Mario "It's 'a me, Mario!" sagt. Verlässt man diesen Bereicht wieder, wird der Aggro-Modus deaktiviert und das ist der Moment wo er "Game Over" sagt... naja, so im Sinne von, "Okay, wir spielen nicht mehr miteinander!", nur so nebenbei bemerkt :D
Kommt man dem Gegner zu nahe, startet er seine Attacke. Diese Attacke trifft, wenn man "vor seiner Nase" steht. Dann verliert Nancy (das ist die Heldin) logischerweise HP. Ich habe das Skript ein wenig erweitert, damit der Schaden ein wenig variiert wird... Für Demonstrationszwecke. Wenn die Heldin nämlich Schaden erleidet, achtet mal auf die HP-Anzeige. Ich weiß, das Video ist ruckelig, aber bei 480p verringert YouTube die Framerate. Die Hitpoints werden quasi visuell "aus der HP-Anzeige 'herausgebrochen' ". Ist diese "Animation" noch nicht vorbei und die Heldin erleidet währenddessen weiteren Schaden, wird ein Puffer aufgebaut, der Stück für Stück abgebaut wird. So kann es zum Beispiel sein, dass 2 Hit Points entfernt werden und danach durch einen weiteren gegnerischen Treffer direkt weitere 3 Hitpoints. Der Damagepuffer reagiert automatisch, sodass ich nur die "DamageOnHero"-Variable um den Schaden addieren muss. Es wird also durchgehend abgefragt, ob der Puffer größer als 0 ist. Ich bin so stolz auf diese HP Anzeige. Ich muss euch das einfach erzählen :D :D :D
Fast vergessen, der Gegner verfällt danach übrigens in eine "Warte"-Phase, in der er viermal weiß blink, damit er seine Attacke nicht spamt und den Helden nicht innerhalb kürzester Zeit kaputt macht. Ach ja, Sterben kann man noch nicht. xD
Dann gibt es noch ein Interaktionsymbol. Wer hätte es gedacht... es orientiert sich an Zelda! Speziell Zelda OoT und MM. Unten links das Symbol verändert sich je nach Interaktionsmöglichkeit. So ist "Aktion" für das eigentliche Schlagen mit dem Schwert. Wenn man vor einem Gitter oder einer Truhe steht, wechselt es zu "Öffnen" und das deaktiviert die Möglichkeit zu schlagen. Bei NPCs wird es zu Sprechen etc. Somit lässt sich mit Gegenständen und NPCs interagieren. Sonst wäre das nicht möglich, weil das Event, das den Schwertschlag Managed ein Auto Start Event ist, das durch den Tastendruck aktiviert wird. Dies wird möglich mit einer Event ID Kollisionsabfrage in Verbindung mit einer Call Event Page Funktion, die auf der Entsprechenden Event Page die "Interaction ID" ändert.
Durch eine Kollisionsabfrage über Event ID und Call Event Page wird es ebenfalls überflüssig ein Event auf die Map zu setzen, dessen X und Y Koordinate festzulegen, das vor den Helden zu setzen, wenn man schlägt und abzufragen ob X und Y Koordinate mit der eines Gegners übereinstimmt. Somit habe ich die Kollisionsabfrage komplett über die Common Events realisiert, was es möglich macht, auch in sämtlichen Maps mit dem Schwert herumzufuchteln, ohne jedes Mal ein Event zu kopieren. Mit Store Event ID und einer If-Bedingung, nämlich, ob diese ID über 0 ist (alle Events werden ab 1 aufwärts nummeriert), brauche ich keine Abrage, ob irgendwelche X und Y Koordinaten mit denen eines Events übereinstimmen, was es möglich macht, Dinge einzufügen, die man einfach so aus Juckst zerhächseln kann... z.B.... ehm... Hühner?
Jedoch braucht jeder Gegner nach wie vor seine eigene X und Y Koordinate, damit ich den Abstand zwischen ihm und den Helden berechnen kann, um somit auch eine komplexe K.I. zu haben.
Dann gibt es noch eine Besonderheit, nämlich, dass man nicht über Kanten hinweg Gegner treffen kann. Ihr seht die Hügel? Seht ihr die Linien, die die Kanten darstellen? Ohne Weiteres wäre es im RPG Maker möglich, über solche Kanten hinweg mit Objekten zu interagieren... oder Gegner zu treffen. Ich möchte aber, dass der Schlag nicht über eine Kante geht. Damit meine ich, dass wenn der Held theoretisch eine Ebene über dem Gegner ist oder umgekehrt, dass es dann nicht mehr möglich sein soll, ihn zu treffen. Das wird über eine Terrain ID- Abrage möglich, mit der ich verhindere, dass man, z.B. mit Pfeil und Bogen, dessen Schuss geradeaus geht, nicht einfach so nen Ebenenunterschied durch die Eigenart des Makers ignoriert. Oder das Interaktionsystem. Oder dass geworfene Bomben an der Kante hängen bleiben und davor liegen bleiben. Und natürlich, dass das Schwert klirrt, wenn man damit theoretisch eine Wand schlägt :) Das scheint aber noch nicht ganz zu funktionieren, wenn man an einer linksgerichteten Kante nach oben schlägt, s. Video, dann trifft man den Gegner nicht. Das ist natürlich nicht beabsichtigt. Den Fehler werde ich noch ausmerzen. Auf jeden Fall, werde ich designtechnisch verhindern, dass man zu oft Gegner an Kanten antrifft. Aber der Gegner kann (noch zumindest) über Kanten hinweg treffen. Wird als nächstes geändert :) Ach ja, und die Treppe ist im Tileset als "Wand" definiert, aber das ändere ich, weil das Schwachsinnig ist. Deswegen treffe ich den "Mario" in dem Video auch nicht, als er auf der Treppe steht.
Dann gibt es noch ne Kleinigkeit: HP-Regeneration. Sobald die Heldin weniger als 5 HP hat, regenerieren sie sich langsam bis 5 HP. Weil das der Minimale HP Wert am Anfang des Spiels sein wird :)
Soweit, so gut. Ich wollte lediglich meine Genialität in Form meines schnell zusammengeschusterten Skripts hier präsentieren :PPP
Ich hoffe, euch interessiert, was demnächst noch in das Spiel implementiert wird. Zur Story kann ich leider noch nicht viel verraten. Aber wer interesse hat, an dem Spiel mitzuwirken, der bekommt das komplette Konzept mit allem Drum und Dran, VOR ALLEM SPOILER, präsentiert, natürlich nur unter der Bedingung, dass es schön brav geheim gehalten wird. Diese Leute können mir dann auch später helfen, den Vorstellungsthread zu schmücken :D