Results 1 to 17 of 17

High Immersion RPG - der Versuch diese Idee wieder aufleben zu lassen

  1. #1 Reply With Quote
    Halbgott
    Join Date
    May 2014
    Posts
    9,728
    High Immersion RPG - der Versuch diese Idee wieder aufleben zu lassen

    Viele von euch wird Gothic sicher ein Name sein, insbesondere hier im Forum. Und mit Gothic ist auch immer ein Streitthema verknüpft: ist Gothic wirklich so gut wie einige behaupten oder nicht, wie es die Anderen behaupten? Ich gehöre zu den Leuten, die sich von Gothic inspiriert fühlen und ich bin auch jemand, der dessen Konzept wieder aufleben lassen möchte - irgendwann vielleicht auch in der Spielindustrie selbst. Für den Moment bedeutet das, dass ich an einem eigenen Rollenspiel mittels der Unreal Engine 4 arbeite - in meiner Freizeit nach der Arbeit, am Wochenende und selbst in der Urlaubszeit. Dabei arbeite ich gerade an der KI, welche einen besonderen Stellenwert im Spiel erhalten soll. Die Idee, das Konzept der lebendigen Welt von Gothic weiterzuentwickeln, habe ich mir als Aufgabe auferlegt - allerdings auch in einem kleinen Maßstab. Auf jabus Anfrage hin (danke für das Interesse an dieser Stelle ) möchte ich nun ein paar Punkte dazu erzählen.


    Das etwas andere Rollenspiel

    Das Spiel ist ein 3rd-Person RPG und spielt in der modernen Zeit, jedoch in einem etwas abgeschotteteren Bereich der Welt. Die Menschen dort sind so arm, dass sie in Schwefelminen arbeiten - wohlwissend, dass die durchschnittliche Lebenserwartung durch die Arbeit etwa mitte 30 angesiedet ist. Dabei sieht man quasi nebenan die reichen Leute in ihren Prunkbuden sitzen, welche durch eben diese Minen so enorm profitieren. Ein junger Mann will seinem persönlichen Schicksal der Armut entkommen und nach Reichtum streben. Mit ehrlicher Arbeit ist das natürlich nicht zu schaffen. Die Frage, die sich allerdings stellt: über welche Leichen wird er gehen müssen und wird er es überhaupt schaffen? Das hat letztlich nur der Spieler in der Hand.


    KI - der wichtigste Bestandteil einer lebendigen virtuellen Welt

    So das erstmal zur Einführung. Ich erzähle später gerne mehr, also scheut euch nicht fragen zu stellen. Ich möchte aber erstmal zwei Fragen beantworten:
    1. Was soll die KI in meinem Spiel leisten können?
    2. Wie sieht das technische Grundgerüst dazu aus?


    Die KI von Gothic ist nicht nur damals eine Neuheit gewesen, sondern stellt selbst in der heutigen Zeit einen gehobeneren Anspruch dar. Selbst knapp 20 Jahre nach Gothic produzieren Entwickler immernoch statische Männlein, welche an Ort und Stelle stehen bleiben, ein gelbes Ausrufezeichen über den Kopf tragen und einen Monolog ohne Auswahlfunktionen führen. Ja, es gibt auch andere Spiele die es besser machen, aber ich sehe kaum eine Intension eines Entwicklers die Immersion als Kernfeature zu implementieren und stetig weiterzuentwickeln. Es muss ja nicht jedes Spiel so aufgebaut sein, doch wünsche ich mir - und einige andere Spieler auch - zumindest hin und wieder ein solches Spiel auf den Markt. Ich probiere daher aktuell ein KI-System zu entwickeln, welches vom Tagesablauf her mehr zu bieten hat als Gothic anno 2001.


    Der konkrete Plan

    Leute machen, was Leute machen. Wer sich mal in der Welt umschaut wird wissen was ich meine. Jeder verfolgt einen eigenen Plan durchs Leben zu gehen und der Unterscheidet sich durch die Herkunft, die Lebensumstände und durch die eigene Persönlichkeit enorm. Natürlich fühlt es sich oft gleich an ... Leute stehen frühs auf, gehen zur Arbeit und kommen nach der Arbeit nach Hause um sich dann um Familie und Haushalt zu kümmern. Doch gibt es wesentliche Unterschiede, die man bei genauerer Beobachtung erkennen kann. Und genau soweit will ich es auch im Spiel treiben. Ich will dem Spieler die Lust bieten einfach mal den NPCs hinterherzuschauen. Ich will, dass er Persönlichkeiten erkennt und nicht nur Daten in Menschengestallt. Ich will, dass sich die Welt mit den Menschen ändert.

    Und dafür will ich dynamische, von Hand gesetzte Tagesabläufe erschaffen. Nach der Arbeit soll der NPC eben nicht einfach nur nach Hause gehen und sich schlafen legen oder wie in Gothic eventuell vorher noch in die Kreipe einen Kippen. Der NPC soll selbstständig entscheiden, ob er lieber in die Kneipe geht oder die Familie sehen möchte. Er soll sich jedoch nur zwischen ein paar speziell auf den NPC angepassten Möglichkeiten entscheiden können. Das ist wichtig, damit die NPCs nicht generisch alle die selben Dinge in unterschiedlicher Reihenfolge tun. Der Zufall wird quasi kontrolliert. Desweiteren wird es NPCs geben, die wissen was ein anderer NPC gerade tut. Natürlich weiß das nicht ein beliebiger NPC, aber immerhin jene, die in irgendeiner Weise mit ihm in Verbindung stehen. Wichtig ist für mich ebenfalls, dass die NPCs sich aber beim Spielstand laden exakt so verhalten wie zuvor auch. Auch damit soll das Gefühl einer generischen Welt unterbunden werden. Dafür ändern sich die Entscheidungen der NPCs aber mit jedem "neues Spiel starten". Wenn die NPCs sich annähernd anfüllen, als würden echte Menschen reagieren, habe ich meinen Job richtig gemacht - andernfalls muss ich mir das nächste Mal mehr Mühe geben.

    Wie ich das ganze technisch realisieren möchte, werde ich in den kommenden Tagen beantworten. Ich benötige dazu noch etwas mehr Zeit (um auch Anschauungsmaterial bieten zu können). Aber die Diskussion kann gerne schon los gehen.


    _______________________________________________________________________
    Im übrigen, aktuell suche ich ein paar Artists im Bereich Modellierung, Texturierung, Animationen und Leveldesign. Wer Interesse hat (oder jemanden mit Interesse kennt), kann mich gerne dazu gerne anschreiben (auch via PN). Vorraussetzungen sind sehr gering (aber vorhanden), da es sich hierbei auch um ein Lernprojekt handelt. Ich würde das dann aber lieber persönlich klären, wenn sich jemand mit Interesse meldet.
    Xarthor is offline

  2. #2 Reply With Quote
    Pretty Pink Pony Princess  Multithread's Avatar
    Join Date
    Jun 2010
    Location
    Crystal Empire
    Posts
    11,273
    Bei der AI würde Ich auf etwas setzen, was ähnlich der Sims ist.

    Was auf Bedürfnissen basiert.
    1. Trinken
    2. Schlafen
    3. Ruhen
    4. Hunger?
    5. Familie (Aktion z.B: im eigenen Haus)
    6. Freundin (Treffen von mehreren NPC's, muss im Hintergrund angedeichselt werden)
    7. Glauben (Innos)
    8. Glauben (Adanos)
    9. Arbeiten (Für solche welche zu unterschiedlich Zeiten Arbeiten sollen (Kurzer/Langer Tag), oder für solche welche nicht täglich Arbeiten.
    10. Freunde (muss ebenfalls von der Engine geplant werden, das da nicht einer alleine steht)

    Du kannst danach pro NPC die Skalierung der Bedürfnisse einstellen (0-100), was definiert, wie stark sein Bedürfnis pro Tag ansteigt.
    Das jeweils niedrigste macht er dann am Abend/Morgen/Nacht. Bei gleichstand soll es ein Zufallsgenerator auslosen.
    Pro Bedürfniss kann die Aktion entweder das Bedürfniss auf 0 zurücksetzen, oder um einen vordefinierten Wert reduziert (Arbeit z.B. reduziert pro Zyklus (z.B. 2h) um 20

    Wichtig ist das schlafen: Die meisten NPC's brauchen einen fixen Schlafzeitpunkt, da die NPC's sonst irgendwann mal wach sind und irgendwann mal schlafen. (5 Typen in der Kneipe, und der Wirt schläft)
    Multithread is offline

  3. #3 Reply With Quote
    Halbgott
    Join Date
    May 2014
    Posts
    9,728
    Gute Gedanken, die du da eingebracht hast. Wirkliche Bedürfnisse werden die NPCs aber nicht haben, wie es bei Sims der Fall ist. Viel mehr wird das ganze simuliert. Ich gehe bei der Technik später noch genauer auf soetwas ein, denn es existiert tatsächlich schon eine gewisse Umsetzung, die es erlaubt solches Verhalten umzusetzen. Lediglich für zufällige Absprachen der NPCs ("treffen wir uns morgen bei mir oder bei dir?") gibt es noch keinen konkreten Plan, aber ich halte das dennoch für machbar und muss mir nur erstmal über die konkrete Lösung nachdenken. Der Gedanke gefällt mir auf jeden Fall. In dem Zusammenhang werde ich auch überlegen, in wie fern ein NPC das Verhalten eines anderen NPCs beeinflussen kann (z.B. Mutter weckt Kind oder Wirt schließt den Laden, sobald der letzte Kunde raus ist). Aber da werde ich mich die Tage mal ransetzen. Eine grundlegende Idee für eine Lösung schwebt mir schon im Kopf.

    Zeitpunkte, an denen NPCs arbeiten gehen oder schlafen sind festgelegt. Das will ich sogar mit einer zusätzlichen Funktion erweitern, dass der Zeitpunkt in einer gewissen Zeitspanne variieren kann (je nachdem wie ich es für richtig halte).
    Xarthor is offline

  4. #4 Reply With Quote
    Pretty Pink Pony Princess  Multithread's Avatar
    Join Date
    Jun 2010
    Location
    Crystal Empire
    Posts
    11,273
    Quote Originally Posted by Xarthor View Post
    Gute Gedanken, die du da eingebracht hast. Wirkliche Bedürfnisse werden die NPCs aber nicht haben, wie es bei Sims der Fall ist.
    Das ist mir klar, würde es ja auch nur unnötig verkomplizieren.

    Wenn du im Hintergrund die "Bedürfnisse" hast, kannst du die auch für spezifische Texte nutzen ("Heute abend gehe Ich schöneinen Trinken", "Ich sollte mir mal wieder den Gottesdienst anschauen",...).

    Bin gespannt wie du es genau lösen möchtest.
    Ich weiss ja auch noch nicht womit du es umsetzen willst. Ich würde aber ein Dictionary verwenden und ein Inteface ( so extrem spezifisch ).

    Womit möchtest du es denn umsetzen?
    Multithread is offline

  5. #5 Reply With Quote
    Halbgott
    Join Date
    May 2014
    Posts
    9,728
    Es kommen mehrere Dinge zum Einsatz. Da ich mit Blueprints arbeite (also Visual Scripting statt reiner Programmierung), nutze ich auch dessen Möglichkeiten. Der grundlegende Tagesablauf ist in einer Data Table gespeichert. Diese Daten werden dann vom System dynamisch verarbeitet. Interessanterweise brauche ich dafür sogar nur sehr wenig Daten und kann den Rest über das Spiel selbst beziehen. Aber dazu wie gesagt später mehr.
    Xarthor is offline

  6. #6 Reply With Quote
    Burgherrin
    Join Date
    Apr 2013
    Location
    Gelöscht
    Posts
    1,526
    Eine sehr ambitionierte Idee, und ziemlich groß sowas allein umzusetzen.
    Kleiner Tipp, von mir. Versuche nicht gleich ein 20+ Stunden RPG alleine auf die Beine zu stellen.

    Wenn die Qualität stimmt, bei einem Projekt von einer Person allein, reichen auch mal 8 bis Stunden, wenn sie gut gefüllt sind.

    Hast du schon eine Story, für deine Geschichte/Handlung?
    Wenn ja, biete ich dir als passionierte und laut meiner Leserschaft fähige Autorin, meine Hilfe an.
    Ich könnte deine Story auf Spannungsgehalt und/oder Logiklöcher und unnötige Klischees prüfen.

    Grundsätzlich finde ich deine Grundidee interessant und gut.
    Wobei ich dazu auch sagen muss, es kommt immer darauf an.
    Nicht jeder NPC muss einen Tagesablauf haben, finde ich.

    Bestes Beispiel, Vampire the Masqueradeloodlines. Die Straßen wirken durchaus immersiv und lebendig.
    Viele NPC bewegen sich. In den Nachtclubs und anderen, wichtigen Ortschaften bleiben wichtige NPCs an ihrem Platz. Was in Ordnung ist, da ich als Vampir ja nicht wissen kann was sie tags über treiben.
    Und man sieht die NPCs ja nicht jederzeit, mein kreatives RPGlerinnen Gehirn hat durchaus genug Immersion in sich, um mir selbst vorzustellen dass sie zwischenzeitlich mal was anderes machen.

    Letztlich ist diese Eigenimmersion, dieses Mitdenken beim Tagesablauf von NPC...nennen wir es mal immersive Vorstellungskraft, was selbst die Vorlage aller CRPG, das PnP RPG ausmacht.
    Faye is offline

  7. #7 Reply With Quote
    Halbgott
    Join Date
    May 2014
    Posts
    9,728
    Ganz alleine bin ich nicht. Fest im Team ist bereits ein Komponist. Mit ihm habe ich bereits Ideen für einen OST besprochen, welche die Atmosphäre des Spiels vertiefen soll. Ein Leveldesigner hat sein Interesse bekundet und ich hoffe, dass wir uns die Tage auf eine Zusammenarbeit einigen können. Für 2D und 3D Assets suche ich momentan nach Leuten (Freiwillige vor ). Ich will das Team möglichst klein halten, allerdings reichen meine Fähigkeiten insbesondere als Artist jeglicher Art nicht ansatzweise aus. Aber ich habe auch so schon allerhand zu tun und kann mich dann noch mehr darauf konzentrieren.

    Bei mir braucht "leider" jeder NPC einen Tagesablauf. Aber das ist nicht sonderlich schlimm, da sie recht schnell erstellt sind. Bei Gothic gab es ja auch Tagesabläufe die aus "ich verkaufe Karten" und "ich schlafe" bestehen. Die Frage ist halt, wie detailiert müssen die Abläufe sein. Aber wie versprochen, erkläre ich mal etwas dazu:

    Für mein System habe ich mir überlegt, wie ich so leicht wie möglich ein dynamisches System erstellen kann. Da hatte ich die Idee von gebietsabhängigem Verhalten. Ein NPC ist in einem Gebiet und hat dort X-Möglichkeiten etwas zu tun. Z.B. die Kneipe, in der er Sitzen, Essen, Reden, Verkaufen, Bedienen kann usw. Das kann ich beliebig Ausbauen oder klein halten. Jeder NPC, der in dem Gebiet ist, hat erstmal alle Möglichkeiten offen dies zu tun. Nun bekommt jeder NPC aber für jede Zeit noch einen individuellen Tag, der bestimmt ob er Gast, Kellner oder Wirt ist oder gar eine "Customrolle" (also extra definierte Rolle) einnimmt. Technisch sieht das etwa wie folgt aus:

    Ein Gebiet wird durch eine Box definiert. In der Box werden automatisch beim Setzen alle nutzbaren Objekte und zusätzliche Waypoints registriert. Das funktioniert bereits. Im folgenden Bild sieht man einen Teil meiner Prototyp-Spielwiese inklusive eines solchen Gebiets.
    Spoiler:(zum lesen bitte Text markieren)


    Im Bild erkennt man, dass registrierte Objekte ihre Objektbezeichnung visuallisieren. die 2 Leitern auf der linken Seite sind von der Box (erkennbar an den gelben Kanten) nicht erfasst. Jedes Gebiet erhält außerdem einen sogenannten "Behavior Tree", der das Verhalten der NPCs innerhalb genaustens festlegt und er entscheidet auch welche Rolle was darf und was nicht. Also ein Gast hat den selben Baum wie ein Wirt. Da ich noch keine richtige Location habe, kann ich leider nur mit einem unvollständigen Behavior Tree dienen.
    Spoiler:(zum lesen bitte Text markieren)


    Die grünen Felder sind sogenannte "Services" und besorgen mir Daten (in dem Fall über Startzeit des nächsten Tagesgeschehens und Ingamezeit). Das blaue Feld überprüft ob es Zeit für den nächsten Tagespunkt ist und leitet dann an das Skript weiter, welches den nächsten Verhaltensbaum läd. Auf der anderen Seite, wo "Sequence" leer sind muss geprüft werden, ob es sich um Gast, Wirt etc handelt oder ob der Spieler den NPC anspricht oder gar wütend macht (man denke an Waffe ziehen in Gothic). Am Ende des Baums sind jeweils wieder Skripts, die ähnlich wie die Gebietsbox von oben funktionieren. Soll der NPC auf einen Stuhl sitzen und essen, werden alle freien und registrierten Stühle des Gebiets abgefragt und der NPC kann endweder einen festen Stuhl zugewiesen bekommen oder sich einen frei raussuchen. Die Koordinaten werden anhand der Objektkoordinaten berechnet und lösen je nach Objekttyp das eben erwähnte Skript aus. Das Ganze hier hat aber bereits nichts mehr mit den "Tagesabläufen" zu tun. Die Tagesabläufe werden nämlich als Tabelle gespeichert und das sieht in etwa so aus:
    Spoiler:(zum lesen bitte Text markieren)


    "Things to do" ist die Entscheidung, was der NPC am Tag macht. Mehrere Eingaben bedeutet je nach Zufall kann einer von mehreren Eingaben eintreffen. Die Wahrscheinlichkeiten für den Zufall werden mit "ToDo Weight" angegeben (Optionen - 1 ergibt Anzahl an nötigen Wahrscheinlichkeitsangaben). In welchem Zeitraum das geschehen soll, ergeben die nächsten 2 Angaben (0 Uhr = 0 und 24 Uhr = 24.000). "RoleIs" ist das, was ich mit dem Wirt, Gast und Kellner besprochen habe. Die Liste muss so groß wie die Liste für "Things to do" sein. Ein paar weitere Spalten werden sicher noch hinzukommen um weitere Optionen definieren zu können. Im Beispielbild hat der NPC 3 Tagesaufgaben jeden Tag und sowohl Zeit als auch Aufgaben sind hier nur als Prototyp-Test eingefügt.

    @Faye: Für unwichtige NPCs ist ein Tagesablauf also ziemlich schnell erstellt, wie du siehst. Allerdings funktioniert das erst dann wirklich, wenn zumindest die Gebietsboxen vorhanden sind (Objekte interessieren nur Behavior Trees und deren Tasks). Es macht aber auch einen großen Unterschied, ob die Männer in der Stadt rumgammeln oder ins Bergwerk rennen müssen. Rumgammeln können sich nämlich eigentlich nur Reiche leisten. Aber du hast natürlich recht, in anderen Spielen kann das ganz anders gehandhabt werden und der Rest macht dann die eigene Vorstellungskraft automatisch.

    Ein weiterer spannender Punkt ist, dass ich die Tabelle lediglich am NPC laden muss.
    [Bild: L99Juk1.png]
    Über dieses Drop-Down Menü kann ich die Standardtabelle (gewöhnlicher Tagesablauf des NPCs) angeben. Ich kann allerdings auch später über ganz andere Skripte die Datatable durch eine andere ersetzen. Ein Bauer arbeitet plötzlich für den Schmied und muss dafür umziehen? Kein Problem. Für kleinere Änderungen versuche ich allerdings eine "Injektion" zu erstellen (bin für Umsetzung noch am Planen).

    So, ich hoffe ich habe dazu nichts vergessen. Stellt gerne Fragen wenn etwas unklar ist oder ihr noch etwas wissen wollt. Die Posts sind oft sehr anregend für mich.


    Und nun nochmal zu dir Faye:
    Danke für das Angebot mit der Story-QA. Die Story steht noch nicht fest. Das hätte ich zwar tun können, aber ich möchte vorher erstmal etwas von der Welt sehen um die Story besser in die Welt integrieren zu können. Außerdem könnte es sein, dass jemand ein bisschen beim Storywriting mitmachen möchte. In dem Fall kann ich mehr Kreativität für den zweiten Writer bieten als einfach nur Aufgaben abzuarbeiten. Aber ich würde dein Angebot trotzdem gerne annehmen, wenn du nichts dagegen hast? Irgendwann wird die Story hoffentlich stehen.
    Xarthor is offline

  8. #8 Reply With Quote
    Burgherrin
    Join Date
    Apr 2013
    Location
    Gelöscht
    Posts
    1,526
    Quote Originally Posted by Xarthor View Post
    Ganz alleine bin ich nicht. Fest im Team ist bereits ein Komponist. Mit ihm habe ich bereits Ideen für einen OST besprochen, welche die Atmosphäre des Spiels vertiefen soll. Ein Leveldesigner hat sein Interesse bekundet und ich hoffe, dass wir uns die Tage auf eine Zusammenarbeit einigen können. Für 2D und 3D Assets suche ich momentan nach Leuten (Freiwillige vor ). Ich will das Team möglichst klein halten, allerdings reichen meine Fähigkeiten insbesondere als Artist jeglicher Art nicht ansatzweise aus. Aber ich habe auch so schon allerhand zu tun und kann mich dann noch mehr darauf konzentrieren.

    Bei mir braucht "leider" jeder NPC einen Tagesablauf. Aber das ist nicht sonderlich schlimm, da sie recht schnell erstellt sind. Bei Gothic gab es ja auch Tagesabläufe die aus "ich verkaufe Karten" und "ich schlafe" bestehen. Die Frage ist halt, wie detailiert müssen die Abläufe sein. Aber wie versprochen, erkläre ich mal etwas dazu:

    Für mein System habe ich mir überlegt, wie ich so leicht wie möglich ein dynamisches System erstellen kann. Da hatte ich die Idee von gebietsabhängigem Verhalten. Ein NPC ist in einem Gebiet und hat dort X-Möglichkeiten etwas zu tun. Z.B. die Kneipe, in der er Sitzen, Essen, Reden, Verkaufen, Bedienen kann usw. Das kann ich beliebig Ausbauen oder klein halten. Jeder NPC, der in dem Gebiet ist, hat erstmal alle Möglichkeiten offen dies zu tun. Nun bekommt jeder NPC aber für jede Zeit noch einen individuellen Tag, der bestimmt ob er Gast, Kellner oder Wirt ist oder gar eine "Customrolle" (also extra definierte Rolle) einnimmt. Technisch sieht das etwa wie folgt aus:

    Ein Gebiet wird durch eine Box definiert. In der Box werden automatisch beim Setzen alle nutzbaren Objekte und zusätzliche Waypoints registriert. Das funktioniert bereits. Im folgenden Bild sieht man einen Teil meiner Prototyp-Spielwiese inklusive eines solchen Gebiets.
    Spoiler:(zum lesen bitte Text markieren)


    Im Bild erkennt man, dass registrierte Objekte ihre Objektbezeichnung visuallisieren. die 2 Leitern auf der linken Seite sind von der Box (erkennbar an den gelben Kanten) nicht erfasst. Jedes Gebiet erhält außerdem einen sogenannten "Behavior Tree", der das Verhalten der NPCs innerhalb genaustens festlegt und er entscheidet auch welche Rolle was darf und was nicht. Also ein Gast hat den selben Baum wie ein Wirt. Da ich noch keine richtige Location habe, kann ich leider nur mit einem unvollständigen Behavior Tree dienen.
    Spoiler:(zum lesen bitte Text markieren)


    Die grünen Felder sind sogenannte "Services" und besorgen mir Daten (in dem Fall über Startzeit des nächsten Tagesgeschehens und Ingamezeit). Das blaue Feld überprüft ob es Zeit für den nächsten Tagespunkt ist und leitet dann an das Skript weiter, welches den nächsten Verhaltensbaum läd. Auf der anderen Seite, wo "Sequence" leer sind muss geprüft werden, ob es sich um Gast, Wirt etc handelt oder ob der Spieler den NPC anspricht oder gar wütend macht (man denke an Waffe ziehen in Gothic). Am Ende des Baums sind jeweils wieder Skripts, die ähnlich wie die Gebietsbox von oben funktionieren. Soll der NPC auf einen Stuhl sitzen und essen, werden alle freien und registrierten Stühle des Gebiets abgefragt und der NPC kann endweder einen festen Stuhl zugewiesen bekommen oder sich einen frei raussuchen. Die Koordinaten werden anhand der Objektkoordinaten berechnet und lösen je nach Objekttyp das eben erwähnte Skript aus. Das Ganze hier hat aber bereits nichts mehr mit den "Tagesabläufen" zu tun. Die Tagesabläufe werden nämlich als Tabelle gespeichert und das sieht in etwa so aus:
    Spoiler:(zum lesen bitte Text markieren)


    "Things to do" ist die Entscheidung, was der NPC am Tag macht. Mehrere Eingaben bedeutet je nach Zufall kann einer von mehreren Eingaben eintreffen. Die Wahrscheinlichkeiten für den Zufall werden mit "ToDo Weight" angegeben (Optionen - 1 ergibt Anzahl an nötigen Wahrscheinlichkeitsangaben). In welchem Zeitraum das geschehen soll, ergeben die nächsten 2 Angaben (0 Uhr = 0 und 24 Uhr = 24.000). "RoleIs" ist das, was ich mit dem Wirt, Gast und Kellner besprochen habe. Die Liste muss so groß wie die Liste für "Things to do" sein. Ein paar weitere Spalten werden sicher noch hinzukommen um weitere Optionen definieren zu können. Im Beispielbild hat der NPC 3 Tagesaufgaben jeden Tag und sowohl Zeit als auch Aufgaben sind hier nur als Prototyp-Test eingefügt.

    @Faye: Für unwichtige NPCs ist ein Tagesablauf also ziemlich schnell erstellt, wie du siehst. Allerdings funktioniert das erst dann wirklich, wenn zumindest die Gebietsboxen vorhanden sind (Objekte interessieren nur Behavior Trees und deren Tasks). Es macht aber auch einen großen Unterschied, ob die Männer in der Stadt rumgammeln oder ins Bergwerk rennen müssen. Rumgammeln können sich nämlich eigentlich nur Reiche leisten. Aber du hast natürlich recht, in anderen Spielen kann das ganz anders gehandhabt werden und der Rest macht dann die eigene Vorstellungskraft automatisch.

    Ein weiterer spannender Punkt ist, dass ich die Tabelle lediglich am NPC laden muss.
    [Bild: L99Juk1.png]
    Über dieses Drop-Down Menü kann ich die Standardtabelle (gewöhnlicher Tagesablauf des NPCs) angeben. Ich kann allerdings auch später über ganz andere Skripte die Datatable durch eine andere ersetzen. Ein Bauer arbeitet plötzlich für den Schmied und muss dafür umziehen? Kein Problem. Für kleinere Änderungen versuche ich allerdings eine "Injektion" zu erstellen (bin für Umsetzung noch am Planen).

    So, ich hoffe ich habe dazu nichts vergessen. Stellt gerne Fragen wenn etwas unklar ist oder ihr noch etwas wissen wollt. Die Posts sind oft sehr anregend für mich.


    Und nun nochmal zu dir Faye:
    Danke für das Angebot mit der Story-QA. Die Story steht noch nicht fest. Das hätte ich zwar tun können, aber ich möchte vorher erstmal etwas von der Welt sehen um die Story besser in die Welt integrieren zu können. Außerdem könnte es sein, dass jemand ein bisschen beim Storywriting mitmachen möchte. In dem Fall kann ich mehr Kreativität für den zweiten Writer bieten als einfach nur Aufgaben abzuarbeiten. Aber ich würde dein Angebot trotzdem gerne annehmen, wenn du nichts dagegen hast? Irgendwann wird die Story hoffentlich stehen.


    Ach du bist dass, lieber Xarthor.
    Sorry...ohne einprägsames Profilbild oder Avatar...habe ich große Schwierigkeiten hier jemanden wiedererkennen zu können. xD

    Also dein Projekt klingt super spannend, ganz ehrlich.
    Und ich erkenne eine gewisse Leidenschaft, in dir. Was immer gut ist.

    Wenn du magst, kann ich dir auch als "Writerin" meine Hilfe anbieten.
    Habe zwar noch keine Story für ein RPG geschrieben, aber meine Leser sagen immer ich würde sehr immersiv schreiben. Vor allem würden meine Dialoge sehr lebendig und echt wirken.
    Und ich bin ziemlich gut und schnell, wenn es darin geht einen stimmigen Plot auszuarbeiten.
    Außerdem gibt es bei mir eine eingebaute "Keine Logikfehler in der Handlung" Garantie.
    (Weil mich sowas wahnsinnig werden lässt, und ich kein Verständnis dafür habe, wie sowas namenhaften Autoren passieren kann.)

    Müsstest mir nur mal, per PN am besten, schreiben was du dir ungefähr vorstellen würdest.
    Oder mir zumindest ein paar grobe Dinge nennen, die du gerne hättest.
    Und ich erarbeite dann zwei bis drei Konzepte aus, die dir gefallen könnten.

    Ob du es eher episch willst, zum Beispiel. Oder vielleicht eher bodenständig, mit mehr Fokus auf das persönliche Schicksal, der Charaktere.

    Ich biete dir jedenfalls meine Hilfe an. Melde dich einfach, wenn du sie in Anspruch nehmen möchtest.

    LG
    Faye
    Faye is offline

  9. #9 Reply With Quote
    Halbgott
    Join Date
    May 2014
    Posts
    9,728
    Ich habe dir mal eine PN geschickt.

    Naja meine Signatur kommt einen Bild gleich. Ne im Ernst, ich hätte ja schon gerne einen Avatar, habe allerdings kein Bild hier, welches zu mir passt. Tut mir leid.

    Edit:
    Ups, Signaturen werden hier garnicht angezeigt, daran lag es!

    Das Problem mit dem 3D-Artisten hat sich wohl auch gerade erledigt. Fehlt noch jemand für 2D-Assets und Animationen. Das hat aber untergeordnete Priorität (kann auch später noch eingebaut werden).
    Xarthor is offline Last edited by Xarthor; 13.06.2019 at 21:45.

  10. #10 Reply With Quote
    Legende jabu's Avatar
    Join Date
    Jul 2011
    Posts
    7,881
    Quote Originally Posted by Xarthor View Post
    Soll der NPC auf einen Stuhl sitzen und essen, werden alle freien und registrierten Stühle des Gebiets abgefragt und der NPC kann endweder einen festen Stuhl zugewiesen bekommen oder sich einen frei raussuchen.
    Vorschlag: "Reise nach Jerusalem" als Testfall...
    jabu is offline

  11. #11 Reply With Quote
    Halbgott
    Join Date
    May 2014
    Posts
    9,728
    Klingt eher nach einem EasterEgg / Cheatcode.
    Xarthor is offline

  12. #12 Reply With Quote
    Deus Oparilames's Avatar
    Join Date
    May 2004
    Location
    ex contrariis
    Posts
    11,018
    Ein schönes, ambitioniertes Projekt.

    Beim Lesen stellte ich mir übrigens die Frage, ob die NPCs auch gebietsabhängig
    die Umgebung in den Kampf einbeziehen werden (falls es ein RPG mit Kampfsystem
    wird). Sei es um Deckung zu suchen, Hilfe zu rufen oder wie in Dark Messiah
    Schaden anzurichten.

    Ich selbst beginne derzeit mit der Planung eines kleindimensionierten
    RPG-Projekts und hat ähnliche Schwerpunkte wie dein Projekt.
    Darf ich mir hier im Thread Anregungen holen?
    Oparilames is offline

  13. #13 Reply With Quote
    Halbgott
    Join Date
    May 2014
    Posts
    9,728
    Das Kampfsystem, sollte es eines geben (steht noch nicht fest), wird eher einfach gehalten. Es ist so schon viel Arbeit und ein ausgetüfteltes Kampfsystem bei dem die KI die Umgebung nutzt ist einfach zu aufwendig. Irgendwo müssen leider abstriche gemacht werden und da konzentriere ich mich natürlich erstmal darauf, was mir wirklich wichtig ist. Aber mal angenommen ich würde ein umfangreiches Kampfsystem umsetzen wollen, so würde ich das wohl nicht über das bereits beschriebene System tun. Für nutzbare Objekte (z.B. werfbare Steine) würde ich einen Trigger in Kugelform nutzen um die Objekte in unmittelbarer Nähe zu erkennen und Aktionen für die Objekte definieren. Hilferufe funktionieren auf ähnliche Art und Weise - eventuell könnte man die Soundengine nutzen um die Helfer in Abhängigkeit der Geräuche zu triggern (Spekulation meinerseits). Für ein Deckungssystem müsste ich jedoch ein ganz neues System entwickeln, weil es ganz andere Anforderungen hat. Soetwas würde ich nur in größeren Projekten angehen, wenn mindestens noch ein 2. Coder aktiv mitarbeitet.

    Natürlich darfst du dir Anregungen holen und wenn du fragen hast, kannst du sie mir gerne stellen.
    Xarthor is offline

  14. #14 Reply With Quote
    Halbgott
    Join Date
    May 2014
    Posts
    9,728
    Heya, ich wollte mal eine kleine Erfahrung mit euch teilen, die ich gemacht habe.

    Diese Woche habe ich die Kamera Version 3 fertiggestellt, mit der ich nun super zufrieden bin. Anbei habe ich eine eigene Formel für Mausglättung erstellt, die sich sowohl direkt anfühlt (also keine spürbaren Latenzen, shooterfähig), als auch die Maus spürbar sanfter macht. Damit bewegt sich die Kamera ebenfalls sanft. Als ich soeben Kingdom Come anschmiss und mal eine Runde spielen wollte, fiel mir direkt ins Auge, dass das Spiel ohne Mausglättung daherkommt. Der Unterschied in der Bildbewegung ist wie Tag und Nacht! Wärend in Kingdom Come eine Art Diashow zu sehen ist (was an der ruckelartigen Bewegung der Maus liegt, also kein FPS-Problem), ist mein Spiel mit Mausglättung fast wie eine Kamerafahrt und das erhöht das Spielerlebnis sehr viel stärker als erwartet. Bei mir wird jedenfalls kein Spiel ohne Mausglättung erscheinen!
    Xarthor is offline

  15. #15 Reply With Quote
    Ehrengarde Feuerstern's Avatar
    Join Date
    Sep 2007
    Posts
    2,025
    Quote Originally Posted by Xarthor View Post
    Heya, ich wollte mal eine kleine Erfahrung mit euch teilen, die ich gemacht habe.

    Diese Woche habe ich die Kamera Version 3 fertiggestellt, mit der ich nun super zufrieden bin. Anbei habe ich eine eigene Formel für Mausglättung erstellt, die sich sowohl direkt anfühlt (also keine spürbaren Latenzen, shooterfähig), als auch die Maus spürbar sanfter macht. Damit bewegt sich die Kamera ebenfalls sanft. Als ich soeben Kingdom Come anschmiss und mal eine Runde spielen wollte, fiel mir direkt ins Auge, dass das Spiel ohne Mausglättung daherkommt. Der Unterschied in der Bildbewegung ist wie Tag und Nacht! Wärend in Kingdom Come eine Art Diashow zu sehen ist (was an der ruckelartigen Bewegung der Maus liegt, also kein FPS-Problem), ist mein Spiel mit Mausglättung fast wie eine Kamerafahrt und das erhöht das Spielerlebnis sehr viel stärker als erwartet. Bei mir wird jedenfalls kein Spiel ohne Mausglättung erscheinen!
    Fände ein Vergleichsvideo sehr interessant. Ich hab über das Thema ehrlich gesagt noch nie nachgedacht, aber kann mir vorstellen das es ein anderes Spielgefühl ist.
    Feuerstern is offline

  16. #16 Reply With Quote
    Halbgott
    Join Date
    May 2014
    Posts
    9,728
    Quote Originally Posted by Feuerstern View Post
    Fände ein Vergleichsvideo sehr interessant. Ich hab über das Thema ehrlich gesagt noch nie nachgedacht, aber kann mir vorstellen das es ein anderes Spielgefühl ist.
    Ich mache am Wochenende mal eins, wenn ich es nicht vergesse.
    Xarthor is offline

  17. #17 Reply With Quote
    Halbgott
    Join Date
    May 2014
    Posts
    9,728
    Es tut mir leid, ich hatte das Video zwischenzeitlich vergessen, weil im RL ein paar Dinge dazwischen gekommen sind. Aber jetzt bin ich doch noch dazu gekommen und will es natürlich nicht vorenthalten. Ich habe aber mal nur meinen Prototypen gezeigt und Kingdom Come nicht mit aufgezeichnet. Neben der dort fehlenden Mausglättung laggen die Aufnahmen etwas (habe keine extra Karte für Aufnahmen im PC) und dann wird nicht mehr so leicht ersichtlich, was an der Mausglättung und was am Bildlag liegt. So hier nun das Video (am besten in Vollbild ansehen):

    [Video]

    Edit:
    Nochmal ein paar Hinweise, weil einige Probleme haben den Unterschied zu erkennen. Es geht um die kleinen Ruckler, die bei langsamer Mausbewegung auftreten (die fallen bei schnellen Bewegungen weniger bis gar nicht auf). Auch sieht man die Ruckler weniger, wenn die Auflösung kleiner ist. Da der Charakter auch von der Maus gedreht wird, zittert er in der ersten Aufnahme genauso wie man es am Bildrand gut erkennen kann. Beim Spielen wird der Unterschied noch deutlicher sichtbar als hier im Video. Dazu kommt, dass ich eine gute Maus bei der Aufnahme verwendet habe. Der Effekt wird bei schlechterer Hardware um so deutlicher. Ich wollte jetzt aber kein 10min Video für so ein kleines Feature drehen um alle Eventuallitäten abzuarbeiten.
    Xarthor is offline Last edited by Xarthor; 17.03.2020 at 18:43.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •