Update: Entwicklungsstand KI Prototyp

Grobkonzept KI

Grobkonzept KI

Soo.. mal ein kurzes Update zum Stand der Dinge für den zweiten Science-O-Matic Prototypen: die oberen beiden Ebenen der KI :) Ein grobes Konzept mit beteiligten Parteien, Ablauf und Datenhaltung steht, rechts im Bild einmal verknappt dargestellt. UML Diagramm mit den Klassen und die Klassenrümpfe im Coding stehen. Die Datenbank hierzu ist auch schon aufgestellt, alle Tabellen angelegt, momentan bin ich gerade dabei, den DBHandler (siehe Ordnung schaffen: eine Datenbank Handlerklasse) für die neue Datenbank, die neuen Tabellen und vor allem die neuen, zu puffernden Daten anzupassen und hoffe, die Tage mit dem Programmieren der eigentlichen Logik beginnen zu können :)

Posted in Code-O-Matic. Tagged with , .

..and I’m back in the game!

Ich wollte nur kurz melden, dass ich, naja, wieder im Spiel (irgendjemand den Wortwitz mitbekommen? :P) bin :) Die letzten Wochen waren (von der Arbeit aus) einfach so unglaublich voll – ich bin nicht wirklich zu irgendetwas anderem gekommen. Aber mittlerweile ist alles wieder normal und ich habe schon mit dem Konzept für den KI Prototypen begonnen :) Ich freu mich aufs Projekt und aufs Programmieren – vielleicht schon dieses Wochenende :)

Posted in News-O-Matic.

Mode: spanische Mode

Anna von Österreich (1571)

Anna von Österreich (1571)

Mitte des 16. Jahrhunderts verbreitete sich der strenge, fromme spanische Stil in ganz Europa. Korsetts, Halskrausen und Reifröcke wurden eingeführt, die Kleider enger, die Farben dunkler. Auffallend sind die betonten Schultern und die überlangen Ärmel des Oberkleides. Die Strenge der Kleidung an sich wurde wett gemacht durch Perlen, Edelsteine und goldene Manschetten, aber auch durch viel Schmuck wie Ketten, Ringe und Diademe. Rechts zu sehen ein Gemälde von Anna von Österreich von 1572, in einem Outfit in Schnitt und Farbwahl, aber auch in den Accessoires (Perlen, Ringe, Spitzentaschentuch) typisch für diese Zeit ist. Obwohl diese Modeepoche einige schöne Stilelemente wie die extravaganten Ärmel bereitstellen, freut mich doch die Auflockerung (und damit das Ende der Modeepoche spanische Mode) nach der Jahrhundertwende.

Posted in Inspiration-O-Matic. Tagged with , .

kurze Notiz: neues Thema :)

So.. die Suche nach einem neuen Thema ist vorbei, ich habe mich entschieden: die obersten beiden Ebenen der KI sollen es sein :) Noch sind wir / bin ich in der Brainstormingphase.. Ich melde mich, wenn es was zum melden gibt :)

Posted in News-O-Matic. Tagged with , .

How-To: Python Scripting in Blender: (6) Add-On Programming

In diesem (vorerst?) letzten Teil der Python in Blender Tutorialreihe wollen wir unser Pyramidenprogramm als Add On installieren, so dass wir das Skript nicht mehr über das Textfenster laden und ausführen müssen. Am Ende dieses Tutorials könnt ihr

  • ein Skript so anpassen, dass es in Blender als Add-On installierbar ist und
  • Add-Ons installieren.

Add-On Page

Continue reading

Posted in Code-O-Matic, Graphic-O-Matic. Tagged with , , .

Kleidentwürfe: Directoire

Kleidentwurf: Directoire

Kleidentwurf: Directoire

Inspiriert von früheren “Recherchen” ( = schöne Bilder von tollen Kleidern schauen) habe ich schon vor einer Weile mal einen Entwurf für ein Kleid im Directoire Stil gezeichnet. Das Schnittmuster (für das linke Kleid) ist auch schon fertig, ein fließender, weißer Stoff und blauer Stoff für die Zierbänder ist auch schon gekauft. Yeah, ein neues Nähprojekt :) Ich halte euch auf dem Laufenden :)

Posted in Off-Topic-O-Matic. Tagged with .

Wirtschaft und Handel

