![]() |
Figuren sollen beim Game nach bestimmten Regeln laufen
Hi,
ich sitze seit heute früh an meinem 2. 2D-Game. Ich mache mir gerade Gedanken über die Computergegner. Sie sollen durch einen Wald laufen (nur auf den Wegen), sich von einem bestimmten Ort fernhalten und die Tendez haben, an einen bestimmten Ort zu wandern. Hintergrund: je nach Level soll der Spieler die Coomputergegner einfangen, die aus dem Gefängnis geflohen sind. Logischerweise laufen sie von dem Gefängnis weg. ^^ Nun gibt es eine Stelle, an der sie vom Spieleld verschwinden können. Praktisch ihre Fluchtmöglichkeit. Sie sollen die Tendez haben, dort hinzugehen, aber das nicht von Vorne herein tun. (Also nicht schnur stracks dorthin laufen) Außerdem sollen sie nicht mehrmals den selben Weg laufen. Es geht mir jetzt nicht um den Code, sondern um eine Idee, wie man das umsetzen könnte. Klar könnte mn die einfach nach Zufall laufen lassen, aber sollte es nciht so extrem sein, dass sie ein Schritt vor, ein Schritt zurück und dann nach rechts gehen. oO Sollte schon eine gewissen Logik drin sein. :mrgreen: Hoffe ihr habt ein paaar Ideen für mich. :P |
Re: Figuren sollen beim Game nach bestimmten Regeln laufen
Hi,
so ganz genau kann ich mir noch nicht vorstellen, wie sie Laufen sollen, aber ich geb dir einfach mal eine Vorstellung davon, wie ich es umsetzen würde. Ich nehme mal an du hast die Karte als Graphen vorliegen und, dass die Gefangenen nur an einer Stelle aus dem Gefängnis brechen. Dann würde ich alle möglichen Wege zum "Rettungsknoten" berechnen, ohne dass Knoten mehrmals besucht werden dürfen. Wenn du nicht willst, dass die Entflohenen auch zurück in Richtung Gefängnis laufen kannst du ja für jeden Knoten die Entfernung vom Gefängnis berechnen und Wege, bei denen es von einem Knoten höherer Entfernung zu einem Knoten niedrigerer Entfernung geht ausschließen (ich denke mal, dass der Rettungspunkt am weitesten vom Gefängnis entfernt ist?). Für jeden Gefangenen wählst du jetzt zufällig einen Weg aus. Je nach Schwierigkeitsgrad kannst du die Wahrscheinlichkeit, dass kürzere Wege genommen werden erhöhen, so verschwinden die Gefangenen schneller vom Bildschirm. Die Gefangenen würden sich so einigermaßen realistisch verhalten, da sie sich nur vom Gefängnis wegbewegen, ein konkretes Ziel haben so nichts doppelt besuchen. |
Re: Figuren sollen beim Game nach bestimmten Regeln laufen
Eine Lösung könnte der A*-Algorithmus zur Wegfindung sein. Das Spielfeld ist für die Gegner ein Labyrinth mit dem Gefängnis als Startpunkt und de Fluchtmöglichkeit als Zielpunkt. Damit nicht jeder Gegner den gleiuchen Weg nimmt, ist für jeden Gegner das Spielfeld ein anderes Labyrinth.
|
Re: Figuren sollen beim Game nach bestimmten Regeln laufen
Hi,
Zitat:
Es ist nicht festgelegt, dass der Fluchtweg der Längste ist und ob es 1 oder merere Fluchtwege gibt. |
Re: Figuren sollen beim Game nach bestimmten Regeln laufen
Der A*-Algorithmus sucht einen Weg in einem Labyrinth. Da mehrer Wege wohl zum Ziel führen, aber alle Gegner den gleichen Algorithmus zur Wegsuche nutzen, werden alle Gegner den gleichen Weg nehmen.
Code:
Um jetzt nicht für jeden Gegner einen eigenen, abgeänderten Algorithmus verwenden zu müssen, blockierts du eben für jeden Gegner alle Wege bis auf einen. So das der erste Gegner nur Weg A nehmen kann, der zweite nur Weg B und soweiter. Du kannst die Wege zum Beispiel einfach mit Bäumen blockieren. Die Labyrinthe der Gegner werden ja sowieso nicht dargestellt. Somit hat jeder Gegner ein, für sich, etwas anders Labyrinth. Wenn jeder Gegner ein Objekt ist, ist das ganze kein Problem. Denn jedes Gegner-Objekt hat eben noch die Eigenschaft Labyrinth.Weg A Weg B Start Weg C Ziel Weg D Weg E |
Re: Figuren sollen beim Game nach bestimmten Regeln laufen
Oder, was mach auch machen kann, jeder Gegner hat nicht nur ein Zielpunkt, sondern zufällig verteilte Wegpunkte, die er erst ablaufen muss. Ich glaube, das wäre die einfachere Lösung und sie erscheint mir auch schöner.
|
Re: Figuren sollen beim Game nach bestimmten Regeln laufen
Zitat:
|
Re: Figuren sollen beim Game nach bestimmten Regeln laufen
Liste der Anhänge anzeigen (Anzahl: 1)
Hi!
Ich weiß, dass man pro Frage einen neuen Thread aufmachen soll. Aber ich denke so ist der Zusammenhang besser. Im Spiel soll der Gegener sich auf den Spieler zu bewegen. (Im Bild ist das Ziel nicht der Spieler, aber das ist ja im Moment egal) So richtig hab ich den A* Algorithmus noch nicht kapiert. Geht der jetzt alle Städte durch und guckt dann wo es am kürzesten war. Denn warum geht er erst nach Karlsruhe und dann nimmt er doch den Weg weiter oben von Frankfurt nach Würzburg. Ich schätze diese Vernetzung, die man im Schema bei Wiki sieht, entspräche den Zellen in meinem Level, welche begehbar sind. Somit bleibe am Start ja nur links. Aber wie kann ich überfliegen, welcher Weg der kürzeste ist? (Dies ist wahrscheinlich die Stelle welche ich im Algo nicht kapiere, also ob der jeden weg durchgeht oder das irgentwie errechnet). Das Level würde sich auch noch ohne ein komplexeren Algorithmus lösen lassen (einfach in die einzige Richtung gehen, die geht. Wenns nicht geht: Springen) Aber es kann ja auch schwerer werden. |
Re: Figuren sollen beim Game nach bestimmten Regeln laufen
Ich denke, das wäre eher ein Fall für den
![]() Parallel zum Spielfeld existiert eine 2-dimensionale "Geruchskarte". Jeder Gegner hinterlässt dort seine "Duftspur". Weitere Gegner bevorzugen Felder, auf denen schon ein Geruch liegt (es sei denn, das Feld wäre schon belegt). Mit der Zeit werden die Gegner auf regelrechten Strassen laufen. Wenn ein Gegner sein Fluchtloch erreicht, kann er sich ja zu 5% selbst opfern und zurücklaufen. Dabei hinterlässt er eine 10-fach stärkere Duftspur und lockt so sein Kollegen an. |
Re: Figuren sollen beim Game nach bestimmten Regeln laufen
Danke für deine Antwort! :thumb:
Ich hab die erst gar nicht gesehen, da ich gar keine Mail bekommen habe. :wall: Die Idee ist auch nicht schlecht. Aber bei mir sollen die Gegener nicht auf einen Haufen sein, sondern im Spiel verteilt sein. Das könnte ich eventuell so einbauen, das es als 2-rangiger Faktor in meinem Prinzip geht. (dazu weiter unten) Erstmal: Ich hab den Absatz über die Heuristik wohl übersehen, da steht das ja drin, dass es nicht jedes Feld durchgeht. Aber ich kapier den A* Algo nicht. (Den Pseudocode auch nicht). Aber ich denke er ist nicht so richtig was für mich. (Zumindest am Anfang nicht, es ist ja das 1. Mal, dass ich eine KI programmieren will) Ich kann mich (sehr dunkel) daran erinnern, dass es auf so eine Frage schonmal eine Antwort gab: Die 8 Kacheln um mich herum versehe ich mit der Nummer, wie weit entfernt diese vom Ziel entfernt ist. Der Gegner nimmt de Weg wo der Index am kleinsten ist. Bei einer Wand wird's ignoriert. Damit er auch mal weiter weg geht, streiche ich die betretenen Felder für eine Zeit. So sollte der Gegner immerhin einigermassen kleinere Irrwege umgehen können. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz