Programmablauf: Optionsebene

Dieses Wochenende war endlich mal wieder Zeit, um mal ein paar Stunden am Stück zu proggen :) Erstens hat das sehr viel Spaß gemacht und zweitens bin ich gut voran gekommen :) So grob funktioniert nun alles, aber viele, viele, viele (viele, viele, viele.. :P ) Kleinigkeiten fehlen noch. Folgend seht ihr ein Ablaufdiagramm, das den groben Ablauf der Optionsebene (in der jetzigen Umsetzung) beschreibt.

Ablauf Optionsebene

Ablauf Optionsebene

Drei zentrale Mitspieler sind hier Instanzen der Klassen DBHandler (Schnittstelle zur Datenbank und Puffer), NPC (selbsterklärend) und AISimulation (simuliert das Umfeld).

  • get data: Aus dem Puffer (bzw. ultimativ aus der Datenbank) werden alle KI / NSC-relevanten Daten (Bedürfnisse, Gewichte der Motivationsklassen, Optionen, SOM, Inventar und Aufenthaltsort des NSCs). Aus diesen Daten wird dann eine Instanz der Klasse NPC erstellt. Dort wird dann erst die aktuelle Periode “durchlebt”, und dann die kommende Periode geplant.
  • decide on next option: Die Option, deren SOM-Werte den Bedürfnissen des NSCs am besten entspricht wird gewählt und eingeplant. Wenn wir uns in der live-Periode befinden, werden die dazu gehörenden Events aus dem Puffer geholt (get events) und in die Liste der kommenden Events einsortiert (sort events by date).
  • update time: Die Zeit wird upgedated auf den Zeitpunkt nach Ausführung der Option.
  • execute next event: Alle Events, deren Ausführungszeitpunkt vorm aktuellen Zeitpunkt liegt, werden nun ausgeführt. Die daraus resultierenden Änderungen in den Bedürfnissen, dem Inventar und dem Aufenthaltsort des NSCs (adjust inventory, location & needs) werden zusammen mit dem Event in den Puffer geschrieben.
  • In der Planungsperiode soll der NSC die nächste Periode nur planen, ohne zu wissen, welche Events wirklich eintreten werden. Dieser Vorgang findet also rein in der Instanz der Klasse NSC statt. Wieder wird die Option gewählt, deren SOM-Werte den Bedürfnissen des NSCs am besten entspricht. Sowohl die die Änderung in der Zeit als auch die Änderungen in den Bedürfnissen, dem Inventar und dem Aufenthaltsort des NSCs werden aus den Erwartungen des NSCs ermittelt und durchgeführt. Es werden dann Optionen ermittelt, bis die Planungsperiode komplett beplant ist. Die in der Planungsperiode getätigten Änderungen in den Bedürfnissen, dem Inventar und dem Aufenthaltsort des NSCs werden nicht in den Puffer übernommen, lediglich die Liste der Optionen landet ultimativ auf der Datenbank.

Cookie

Ich bin.. hmm, wie fange ich nun am Besten an? Mit dem Trivialen: Ich bin Cookie :) Und wie drücke ich nun am besten aus, wie ich mich in Science-O-Matics und in !∃2.0 einbringe? Vielleicht kurz zu mir: Ich habe Mathe mit einem Schwerpunkt in der reinen Mathematik studiert, nach meinem Abschluss dann ein Jährchen mal ein wenig Geld verdient in der ABAP Entwicklung, dann bin ich zurück zur Uni, habe mit einem kurzen Exkurs in die mathematische Optimierung mein Wirtschaftsmathe Diplom vollendet und mache gerade meinen Doktor in der quantitativen Forschung der Wirtschaftswissenschaften, also Optimierung auf Wirtschaftsseite, Modelle aufstellen, Algorithmen analysieren, anpassen oder entwickeln, implementieren.. Ist echt cool :D Also im Herzen Mathematikerin. Nein, Informatikerin.. Beides halt ^^ Für !∃2.0 mache ich vor allem Mathemagie und deren Umsetzung, aber auch viele andere Hintergrundmodelle. Sachen, die man in Spielen schon immer mal cool gefunden hätte.. "einfach" mal umgesetzt als eigenständiges Feature. So ist zum Beispiel die Generierung der Umwelt zum größten Teil aus meiner Feder. Hmm.. was schreibt man sonst noch in eine Vorstellung rein? Das Alter? - Vergesst es, nach dem Alter einer Dame fragt man nicht :P Hobbies? Tja, Computerspiele, wie man sich wohl denken kann ^^ Aber auch LARP, Gesellschaftsspiele und Trading Card Games, nähen und Sport würde ich dazu zählen.. Ehrlicherweise auch Shoppen, Schuhe und Klamotten ;) Ach, warum ich Cookie heiße? Das sollte schnell klar werden ohne dass ich es ausführe ;)
Posted in Code-O-Matic. Tagged with , .

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>