Ein weiteres mögliches Thema wäre die Entwicklung eines Wirtschaftssystems inklusive Handelssystem, Monitoring und Steuerungsmöglichkeiten. Es soll in unserem Spiel einen geschlossenen Geldkreislauf geben. Geschlossener Geldkreislauf, also geschlossene Volkswirtschaft heißt in unserem Falle auch, dass alle Teilnehmer in Wirtschaftssystem (Spieler und NPCs) einen festen Geldbetrag haben und damit agieren. Während über das Verhalten der Spieler nur Annahmen getroffen werden können und wir dieses Verhalten auch nur indirekt steuern können, sollten sich die teilnehmenden NPCs nach Regeln verhalten, die der Stabilität des Systems zuträglich sind. Als Ziele lassen sich also festhalten:

  1.   langfristig stabiles Preisniveau
    1. gleichbleibende Anfangsbedingungen für neue Spieler
    2. kein “Explodieren” der Geldmenge
    3. keine übermäßige Differenz zwischen armen und reichen Spielern
  2. geringe Konjunkturschwankungen

Die uns zur Verfügung stehenden Steuerungsmöglichkeiten sind:

  • Events zur Erhöhung / Senkung der Geldmenge
  • Verhalten der teilnehmenden NPCs

Continue reading

Posted in Theory-O-Matic. Tagged with .

nun auch mit Ton: der erste Blogartikel ist vertont :)

Yay :) Gestern haben wir den ersten Blogartikel auch zum Anhören (und Anschauen) veröffentlicht :) 30 Minuten Erklärungen meinerseits zum Artikel Verhalten der NSCs sind bei YouTube hochgeladen :) Freu mich über Klicks und Feedback :)

Posted in News-O-Matic, Theory-O-Matic. Tagged with , .

Den (eigenen?) Weg finden

In diesem Artikel möchte ich einen Gedanken zur Wegfindung von NSCs mit euch teilen. Wie kann ein NSC einen Weg finden, ohne dass ein offizieller Pfad existiert? Und ohne dass – noch viel schlimmer – geskriptete Wege hinterlegt werden? Aber gleichzeitig auch ohne dass der NSC allwissend ist, die Wege besser findet als der Spieler und ohne dass er, alles bisher gewesene ignorierend, außerhalb von Städten und offiziellen Wegen rein nach Himmelsrichtungen läuft? Nun habe ich schon mehrfach das Wort offizieller Weg / Pfad genutzt, was ist eigentlich ein Weg?

“Wege entstehen dadurch, dass man sie geht.” (Franz Kafka)

Dieses schöne Zitat von Kafka war sicherlich im übertragenen Sinn gemeint, stimmt aber auch in seiner wörtlichen Bedeutung.

Continue reading

Posted in Theory-O-Matic. Tagged with , , .

How-To: Python Scripting in Blender: (5) User Interface

UI Panel: Pyramide

UI Panel: Pyramide

In diesem fünften, vorerst vorletzten Python in Blender Tutorial wollen wir uns mit der Erstellung von einfachen User Interfaces befassen. Wir wollen für unser Tutorial Programm ein kleines UI mit zwei eingebbaren Floatzahlen für die Höhe und die Breite der Pyramide und einem “Build!” Button (siehe Graphik rechts) schreiben. Am Ende dieses Tutorials könnt ihr

  • Button Panels erstellen,
  • Eingabefelder erstellen und
  • Buttons anzeigen lassen und mit Funktionen belegen.

Continue reading

Posted in Code-O-Matic, Graphic-O-Matic. Tagged with , , .

Mode: Directoire

Luise von Mecklenburg-Strelitz (1802)

Luise von Mecklenburg-Strelitz (1802)

Als nach der französischen Revolution 1794 das Direktorium (französisch: Directoire) das Ancien Régime ablöste, änderte sich auch die Mode radikal. Wie in der Politik auch wurden alte Zwänge abgelegt, Korsetts, Reifröcke und Perücken wurden in den Keller verbannt. Neo-Klassizismus bestimmte die Mode der Frauen, Kleider und Frisuren waren angelehnt an die hochstilisierten Zeiten der Antike. Weiße, weiche, fließende und dünne Stoffe, lockere Schnitte, rosige Wangen und jungfräuliche Lockenkränze bestimmten das Bild. Rechts ein wunderschönes Beispiel aus dieser Zeit, ein Gemälde von Luise von Mecklenburg-Strelitz von 1802. Leider endete die Zeit des Fokus auf die unverfälschte weibliche Schönheit mit der nächsten politischen Wendung – die Krönung von Napoleon 1804 läutete ihr langsames Ende ein.

Posted in Inspiration-O-Matic. Tagged with .

zurück von der RPC

“Das meiste haben wir gewöhnlich in der Zeit getan, in der wir meinten, zu wenig zu tun.” – Marie von Ebner-Eschenbach

So denke ich mir, auf den Wahrheitsgehalt der Aussage hoffend, abends zurück von einem Wochenende auf der RPC. Keine Zeile Code geschrieben, keinen einzigen Test gefahren, keinen Gedanken an ein Konzept für ein neues Thema verwendet. Aber viele Kilometer auf der Messe zurück gelegt, Gewandungen bestaunt, Workshops besucht und Spiele angetestet. Und geshoppt ;) Viel davon.. Nun sitzen wir mit Beuteln voller Loot glücklich, aber groggy zurück hier in Hamburg und freuen uns auf das nächste Ereignis: die Nordcon in zwei Wochen :) Aber keine Bange, bis dahin sollte ich wohl auch wieder ein wenig produktiv gewesen sein ;)

Posted in News-O-Matic. Tagged with , .

Verhalten der NSCs

Ein weiteres mögliches und sehr ergiebiges neues Thema wäre die KI der NSCs. Welche Anforderungen und welche Wünsche werden an eine KI in einem Computerspiel gestellt? Ich weiß vor allem, was ich nicht möchte. Ich möchte keine “dummen Bots”. Ich möchte keine feindlichen NSCs, die nach der Uhr ihre Attacken ausführen, ich möchte keine zivilen NSCs, die zu jeder vollen Stunde ihren üblichen Weg laufen und dabei jedes Mal dieselbe Unterhaltung führen. Mehr noch: Frei nach dem Motto “Lernen ist wie Rudern gegen den Strom. Sobald man aufhört, treibt man zurück” (Benjamin Britten) ist jede KI, die sich dem Verhalten der Spieler nicht anpasst, die nicht dauerhaft von ihrer Umwelt lernt, unbefriedigend. Ich würde also erwarten, dass sich die NSCs dem Umfeld und damit auch meinen Aktionen anpassen. Das Ziel einer KI für feindliche, vor allem aber für verbündete NSCs in einem Spiel, in dem viel Zeit auch außerhalb von Kämpfen verbracht wird, sollte auch die Erhaltung und Erzeugung von Ambiente und Konsistenz beinhalten. Die NSCs sollten Aktionen nicht ausführen, weil wir das so geskriptet haben, sondern weil sie einen Grund dafür haben. Sie sollten kein Brot kaufen, weil ein Skript ihnen sagt, dass sie jeden Tag ein Brot kaufen, sondern weil sie Hunger haben und ein Brot kaufen dann eine gute Idee ist. Wenn die gesellschaftlichen Gepflogenheiten sich durch die Spieler ändern, dann sollten sie es erkennen. Wenn sich Treffpunkte heraus gebildet haben, an denen sich die Spieler vermehrt aufhalten, dann sollten die NSCs sich daran anpassen und zum Beispiel beginnen, dort Ware zu verkaufen oder nach Arbeit zu suchen. Und das alles, ohne! für jede Situation ein eigenes Skript zu schreiben. Leider bestehen die meisten KI Systeme, wie sie in Lehrbüchern stehen, nur aus immer komplexeren Skripten, die immer mehr Daten mit einrechnen. Die KI, wie ich sie mir vorstelle, ist in drei Ebenen unterteilt:

  • Ebenen der KI

    Ebenen der angedachten künstlichen Intelligenz

    Motivationsebene: Mit Hilfe einer Motivationspyramide wird bestimmt, welche Bedürfnisse den NSC motivieren, also welche Ziele angegangen werden. Je nach Archetyp des NSCs kann die Motivationspyramide entsprechend angepasst sein, bzw. die sich dahinter verbergenden konkreteren Ziele können variieren (Anerkennung kann sowohl in handwerklichem Können, in Reichtum oder auch im Krieg gesucht werden). Diese Ziele schränken die Optionen, die der nächsten Ebene gewählt werden können, stark ein. Beispiel für eine in dieser Ebene getroffene Entscheidung: Die Bedürfnisse der Art “Grundbedürfnisse” sind erfüllt, Ziele mit Zweck Bedürfniserfüllung “Sicherheit” werden nun auch verfolgt.

  • Optionsebene: Welche Handlungsoptionen stehen zur Verfügung, wie werden sie bewertet, welche werden ausgeführt? Beispiel für eine in dieser Ebene getroffene Entscheidung: Aus der Motivationsebene kamen hohe Bewertungen für die Bedürfnisse “Grundbedürfnisse” und “Sicherheit”. Es stehen also Optionen wie “Essen / Trinken bei Gastwirt y oder Bauer z besorgen” aber auch “ein Schloss bei Schmied y kaufen und einbauen” oder “eine Waffe bei Schmied x kaufen” zur Verfügung, nicht aber Optionen der Selbstverwirklichung wie “ein Bild malen”. Diese Optionen werden gewertet und eine Entscheidung für eine oder mehrere Optionen werden getroffen.
  • Situationsebene:Die Optionsebene hat eine auszuführende Handlung bestimmt. Die Situationsebene ist die konkreteste Ebene, hier geht es um Fragen wie: Wie verhalte ich mich, wenn ein “befreundeter” NSC oder Spieler vorbeiläuft, wie führe ich die eigentlich Aktion (“Waffe kaufen”) durch, wie biege ich an Kreuzung b ab, wenn mein eigentlicher Weg versperrt ist, wie reagiere ich, wenn mich jemand angreift? Beispiel für eine Entscheidung dieser Ebene: “Gib dem Schmied x Geld für die Waffe”, aber auch Reaktionen auf einen Angriff wie “die Flucht ergreifen” oder “zur Wehr setzen” und damit verbunden das Kampfverhalten (welche Schläge führe ich aus..).

