Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 21 bis 40 von 51

Thema: Tagesablauf von NPCs

  1. #21
    Kommt ganz darauf an, wie viel Aufwand du betreiben willst.
    Also, die interessante Variante liefe so.
    Du unterteilst den Tag in mehrere Abschnitte, in denen sich die NPCs verschiedene Bewegungen haben. Meinetwegen, in "5:00-12:00" und so weiter.
    Das ist, was die Switches betrifft, nicht sehr teuer!
    Nun, brauchst du noch, leider, für jeden NPC zwei Variablen, nämlich "NPC X" und "NPC Y".
    also etwa "NPC Vormittag", "... nachmittag" und so weiter.

    Jetzt knüpfst du ein Event an
    a)entweder "NPC X" oder "NPC Y"
    b)Tageszustand (Vormittag, 5:00 bis 10:00)

    In dem Ereignis steht dann eine ganze List von Fork Conditions.
    Wenn du nun dein Ereignis an "X" geknüpft hast, fragst die Fork also die Y-Position ab, die der NPC hat.
    Mit anderen Worten:
    Du fragst die Position ab, die der NPC zu einer bestimmten Tageszeit hat.
    Je mehr Tageszeiten du verwendest, desto umfangreicher wird alles.

    Nun musst du JEDEN EINZELNEN Schritt JEDES EINZELNEN NPCs einzeln machen.
    Also, hat er meinthalben die Position von X "14" und die Position von Y "19".
    Dann schreibst du in die entsprechende Positionsfork (abhängig davon, was du nicht an das Ereignis selbst geknüpft hast) "Move Event: Step up" oder so.
    Du darfst leider keine "Move all"s verwenden, also wenn du mal in ein Bewegungsereignis mehr als einen Schritt machst, musst du das per "Wait" regeln.

    Und so musst du das eben machen.
    Was dabei herauskommt:
    Pro NPC ein Event, das das Verhalten des jeweiligen NPCs verrät mit SEHR vielen Seiten, weil ja JEDE X-Koordinate (oder Y, wenn du das da in die Ereignisbedingungen geschrieben hast), die der NPC möglicherweise haben kann (also am besten ihn nicht über die ganze Karte laufen lassen) eine Seite erfordert und das zu jeder Tageszeit, für die du Switches besitzt.

    Das wäre die feine Lösung- wenn du das umsetzt, wird dein Spiel in der Hinsicht genial... und SEHR viel Zeit benötigen.
    Vielleicht ist diese Zelda-Lösung von Lil_Lucy gar nicht so schlecht... nicht ganz so eindrucksvoll, aber doch, wie ich finde, die verhältnismäßig beste!

  2. #22
    Zitat Zitat
    Nun musst du JEDEN EINZELNEN Schritt JEDES EINZELNEN NPCs einzeln machen.
    Oder man verpasst den NPC's eine KI, oder genauer gesagt nutzt ein Pathfindingsystem.
    Das frisst allerdings ziemlich viel Prozessorleistung. Einschränken könnte man das ja, indem man festlegt, dass sich die NPC's nicht über ihre Karte hinausbewegen können (also dass zB. eine Stadtwache nur in der Stadt rumlaufen kann und nicht im anliegenden Wald usw.). Dann müssen nähmlich diese NPC's nicht ständig berechnet werden, sondern nur dann, wenn der Spieler die entsprechende Map betritt.
    Probleme gibt es beim Pathfinding ja auch nur dann, wenn sich dem NPC unerwarteterweise Hindernisse in den Weg stellen würden. Der Weg eines NPC's muss ja nur einmal berechnet werden, dann wird das Pathfinding erst wieder benötigt, wenn sich ein Hindernis in den Weg stellt. Wenn dies der fall ist, könnte man das Pathfinding ein zweites mal aktivieren, um Performance zu sparen, könnte man eventuell die gespeicherten Daten vom ersten anfänglichen Durchlauf nutzen, denn wenn der zweite Durchlauf wieder auf ein im ersten Durchlauf abgelaufenes Feld, welches hinter dem Hindernis liegt, trifft, dann kann der zweite Durchlauf ja beendet werden und muss nicht bis gaanz zum Ziel durchlaufen.
    Ein Pathfindingalgorithmus ist natürlich noch nicht alles, um die KI weiter zu vervollständigen müsste man dem NPC natürlich immernoch den Tagesablauf per Forks verpassen. Diese Tagesabläufe würden dann natürlich auch immer nur beim betreten der entsprechenden Map berechnet werden, müssten dann allerdings ständig im Hintergrund laufen, solange man sich auf der Map befindet.
    Also wegen der Performance ist das wie gesagt eher schlecht umsetzbar mit dem RPG Maker, da müsste man mal austesten wieviel NPC's pro Map zumutbar sind, bevor es anfängt zu ruckeln. Die Größe und Struktur der Maps spielt natürlich auch eine Rolle.

    Ohmann, ich bin wirklich schlecht im Erklären, wenn man da nicht ein bisschen Ahnung von der Funktionsweise einer Pathfinding Routine hat, wird man aus meinen Ausführungen wohl kaum schlau werden (und selbst wenn, ist es immernoch unverständlich geschrieben^^').

  3. #23
    @ Ryo Saeba 1000
    Gute Idee, aber mit der Umsetzung könnte schwierig werden.Villeicht könnte man den NPC ja "below Hero" machen, was widerum auch nicht gut aussehen würde. Aber der NPC müsste so nicht anhalten.Oder man könnte ja auch die X , Y Koordinate des Hero nehmen und die per Fork condition mit der des NPC
    vergleichen und wenn die über einstimmen dann kommt ein ereignis z.b der Held geht den NPC aus dem weg oder anders rum.

    Ich weiss es ist schei..e erklärt!

  4. #24
    kann man die Zelda Sachen auch woanders als auf ner Konsole spielen?

    hab nämlich weder Konsole noch Spiel^^

  5. #25
    @Ryo Saeba 1000
    Ich bin skeptisch, ob solche komplizierten Pathfinding-Algorithmen für so ein Feature wirklich Sinn ergeben. Das mag zwar auch daran liegen, dass für mich Tag/Nachtwechsel + sich danach richtende NPCs eher ein unwichtiges Feature sind, aber selbst wenn man das anders sieht, wäre es vielleicht besser die kreative Energie in andere Dinge zu stecken und sich mit einer simpleren Lösung zufrieden zu geben. Vielleicht wäre auch ein ganz simpler Algorithmus ausreichend, der nur kleine Hindernisse umgehen kann ( normalerweise sollte es außer dem Spieler ja keine unvorhergesehen Hindernisse geben ).

    @Darksoel
    Zitat Zitat
    kann man die Zelda Sachen auch woanders als auf ner Konsole spielen?
    Legal nicht.

  6. #26
    Zitat Zitat von Darksoel
    kann man die Zelda Sachen auch woanders als auf ner Konsole spielen?

    hab nämlich weder Konsole noch Spiel^^
    Das System dort ist ganz einfach: Wenn Link durch die Steppe läuft, oder übers Meer segelt vergeht die Zeit rasend schnell. Länger als fünf Minuten dauert ein Tag da nicht. In Städten und eineigen anderen Orten wie Dungeons dagegen sthet die Zeit still. Je nachdem zu welcher Zeit man die Lokalität betritt ist es dort entweder Nacht oder Tag, wobei glaube ich so Sachen wie Abendrot beibehalten werden. Die Zeit läuft erst weiter wenn man den Ort verlässt.

    Man kann im Spiel auch mit einer magischen Flöte oder einem Taktstock die Zeit vordrehehn, wobei der Ort dann neu geladen wird. Irgendeine vergleichbare Funktion wäre auch in deinem Spiel sinnvoll, sofern es dieses oder ein ähnliches Sytem nutzt!

  7. #27
    Zitat Zitat von Lil_Lucy
    Das System dort ist ganz einfach: Wenn Link durch die Steppe läuft, oder übers Meer segelt vergeht die Zeit rasend schnell. Länger als fünf Minuten dauert ein Tag da nicht. In Städten und eineigen anderen Orten wie Dungeons dagegen sthet die Zeit still.
    Das kann man nicht so leicht pauschalisieren,da es je nach Zelda Spiel unterschiedlich umgesetzt wurde.
    Das von dir geschilderte System wurde in "Ocarina of Time" verwendet,weil dort Hyrule aus vorberechneten Hintergründen bestand und man es sich ein wenig leichter machen wollte.
    Beim N64 Nachfolger "Majoras Mask" läuft die Zeit aber unaufhörlich weiter.
    Das spielt sie aufgrund der 72h Mechanik eine weitaus wichtigere Rolle.

    Ich würde mich eher an Gothic oder Morrowind orientieren,weil es da sehr realistisch umgesetzt wurde.

  8. #28
    Zitat Zitat von Aldinsys
    Beim N64 Nachfolger "Majoras Mask" läuft die Zeit aber unaufhörlich weiter.
    Das spielt sie aufgrund der 72h Mechanik eine weitaus wichtigere Rolle.
    Naja... Ich meine Majoras Mask war ja wirklich darauf ausgelegt. Da hatte die Zeit ja eine zentrale Rolle. Da hätte sie gar nicht drauf verzichten können ohne ein Scheißspiel (Obwohl ichs auch gar nicht sooo gut fand) zu machen.

    Kopp

  9. #29
    Zitat Zitat von Aldinsys
    Das kann man nicht so leicht pauschalisieren,da es je nach Zelda Spiel unterschiedlich umgesetzt wurde.
    Das von dir geschilderte System wurde in "Ocarina of Time" verwendet,weil dort Hyrule aus vorberechneten Hintergründen bestand und man es sich ein wenig leichter machen wollte.
    Beim N64 Nachfolger "Majoras Mask" läuft die Zeit aber unaufhörlich weiter.
    Das spielt sie aufgrund der 72h Mechanik eine weitaus wichtigere Rolle.

    Ich würde mich eher an Gothic oder Morrowind orientieren,weil es da sehr realistisch umgesetzt wurde.
    O.K. Majoras Mask hab ich nie gespielt, aber bei the Wind Waker war's genauso und die Hintergründe waren alle echtzeitberechnet! Und mir ist klar das Gothic und Morrowind (was ich übrigens grad mal wieder spiele) ein realistischeres Zeitsystem haben, wobei Morrowind eigentlich die zeit gänzlich ignoriert, du kannst auch bei nacht einkaufen, denn schlafen tut dort nie jemand...

  10. #30
    An Ryo Saeba 1000:

    Ähm... ich weiß nicht ganz, ob ich das ganz verstanden habe, aber es gibt da einfach das Problem, dass man als Held ein Hindernis darstellt.
    Das könnte man natürlich lösen, indem man die Leute einfach die Leute "Below Hero" schaltet und das sieht seltsam aus.
    Und was du mit KI meintest... ja, das hast du schon gesagt... Da muss er rechnen und außerdem benötigt man NOCH MEHR Zeit zum Programmieren.

    Naja, vermutlich ist diese Ocarina-of-Time-Variante die beste, wie gesagt.

    Kelven sagte ja schon:

    Vielleicht ist eine nicht ganz so schöne, aber einfachere Methode besser...

  11. #31
    Es ist relativ einfach:

    Jeder Dorfbewohner bekommt eine Varibale, die da nennt man "AktionPerson1". Ein Common Event überwacht je nach Tag/Nacht und Uhrzeit diese Variable und setzt sie dementsprechend neu.

    Dann musst du nur noch auf den Maps entsprechende Dinge einbauen wie z.B. wenn es fünf Uhr ist das der NPC dann von der Arbeit nach Hause geht oder man ihn wieder in seinem Haus antreffen kann.

    Halt ich für nicht weiter aufwendig wie das Speichern der Blutvorräte aller Menschen in Vampires Dawn.

  12. #32
    Wie wärs denn mit folgender Idee, das Prob war ja jetzt immer, dass die typen immer wieder neu den Heimweg liefen, wenn man zwischendurch auf ner anderen Map war, aber wenn man das einfach s omacht, das die anfangen, den heimweg zu gehen.

    wenn sie nun aber noch net fertig sind, und du die Map verlässt, sind sie ab da automatisch im HAus, d.h.sobald du die Map verlässt und neu betrittst, gilt er als im Haus, egal, wie weit er vorher mit dem Rückweg war.

    Dann ließe sich das tatsächlich mit nur einer Wari machen, denke ich.

  13. #33
    Ähm:
    Also:
    Ich hab einen NPC angelabert. Währenddessen gehen alle Leute weiter. Ich laber 10 Minuten. So und jezz, jezz is wieder Morgens und er müsste eigentlich zur Arbeit. Hmmm

    Irgendwas wird doch da nicht klappen. Alle Leute anhalten wäre blöd.

    Kopp

  14. #34
    Kopp? Kopp!

    Also, ICH hingegen befürchte, dass man tatsächlich alles anhalten muss, selbst die Zeit.
    Weil nämlich exakt das Problem auftreten wird:

    Wenn alles weiterläuft, kommen sich die Ereignisse eines einzelnen NPCs ins Gehege.
    Ja, eine andere Möglichkeit gibt es, glaube ich, nicht.

    Gar nicht mal so dumm, die Überlegung.
    Das wird in der Tat schwierig...

    Vielleicht sollten die sich WIRKLICH nur auflösen.
    (Vielleicht sollte ich an dieser Stelle einen Counter einrichten; für jedes Mal, an dem ich sage, die Idee mit laufenden NPCs + Tagesablauf funktioniert nicht oder nur extrem schwierig... ich glaube, ich bin bei 3)

  15. #35
    Das mit dem Auflösen würde aber das Textsystem-Problem nicht beheben, es sei denn, man lässt es zu, dass der Charakter mit dem man spricht auf einmal während des Gesprächs verschwindet... oO
    Ich glaube dafür die einfachste Lösung wäre, einen Switch zu basteln, der wirklich die Zeit anhält.
    Damit das ganze nicht zu blöden Bugs oder Problemen führt, könnte man ja die Zeit in Abschnitte unterteilen (z.B. Morgen-Mittag-Abend-Nacht, mal ganz grob) und wenn ein Abschnitt zuende istwird geprüft, welche Personen denn nun den Ablauf geschafft haben udn welche nicht (->Switches). Findet das Script nun jemanden, der "zu spät" ist macht dieser eben zwei, drei Schritte vorwärts und verschwindet währenddessen.
    (Alternativ gäbe es noch die MajorasMask-Methode (die ich aber nicht ausstehen kann... >.<):
    Ist so ein Abschnitt erreicht, wird der Bildschirm dunkel, ein Schriftzug erscheint und der Bildschirm wird hell. Während der Bildschirm dunkel ist werden eben die ganzen "Tagesabläufe" resettet und an ihre Position gebracht. Der Spieler sieht nur einen die Personen, das Bild wird schwarz, Schriftzug "Ort xy, Mittagszeit", das Bild wird hell und die Personen sind weg (oder besser gesagt an ihrer "Mittags-Position").

    Das müsste eigentlich noch recht elegant gehen, hat aber einen kleinen Nachteil: Bei komplexeren Tagesabläufen, z.B. 5 verschiedenen Aktionen an einem Mittag, gibt's Stress, sofern man nicht bereit ist, den Tag in tausend-und-einen Abschnitt zu unterteilen...

    Die IMO mit großem Abstand eleganteste Methode: Pathfinding-System, kein verschwinden sondern wirkliches betreten der Häuser/Orte, Stresstexte, wenn der Char aufgehalten wird und spät dran ist, dementsprechend angepasste waits bei den Texten, die mit Pics angezeigt werden müssten, aber per [Enter] oder [Escape] wie gehabt abgebrchen werden können.

    Das ginge zwar, würde aber bei sagen wir allerspätestens 3 bis 5 Städten zu einem Nerven zusammenbruch führen. XD

    Geändert von BDraw (19.05.2006 um 18:36 Uhr)

  16. #36
    Das Beste wäre natürlich wenn man einen Sprachskript hätte...
    Dann könnte der Mann nur sagen, "Ey keine Zeit, muss zur Arbeit" und dabei Fixed Direction mit Face zum Hero weggehen.
    Naja ich finde diese Majoras Mask Variante glaube ich sogar am Besten...

    Ha oder man macht ein Event, welches den Weg des Mannes geht, allerdings geht dieses durch alles durch. Und wenn der Mann ganz weit weg vom Event ist, dann macht der einfach schneller!!! Mve Speed Öp


    Außer fiesen Bugfixern wird keiner ein Gespräch länger führen als benötigt und ma so nebenbei, das kennen wir aus der Knoppers Werbung: "Ich muss jetzt los..." Wer redet denn bitte viel aufm Weg zur Arbeit? Da schon eher inner Kneipe oder so.

    Topp?
    Topp!

    Da guckste Kacke , wa?

    Kopp

  17. #37
    Hey, wie wäre es damit: die MEnschen, die nicht so in der Stadt rumlaufen, sondern bei denen du bewirken willst, dass sie auf jeden FAll da ankommen, wo sie sollen, bei denen könnte man doch ein event hero touch machen, und dann in dem Fall halt eine Message, zB: Geh aus dem Weg, ich will nach HAus" oder "MAn war der Tag wieder anstrengend, wären sie so nett aus dem Weg zu gehen, damit ich nach HAus kann" (Sowas dann auch beim Hinweg) und dann nach der Message ein Move Evenet Hero Random Step.
    Der HEro würde dem Chara aus dem Weg gehen, und man könnte dann natürlich auch die Messageso machen, dass sie selbst nach dem Ablaufen endet, also dass man gar net enter drücken muss.
    Dann noch ein paar Sekunden für solche Fälle in den Weg reingerechnet, und es könnte gut Funktionieren.

  18. #38
    Sagte ich sowas???
    Jo glaub schon. Aber, sagte ich dann nicht nochwas???
    Jo glaube ich auch.
    Wenn du dann ganz ganz lange wartest, dann geht die Message von allein weg?
    Zitat Zitat von Meisterkopp
    Ha oder man macht ein Event, welches den Weg des Mannes geht, allerdings geht dieses durch alles durch. Und wenn der Mann ganz weit weg vom Event ist, dann macht der einfach schneller!!! Mve Speed Öp
    So!!!



    Kopp

  19. #39
    Nein, es gibt bei den Messages die Funktion \^, damit schliesst sich die Message selbst, soweit ich weiß.

  20. #40
    Ja! -.- das weiß ich doch.
    Nur macht die Person dan Slip Through oder was?
    Weil man kann ihr ja solange man will den Weg versperren.

    Kopp

Berechtigungen

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