Ergebnis 1 bis 8 von 8

Thema: Umsetzung einer Idee zu eien mini horror spiel

  1. #1

    Umsetzung einer Idee zu eien mini horror spiel

    Hallo erstmal.

    Ich spiele seit ein paar Tagen mit dem Gedanken ein mini Horrorspiel zu bauen, in dem es darum geht aus einen Labyrinth voller Monster zu entkommen. Dies für den rpg maker 2k Dabei muss man möglichst vermeiden den Monstern über den weg zu laufen. Dabei sehe ich zwei Möglichkeiten das Labyrinth aufzubauen. Entweder mit mehreren Maps, die zusammen ein Labyrinth ergeben, wobei jede Map einen raum daherstellt (10x10) oder eine einzige große Map. Momentan tendiere ich zu einer großen. Das einzige was in diesen Konzept eine Hürde zu sein scheint ist das Verhalten von Gegnern. Diese sollen bei Kontakt mit dem Spieler ihn verfolgen und dabei ihre normalen Laufweg verlassen. Würde der Spieler entkommen sollen die Gegner zu ihrer Position zurückkehren und den Laufweg fortsetzen. So weit ich weiß ist aber das pathfinding in den maker relativ schwierig, besonders bei größeren Maps. Würde man die normale Funktion des makers nehmen, würden die Gegner an den Hindernissen einfach stecken bleiben. Deswegen komme ich im Moment nicht zu einer funktionierenden Lösung für eine Umsetzung.

    Hat jemand schon mit sowas Erfahrung gemacht und kann mir weiterhelfen?

  2. #2
    Eine Möglichkeit, die mir einfällt wäre, feste Wege zu machen.
    Du lässt die Gegner nicht einfach nur stumpf auf den Spieler zu gehen, sondern legst vorher genau die Bewegungen fest.

    Nehmen wir mal folgende Konstellation: Gegner steht auf A. Ein Flur geht nach Osten, am Kreuzpunkt B geht ein Weg nach Norden zu Kreuzpunkt C weiter und einer führt nach Süden zu Kreuzpunkt D.
    Solange sich der Spieler auf der Strecke zwischen A und B befindet, folgt der Gegner den eingespeicherten Weg von A nach B. Biegt der Spieler in eine der Strecken nach der Kreuzung B ein, dann wird der eingespeicherte Weg an den aktuellen angehängt (Programmiertechnisch wäre das dann, wenn Strecke A->B abgelaufen ist, dann laufe Strecke B->C/B->D ab). Dabei ist es dann egal, wie gerade die einzelnen Strecken sind, es muss nur Strecken von jeder Kreuzung zu jeder benachbarten Kreuzung eingespeichert werden (jeweils hin und zurück). Beachte: Die Programmierung muss logisch aufgebaut werden: Biegt der Spieler erst in Richtung C ab und entscheidet sich dann um, muss nicht nur der Weg B->D hinzugefügt, sondern auch die Strecke B->C wieder gelöscht werden.
    Wenn man dem Gegner entkommt (Entfernung zu groß: einfach aktuelle Position des Gegners mit dem Spieler vergleichen oder Zeitabhängig: Nach x Sekunden kehrt er wieder zurück), teleportiert er sich zurück (einfach verschwinden lassen oder je nach Setting etwas passendes ausdenken).

    Eine weiter Möglichkeit wäre, den Gegner exakt den Weg des Spielers gehen lassen. Spieler und Gegner berühren sich -> Gegner geht ein Feld auf den Spieler zu -> Jede Bewegung des Spielers wird in Variablen gespeichert (z.B. 1 = hoch, 2 = rechts, 3 = runter, 4 = links) -> Gegner arbeitet diese Variablen-Liste ab -> gespeichert wird der Reihe nach: Var 1, Var 2,... Var 10. Nach Var 10 fängt man wieder bei Var 1 an. Ein abgelaufener Schritt wird dann immer wieder auf 0 gesetzt. So verhindert man, dass der Gegner alte Sachen abläuft und durch eine einfache Überprüfung vor jedem Schritt weiß man, wie weit der Spieler vom Gegner entfernt ist. Vor jedem Ablaufen überprüfen, ob in der nächsten Variable 0 oder 1-4 gespeichert ist. Ist der Wert ungleich 0, dann weiß man, dass der Spieler mehr als 10 Schritte vom Gegner entfernt ist und dann ist man ihm entkommen. Durch die Anzahl an Variablen wird dann die nötige Entfernung bestimmt.
    Möglich wäre auch eine Kombination mit dem direkten Verfolgen und direktem drauf zu bewegen: Befinden sich Spieler und Gegner in einem großen, freien Raum ohne Ecken, wo man hängen bleiben könnte, dann bewegt sich der Gegner direkt auf den Spieler zu. Sobald der Spieler sich in einen Gang begibt wird im Hintergrund sein Weg in die Variablen gespeichert und wenn dann der Gegner ebenfalls das erste Feld im Gang betritt, dann fängt er an den eingespeicherten Weg des Spielers zu verfolgen.
    Um es etwas zufälliger wirken zu lassen und dem Spieler bessere Chancen zur Flucht zu geben, kann man Gegnerabhängig ein paar Zufällige Bewegungen einbauen, etwa einmal den Weg zurück und dann wieder weitergehen oder kurze Pausen einlegen eingespeicherte abzweigungen nehmen, die am gleichen Punkt hinauskommen etc.
    Man kann die ganzen Vorschläge oben ja kombinieren um verschiedene Verhaltensweisen zu erhalten.

    Hoffe ich konnte dir damit helfen.

    //EDIT
    Noch eine Idee: Um das Entkommen etwas spannender zu gestalten (ist aber auch aufwendiger): Lege feste Punkte fest, wo sich Spieler und Gegner befinden müssen, damit der Gegner die Verfolgung aufgibt. Praktisch soll es so aussehen, dass wenn der Spieler um eine Ecke biegt, dann verfolgt der Gegner ihn noch um die Ecke und wenn er ihn dann nicht mehr sieht (dieser also schon wieder um die nächste Ecke gebogen ist), dann weiß er nicht mehr weiter und kehrt um. Also setz an jede Kreuzung ein Event. Wenn Der Spieler darüber läuft wird das gespeichert. Läuft der Gegner ebenfalls darüber (oder über einen Punkt kurz vor der Kreuzung), dann wird überprüft, ob der Spieler schon bei der nächsten Kreuzung verschwunden ist (dort das Event ausgelöst hat), dann ist die Verfolgung beendet.

    Geändert von Eddy131 (13.10.2016 um 12:50 Uhr)

  3. #3
    Danke für die Vorschläge :-).
    Vor allem das mit dem verfolgen gefällt mir. Leider ist das nicht so das richtige für den Labyrinth wie ich mir den vorstelle. Nach einigen hin und her versuchen kam ich zu den Schluss das was ich wirklich brauche ein vernünftiges Pfadfinder Programm ist. Leider ist der 2k maker nicht die richtige Entwicklungsumgebung dafür ist. Daher kam ich zu den Beschluss diese Idee, falls ich sie umsetze, in einer passenden Umgebung zu versuchen. Eventuell wenn ich mal den game maker ausprobiere. Aber nicht auf dem 2k maker.

    Nicht desto trotz danke ich für die Hilfe

  4. #4
    Ich weiß gar nicht, ob du wirklich Pathfinding brauchst. Das wäre auf der Maker-Engine (bzw. mit Maker-Perspektive) eigentlich fast schon zu unfair für den Spieler. Seine Route könnte der Gegner ja auch per neuer Event-Seite und "Step toward hero" verlassen. Sobald der Spieler aus dem Blickfeld ist, könntest du den Gegner zu seinem Ausgangspunkt zurückteleportieren und wieder auf die alte Route wechseln.

  5. #5
    Falls du doch Pathfinding benötigst, hast du, falls du den RPG Maker 2003 verwenden kannst/willst, entwender die Möglichkeit nach folgendem Tutorial von Kazesui vorzugehen https://rpgmaker.net/tutorials/547/ bzw. was die allereinfachste und schnellste Variante ist, DynRPG mit dem Pathfinding Plugin von anti-freak zu verwenden http://www.multimediaxis.de/threads/...in-Pathfinding

  6. #6
    Oder noch eine Idee: Du kannst es ja so gestalten, dass der Gegner den Helden nur dann verfolgt, wenn er ihn sieht. Wenn Held und Gegner sich waagerecht oder senkrecht auf einer Linie befinden und sich kein Objekt zwischen den beiden befindet (könnte man über Events machen. Gibt aber bestimmt noch elegantere Methoden um die Sichtlinie zu überprüfen), dann bewegt sich der Gegner auf das Feld zu, auf dem er den Helden das letzte mal gesehen hat. Läuft der Held weg, dann wird der Endpunkt der Laufstrecke des Gegners immer wieder angepasst. Biegt der Held ab, läuft der Gegner zu dem Punkt, wo der Held sein Blickfeld verlassen hat, ist dann der Held wieder in der abgebogenen Richtung zu sehen, dann wird das seine neue Zielkoordinate. So gäbe es kein Problem mit dem Pathfinding und logischer wäre es auch, weil es nicht nur auf Nähe zum Feind ankommt, sondern auch darauf, dass der Gegner überhaupt weiß, wo sich der Held befindet um auf ihn zuzugehen und es ansonsten lässt. Bietet sich ideal für Labyrinthe an, die nur aus ein Feld breiten Gängen bestehen. Bei breiteren Gängen könnte man die waagerechten/senkrechten Blickfelder auch verbreitern auf 3 Felder dicke Linien. Sollte es auch größere freie Flächen geben, würde sich wieder eine Kombination (wie ich es oben beschrieb) aus normalem "step toward hero" und dem "Sichtlinien-Prinzip" anbieten, je nachdem wo sich die beiden jeweils befinden.

    Bei Game Maker könnte ich weniger helfen, aber ich denke rein vom Prinzip würde es da auch nicht anders ablaufen.

    Ein richtig cooles Pathfinding gibt es in Third Eye Crime.
    Ich glaub aber kaum, dass man sowas im RPG Maker umsetzen könnte

  7. #7
    @Kelven
    Das war ungefähr auch meine Grundidee, aber ich teleportiere die Gegner nur äußerst ungern, da es ziemlich der Vorstellung die ich dafür habe widerspricht. Was ich auch möchte das diese sich auch zum bestimmten Punkten auf befehl bewegen können. z.B. wenn der Spieler krach macht, gehen die Gegner hin um das zu untersuchen.
    Das Spiel soll auch unfair sein. Kurz, aber schwer }:-D. Einige Elemente, wie Fallen und Hilfen sollen sogar zufällig sein.

    @MarcL
    Oh ha! Das sollte ich mir mal anschauen. Mit DynRPG hab ich bisher noch keine Erfahrung. Funktioniert das auch bei großen Maps?

    @Eddy131
    Das mit Sichtlinien ist eigentlich eine ganz gute Idee, aber es macht die Gegner auch um einiges ungefährlicher. Aber ich weis nicht ob es sich so einfach umsetzen lässt, mir schweben z.B. größere Gänge vor und mehrere Räume. Man könnte so den Spieler nicht sehen wenn er sich diogonal vom Feint befindet.
    Das Video gefählt mir o__O, das muss ich mal ausprobieren.

  8. #8
    Oder mach einfach eine Mischung aus mehreren der Vorschläge: Überprüfe permanent die Sichtlinie und lass den Gegner dahin laufen. Verschwindet der Held um die Ecke fang mit der Speicherung des Weges des Helden an und lass den Gegner den Weg ablaufen, sobald der diesen Punkt erreicht hat. Die Überprüfung der Sichtlinie bleibt dennoch permanent aktiviert und das Weg-des-Helden-Ablaufen wird sofort abgebrochen wenn er wieder in der Sichtlinie auftaucht. An bestimmten Stellen setze fesgelegte Routen ein. Z.B. wenn der Held über Scherben läuft (=Krach), dann hört das ein Gegner, der im Nachbarzimmer ist und er bewegt sich direkt zu dem Scherbenhaufen (Bei Sichtline beendet er die Route und macht sich an die Verfolgung)
    Aber auch bei breiteren Gängen wäre das machbar: Festeingespeicherte Routen zwischen Kreuzpunkten, und bei Sichtkontakt fängt das direkte Verfolgen an. Ansonsten läuft er zum nächsten Kreuzpunkt, der der Richtung des Helden entspricht und läuft wieder die festgelgte Route zum nächsten Punkt ab.
    Wobei das direkte verfolgen des Weges des Helden wohl die bessere Methode wäre, gerade auch vom Programmieraufwand her.

    Ja, Third Eye Crime ist ein tolles Spiel
    Leider gibt es das nicht mehr für's iPhone. Aber auf Steam kann man es noch finden.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •