Benutzer:Andyk/Mitschriften/Projekttagebuch

Aus Philo Wiki
Wechseln zu:Navigation, Suche

<root> <div class='right_side_navigation' style='width:156px;position:fixed;bottom:50px;background-color:#efefef;border-color:#bbbbbb;border-width:1pt;border-style:solid;padding:1px 2px;font-size:8pt;text-align:center;filter:alpha(opacity=90);-moz-opacity: 0.9;opacity: 0.9;'> Navigation (PSI)<br> Hauptseite (alt)<br> Hauptseite (Endspurt)<br> recent changes<br> Alle Seiten

Development<br> Endspurt<br> Dev-Talk<br> ChangeLog<br> Repository<br> Global Mindset V4<br /> Szenariosammlung<br /> Projekt-Präsentation

</div><ignore><includeonly></ignore><ignore></includeonly></ignore></root>

09.02.2009: Session 1

Ich habe vor, an dieser Stelle so etwas wie ein Projekttagebuch zu führen, das die Ideen, die mir beim Lesen der Bücher 3,4 und 5 kommen, kommentiert (Selbst-Dokumentation). Einzelne inhaltliche Ergebnisse (wie z.B. Inform7Code oder Analyseergebnisse, Storyboard-Ideen, Raumgestaltungen, etc.) werde ich dann nochmals explizit und pointierter an anderer Stelle verlinken, sodass man sich nicht durch das Tagebuch wälzen muss. Wer will – ich denke, dass es sinnvoll ist - kann sich an dieser Unternehmung beteiligen; kommentieren, kritisieren, erläutern. Wenn nur ein Kopf denkt, passiert es unter Umständen, dass man sich irgendwohin verfährt – und ein Vorzug unseres Projektes (also einer Kooperation) soll es ja sein, so etwas zu verhindern.

Vorbemerkungen, Zielsetzung

Bevor ich zu lesen beginne, sollte ich mir im Klaren werden, in welche Richtung ich lesen soll – also worauf ich achten soll. Als ich die besagten Bücher das erste Mal gelesen habe, hat sich bei mir auf jeden Fall so etwas wie ein elementartiger Aufbau des Staates eröffnet, der für eine objektorientierte Analyse, wie wir sie für Inform7 gut gebrauchen können, geeignet scheint. Es wird – das wurde schon angemerkt - sehr konkret beschrieben, wie der Staat auszusehen hat, wer welche Aufgaben hat, etc. Beim Lesen möchte ich mal überwiegend bei Platons Gedankenexperiment bleiben und den Gegenwartsbezug - den wir diskutiert haben und den ich auch für sinnvoll erachte - auf später verschieben, da ich fürchte, dass es beim Lesen zu sehr ablenken könnte, es sei denn, es gibt eine penetrante Assoziation, dann werde ich das kurz anmerken. Ich werde bei Motivation und Gelegenheit ein kleines Exzerpt des Buches „Methoden der objektorientierten Systemanalyse“ von Heide Balzert anfertigen, wo es darum geht, wie man die richtigen Klassen (in Inform: Kinds) und Attribute (in Inform: Kind of values) findet; einfach gesagt handelt es sich um eine Methode zur Analyse eines prosa-artigen Textes (wie z.B. eines Pflichtenhefts oder in unserem Fall eines Platon-Werks).

Wo anfangen?

Wollte eigentlich mit Buch 3 anfangen, aber irgendwie hat sich mir der Gedanke ergeben, dass man noch weiter vorne zu analysieren beginnen müsste. Deshalb bin ich nochmal zu Buch 2 und der Gyges-Stelle zurückgegangen. Die Motivation, warum Glaukon das vorschlägt ist ja, dass er beweisen will, dass man nur gerecht handelt, wenn man nicht anders kann. Wenn man freigestellt ist und nicht mit Konsequenzen rechnen muss, dann tut man Unrecht. Und was dann ab 360e kommt ist eigentlich Objektorientierung in Reinform. Glaukon geht von zwei Klassen/Konzepte „Gerechter“ und „Ungerechter“ aus wie von zwei Tierarten (Katze und Maus) – beide verhalten sich völlig anders und haben auch ganz andere Eigenschaften. Wir stellen „jeden als vollendet in seiner Art hin“. Hier werde ich wahrscheinlich das nächste Mal beginnen, ein paar Merkmale von Glaukons Modellierung Gerechter/Ungerechter zu explizieren.--Andyk 01:10, 13. Feb. 2009 (CET)

„Der Gipfel der Ungerechtigkeit ist es, gerecht zu scheinen, ohne es zu sein.“

22.02.2009: Session 2: Sein und Schein

Nun hab ich endlich Zeit gefunden, ein paar meiner Notizen von letzter Woche zu digitalisieren. Das letzte Mal habe ich bemerkt, dass Glaukon die beiden Personen Gerechter und Ungerechter ganz genau auseinanderdividiert und dass sich das ganz gut mit Objektorientierter Modellierung verbinden lässt. Ich habe versucht, in einer kleinen Inform7-Implementierung und parallel dazu allgemein anhand eines Klassendiagramms wichtige Teile von dieser Gegenüberstellung von Gerechtem und Ungerechtem zu modellieren. Diese Gegenüberstellung ist von Glaukon genau so konstruiert, dass es darauf hinausläuft, dass man nur aus Zwang gerecht handelt. Ein wichtiges Werkzeug, damit diese Konsequenz aufgeht, ist die Unterscheidung von Sein und Schein.

  • Eine ideale Gerechte Person IST gerecht, und muss auch, wenn sie den Leuten ungerecht erscheint, gerecht handeln. (Wobei ich mich frage, wie man ganz persönlich wissen kann, was gerecht IST, wenn man bei jeder gerechten Handlung eine auf den Deckel bekommt, weil die gerechte Handlung dem Anschein nach ungerecht ist. Das führt wohl bereits hin zur Rolle der Erziehung und der sozialen Verstrickungen.)
  • Eine ideale ungerechte Person vollzieht ihre ungerechten Taten derart, dass man ihr nie draufkommt, dass die Taten "in Wirklichkeit" ungerecht sind, was zur Folge hat, dass auch sie selbst von 'den Leuten' als gerecht gesehen wird. Durch Rhetorik, Tapferkeit, Beziehungen baut sie den Schein der Gerechtigkeit auf. Falls sie einmal einen Fehler begeht, helfen ihr diese Fähigkeiten, ihn auszubalanzieren.
  • Ich habe auch noch 'die Leute' modelliert, denn man kann sich fragen, welcher Gerechtigkeitsstatus denen zukommt. Ich habe die Entscheidung getroffen, dass ihre Erscheinung 'neutral' ist (sozusagen: die graue Masse, die nicht besonders auffällt) und dass ihr Sein 'unentschieden' ist. Diese Leute sollte man nicht als eigenständige Personen sehen, sondern eher als die Vorstellung die man sich selbst als Antwort auf die Frage 'Wie könnte man meine Handlung beurteilen?' gibt. In der Glaukon-Argumentation ist das jedenfalls nicht so im Vordergrund, aber IMHO eine wichtige Frage. Denn wenn diejenigen, die den Gerechtigkeitsstatus beurteilen (den Ungerechten loben und den Gerechten Foltern, Fesseln und Kreuzigen), alle gerechte Leute sind, dann müssten sie wissen, dass gerechte Handlungen nicht immer gerecht erscheinen. Und wenn sie ungerechte Leute sind, kann man sich auf ihr Urteil nicht verlassen, da es ihnen nicht um den Gerechtigkeitsstatus der Handlung geht, sondern darum, welche Vorteile eine bestimmte Beurteilung für sie selbst bringt.

Wenn man 'Hochbegabt an Leib und Seele' ist, warum sollte man ungerecht sein?

  • Diese Trennung von Gerechter und Ungerechter hat den Sinn, dass man sie am Ende einander gegenüberstellen kann: "[...] dann sollen sie beurteilt werden, wer der glücklichere ist."
  • Wenn man sich durchliest, was der Ungerechte so alles vollbringen soll dann wünsch ich mir schon rein aus Faulheit bzw. weil es zu stressig ist, nicht ungerecht zu sein. Ein Anforderungsbeispiel, das eine ideale ungerechte Person erfüllen muss:
    • Sie muss das Durchführbare sogut wie immer vom Undurchführbaren auseinanderhalten. Das geht nicht. Wenn sie Fehler macht, hat sie zwar ihre Redekunst und ihre Beziehungen, ihre körperliche Kraft und das ungerecht verdiente Geld zur Hilfe, aber die Fehler dürfen nicht zu häufig sein, denn sonst wird der Schein bald löchrig. Das dürfte ein ungeheurer Druck sein, dem man ausgesetzt ist.
  • Das Problem, dass man in Inform7 durch überlagerte Szenarios deutlich machen könnte ist, dass es zu anstrengend ist ungerecht zu sein, da man Fehler macht und dass Ehrlichkeit (im Schein das Sein durchblicken lassen --> Transparenz) auch für sich selbst vorteilhaft ist, weil man nicht so streng auf die Konsistenz der Mauer des Scheins zu achten braucht.
  • Das ist nur so eine Idee, die von der Rezeption wegführt. Bis jetzt habe ich eher die Glaukon-Idee, dass der Ungerechte immer belohnt wird, in Inform7 integriert.

Inform7-Implementierungsentwurf

Klassendiagramm über wichtige Stellen von Glaukons Argumentation
  • Ich habe im Probegalopp-SVN-Verzeichnis das Modell, das ich allgemein in Form eines Klassendiagramms dargestellt habe, versucht in Inform7 zu implementieren. Das Ganze ist noch nicht sehr anspruchsvoll und hat keine Handlung. Ein paar Bemerkungen dazu:
  • Es gibt einen Status der Gerechtigkeit, der einen der folgenden Werte annehmen kann: gerecht, ungerecht, unentschieden, neutral.
  • Jeder Mensch kann charakterisiert werden durch sein Sein und durch seinen Schein. Sein und Schein sind jeweils Stati der Gerechtigkeit.
  • Die Gruppe der Menschen kann in Untergruppen aufgespalten werden: Gerechte, Ungerechte und Neutrale ('die Leute').
  • Mensch ('human') soll in diesem Framework statt dem Inform7-Konzept 'person' verwendet werden.
  • Handlungen können gerecht oder ungerecht sein (als kinds of actions modelliert). Man kann mit einer Zuweisung der folgenden Art bestimmen, um welche Art von Handlung es sich handelt:
Attacking is unjust action.
Kissing is just action.
  • Es gibt nun 4 Kombinationen, die auftreten können, wenn ein Mensch eine Handlung vollzieht:
    • Gerechter Mensch --> Gerechte Handlung:
    • Gerechter Mensch --> Ungerechte Handlung
    • Ungerechter Mensch --> Ungerechte Handlung
    • Ungerechter Mensch --> Gerechte Handlung
  • Die Logik der von mir modellierten Welt verhindert, dass ein Gerechter Mensch ungerechte Handlungen vollzieht und ein ungerechter Mensch gerechte Handlungen. (Details siehe Inform7-Code)
  • In jedem Menschen ist ein Zähler integriert, der zählt, wieviele gerechte respektive ungerechte Handlungen versucht bzw. durchgeführt worden sind (Das könnte einem am Ende vor die Nase gehalten werden)
  • Interessant finde ich, dass die Kapselung des Seins gegenüber dem Schein IMHO genau der Kapselung von privaten und öffentlichen Variablen in der Objektorientierten Programmierung entspricht. Im Klassendiagramm habe ich das folgendermaßen angedeutet:
    • sowohl Being als auch Appearance sind private Variablen. Das deutet das Zeichen '-' üblicherweise an.
    • die öffentliche Funktion getAppearance bedeutet, dass jede andere Klasse (also jeder andere Mensch zum Beispiel) die Erscheinung ansehen kann. (öffentliche Variablen oder Funktionen werden mit dem vorangehenden Zeichen '+' angedeutet)
    • da es keine getBeing-Funktion gibt, weiß niemand (außer die Programmierer) ob dieser Mensch seinem Wesen nach ein gerechter oder ein ungerechter Mensch ist (niemand würde eine Änderung der privaten Variable Sein direkt bemerken - es sei denn, dass sie in der Funktion getAppearance irgendwie verwendet würde).
    • Man hat hier also genau die Unterscheidung zwischen öffentlicher Fassade und geheimer, interner Programmlogik (wie plausibel das in unserer Welt ist, ist eine andere Frage, aber sowohl bei diesen Platon-Stellen als auch in der Objektorientierten Welt kann ich diese Struktur erkennen).
  • Was sich aus diesem Framework machen ließe:
    • Zunächst wählt die Spielerin, was sie gerne SEIN würde (welche Auswirkungen das auf ihre Erscheinung hat, lässt man im Unklaren)
    • Nun wird die Spielerin vor bestimmte Probleme gestellt, die sie lösen muss (wobei die Regeln der Welt gelten, dass gerechte Personen nur gerecht handeln können und vice versa mutatis mutandis; der Versuch wird mitgezählt)
    • Entsprechend Glaukon muss ein gerechter Mensch auf jeden Fall getötet werden und ein ungerechter muss das Spiel auf jeden Fall gewinnen.
    • Man könnte ab einer bestimmten Anzahl an Versuchen, entgegen seinem Sein zu handeln, das Sein der Spielerin verändern (von Gerecht auf Ungerecht und vice versa). Auch das könnte man mitzählen (nicht implementiert).
    • Das wäre ein kleines Motivationsspiel für die Frage der Gerechtigkeit, die dann im Staat mit dem Aspekt der Erziehung und der Gemeinschaft beleuchtet wird.

'einen Staat in einem Dennkentwurf entstehen lassen' [369a]

Im Folgenden ein paar Überlegungen und Aspekte, die mir im zweiten Buch bei der Entstehung des Staates (ab ca. 369a) aufgefallen sind:

  • 369b: ein Staat entsteht, weil keiner von uns auf sich alleinn gestellt sein kann, sondern vieler anderer bedarf.
    • Eine Stelle, dir mir interessant erscheint: "da sie [die Leute] vielerlei Bedürfnisse haben, so lassen wir viele in einer Siedlung als Mitbürger und Helfer zusammenkommen; dieser Siedlungsgemeinschaft geben wir den Nameen Staat". Und ein paar Zeilen später: "Nun wollen wir in Gedanken einen Staat von Anfang an entstehen lassen. Es schafft ihn aber, so glaube ich, unsere eigene Bedürftigkeit!"
    • Wie kann man das <Es schafft ihn aber unsere eigene Bedürftigkeit> verstehen? Vielleicht so? Die ganze Staatskonzeption passiert nicht zum Spaß, sondern aufgrund der Notwendigkeit heraus, dass solche Zweckgemeinschaften selbst einer gewissen Struktur bedürftig sind.

Ansatz für unser Projekt

  • Zu Spielbeginn sind wir mit einer Art Reiseführer oder Erzähler konfrontiert, der die Spielerin zunächst in die Glaukon/Adeimantos-Welt (vgl. Benutzer:Andyk/Mitschriften/Projekttagebuch#Inform7-Implementierungsentwurf Implementierungsentwurf oben) teleportiert. Das ist eine ganz simple Welt mit wenigen Gesetzen und ohne staatlicher Struktur, die von der folgenden Grundüberlegung ausgeht:
    • wie willst du das Beste aus deinem Leben machen? Warum glaubst du, bist du überhaupt hier? du glaubst, du kannst entspannen bei einer gemütlichen Interactive Fiction? weit gefehlt. Du bekommst die einmalige Chance, dein Leben neu anzufangen. Mach das Beste daraus; Viel Spaß.
    • Dann könnte man im oben beschriebenen Setting erste aufgaben bekommen (vielleicht auch Aufgaben, die alleine nicht zu lösen sind, die man nur im Zusammenhang eines Staates lösen kann - was eine gute Überleitung zur Welt des Staats sein könnte)
  • Solche Reiseführer oder Erzähler kenne ich aus den typischen 2D-Adventures. Meistens stellt sich bei solchen Spielen heraus, dass dieser Reiseführer / der Erzähler eng mit dem Plot verflochten ist, d.h. die Spielerin deswegen gerufen hat, weil er in ärgsten Schwierigkeiten steckt.
  • Und ist es nicht so? ;) Wir wollen doch tatsächlich durch dieses Projekt etwas herausfinden, was uns Platons Konzept der Gerechtigkeit im Rahmen der Staatskonzeption besser verstehen lässtt?
  • Zunächst liegt es an uns, dass wir durch die Entwicklung der Rahmengeschichte tatsächlich ein paar Schritte in dieser Frage weiterkommen, denn Geschichten und den Inform-7-Code muss man schreiben, sonst hat die Spielerin keine Möglichkeit, zu spielen.
  • Für die Spielentwicklung ist die Spielerin also ein Platzhalter, der - wenn das Spiel zu Ende ist - in den Plot vollständig integriert ist (der Platzhalter wurde also im Laufe des Spiels allmählich immer mehr bestimmt) zumindest hab ich das bei den Adventures, die ich gespielt habe (Monkey Island, Indiana Jones, Sam'n'Max, Simon the Sorcerer,...) so erlebt.
  • Dieser sich allmählich bestimmende Platzhalter hat im Entwicklungsprozess eine wichtie Rolle: Durch ihn ist man gezwungen, Entscheidungen im Handlungsverlauf und im Weltenbau zu treffen, sodass die Spielerin, die prinzipiell jede(r) sein kann, ...
    • den Sinn der Geschichte versteht
    • weiß, was sie für eine Rolle in der Handlung einnimt
    • weiß, wie sie prinzipiell ihre Aufgaben erfüllen kann, um in der Geschichte weiterzukommen
    • Spaß dabei hat und etwas daraus lernt.

Ausblick: Was mich noch interessiert

  • Möchte mir die Code-Beispiele, die vor allem von H.A.L gemacht wurden, noch genau anschauen.
  • Ein paar Texte über die theoretischen Ansätze der Interaktivität begutachten
  • Ein bisschen mehr mit Inform7 machen. Ich komm mir bei dieser Art von Programmierung immer noch ein bisschen Fehl am Platz vor. Der Ansatz der natürlichen Sprache ist eine Sache, doch auf der anderen Seite kann man zum Beispiel von der Klasse 'object' nicht direkt ableiten, sondern muss 'thing' verwendet, um die vorgegebenen Strukturen einer Interactive Fiction nicht durcheinanderzubringen. Ganz wohl fühle ich mich jedenfalls noch nicht mit Inform7.--Andyk 18:09, 22. Feb. 2009 (CET)