Continue reading

Posted in Theory-O-Matic. Tagged with , , .

Simulation der Fauna

Soo.. Immer noch auf der Suche nach einem Nachfolgethema für mich.. Vielleicht mal das naheliegendste Thema als Vorschlag überdenken: die Simulation der Flora, beziehungsweise von Teilen der Flora haben wir nun, der Kleinbewuchs und die Fauna warten noch auf ihre Berechnung. Das wäre natürlich das kanonische Nachfolgethema. Welche Unterschiede müssen in der Simulation beachtet werden? Bisher wurden immobile Individuen berechnet. Beide Punkte sind für die Simulation von Kleinbewuchs und Fauna nicht praktikabel:

  • Berechnung auf Ebene von Individuen ist bei Kleinbewuchs bei Weitem zu rechenaufwendig (Gräser sind wohl besser auf Populationsebene als auf Individualebene zu betrachten), bei Fauna ist das Problem sogar noch größer: bei generativer Vermehrung und Berechnung von Individuen müsste man auch Paarungsverhalten, Laufwege und Geschlecht von Tieren beachten – uncool.
  • Tiere sind – abhängig von ihrer Größe – auch mobil. Bei schlechten Umweltbedingungen sterben sie nicht notwendigerweise, sondern würden zunächst eine Auswanderung in benachbarte Regionen versuchen.

Also, was tun? Erste Gedanken dazu:

  • Die Bevölkerungsdichte wird pro Art, pro Gebiet bestimmt, die Größe des Gebiets ist abhängig von der Art und entspricht dem durchschnittlichen Mobilitätsgebiet der Tiere. Bei Blattläuses reden wir wahrscheinlich von einer Gebietsgröße von wenigen Quadratmetern, bei Löwen sind Territoriumsgrößen (und damit Gebietsgrößen) von bis zu 400 Quadratkilometern möglich.
  • Auch für die Berechnung von Kleinbewuchs und Fauna werden Umweltfaktoren mit einbezogen – natürlich andere als bei Pflanzen. Wesentlich mehr Augenmerk muss aber auf die Interdependanzen zwischen Arten gelegt werden (Beispiel Prädatoren).
  • Vor allem bei langlebigen Tieren könnte eine Unterscheidung in Generationen notwendig sein. Verbunden damit könnte ein größeres Augenmerk auf die Einbeziehung der altersbedingten Sterblichkeit sein.
  • Bei schlechten Bedingungen gibt es keine (unbegrenzte) Biomasseabnahme ohne den Tod des Individuums, dafür ist je nach Art eine Auswanderung in angrenzende Gebiete möglich.
  • Man stellt sich vor, dass die Volterra Regeln zumindestens in abgeschlossenen, kleinen Systemen beobachtbar sein sollten.. Scheint aber eine toughe Aufgabe..

Insgesamt ein interessantes Thema, das sich vom Realkontext her an das bisherige Thema angliedert. In der technischen Umsetzung lassen sich aber kaum Parallelen erkennen, dementsprechend wird sich auch kaum etwas vom Prototypen zur Simulation der Flora wiederverwenden lassen.

Posted in Inspiration-O-Matic. Tagged with , .