Weblogs
Das gilt zumindest, wenn man die Produkte, die man bestellt, und für die man per Vorauskasse bezahlt, dann auch wirklich erhalten möchte. Was bisher nicht der Fall ist.
Eine kurze Chronologie der Ereignisse:
- 5. August 2012: Ich bestelle Computer-Lautsprecher über den Online-Versandhandel onlineboss.ch. Ich werde aufgefordert, den Betrag per Vorauskasse zu begleichen, was ich tue.
- 7. August 2012: Ich erhalte die Bestätigung, dass das Geld eingetroffen ist, mit der voraussichtlichen Versanddauer: 15–30 Arbeitstage.
- 19. September 2012: 30 Arbeitstage sind vergangen, keine Lautsprecher in Sicht. Auch keine Mitteilung, warum nicht.
- 5. Oktober 2012: Ich schreibe ein Mail und frage nach. Ich erhalte darauf eine automatisierte Antwort, die mir verspricht, dass ich innert 24 Stunden eine Antwort erhalten werde.
- 8. Oktober 2012: Ich erhalte eine Antwort, mehr als 24 Stunden, nachdem ich geschrieben habe. Mir wird geschrieben, dass die Lieferung in Rückstand geraten sei, und dass diese in 9–13 Tagen bei Onlineboss sei. Ansonsten sei ihnen die Hände gebunden.
- 5. November 2012: 20 Tage nach der Antwort von Onlineboss habe ich immer noch nichts erhalten.
- 8. November 2012: Ich schreibe ein weiteres Mail und frage nach. Gleiches Spiel wie zuvor: ich erhalte eine automatisierte Nachricht, aber keine Antwort.
- 13. November 2012: Ich schreibe Onlineboss erneut und teile ihnen mit, dass ich vom Vertrag zurücktrete und mein Geld innerhalb einer Woche zurückverlange. Ich habe ihnen dies zudem auch telefonisch mitgeteilt und bestätigt bekommen, dass ich das Geld zurückbekommen werde (und dabei zusätzlich erfahren, dass meine Bestellung weiterhin noch nicht geliefert wurde – WTF?!).
Die breite Akzeptanz ist nach [...] Überzeugung [des Bundesrats] darauf zurückführen, dass mit dem neuen Gesetz die Diskriminierung gleichgeschlechtlicher Personen1 beseitigt werden konnte, ohne gleichzeitig eingetragenen Paaren die Adoption und die medizinisch unterstützte Fortpflanzung zu ermöglichen.
sagt der Bundesrat in einer Stellungsnahme zur Adoption durch gleichgeschlechtliche Paare. Den Satz muss man sich mal auf der Zunge zergehen lassen. Der Bundesrat ist offenbar der Meinung, dass man die Diskriminierung einer Personengruppe dadurch beseitigt, indem man ihre Rechte einfach anderswo beschneidet.
o_O
Macht ja auch Sinn, schliesslich müssen die verängstigten Heterosexuellen ihrer Privilegien versichert sein. Also macht man halt Deals: ihr wollt eingetragene Partnerschaften? Also dürft ihr nicht adoptieren, damit ist die Diskriminierungsleistung der Schweizer Eidgenossenschaft gegenüber Homosexuellen wieder hergestellt.
Kann man auch beliebig weiterführen: Ihr wollt Kinder adoptieren – also wird euer Wahlrecht entzogen. Ihr wollt wählen können – also dürft ihr nicht über Homosexualität sprechen.
Da wäre der Schweizer Bundesrat ja voll im Trend, in Russland machen sie's ja auch so, also wird das schon gut sein …
-
Und was zum Teufel sind eigentlich "gleichgeschlechtliche Personen"? Sind das Personen, deren Genderidentität mit ihrem biologischen Geschlecht übereinstimmt? Nicht? ↩
Ein halbes Jahr nach der Bachelor-Ausstellung gibt es nun meine Bachelor-Arbeit auch als Download zum Testen.
Technisch entspricht das Spiel ungefähr dem Stand vom Juni – es hat also noch einige Bugs, die bis jetzt nicht ausgemerzt worden sind. Zudem sollte man die momentane Version vor allem als Tech-Demo ansehen: viele der gewünschten Funktionen sind vorhanden, aber natürlich müsste man noch einiges mehr an Inhalt einbauen.
Download
- ID: Ich, Du (und alle anderen) – Mac OS X Intel, Revision 117
- ID: Ich, Du (und alle anderen) – Windows, Revision 117
Known Issues
- Einige Dialogstränge können ins Leere führen – sollte dies eintreten, wäre ich froh um eine Meldung, nach welcher Auswahl dies geschehen ist. Mit ESC ist es möglich, den Dialog zu unterbrechen und neu zu starten.
- Beim Tragen der Zügelkiste spielt die Physik falsch, wenn man auf den Boden sieht, während man sich bewegt.
- Kicken des Fussballes kann dazu führen, dass er aus dem Level fällt (verschwindet).
Eine komplette Liste der noch offenen Punkte kann hier eingesehen werden.
Fehlerberichte, Anregungen, Fragen können direkt an mich gesandt werden.
Eigentlich bloss ein kurzer Reminder, weil man das ja sowieso eigentlich kennen müsste, wenn man Game Designer im Raum Zürich ist: Das ursprünglich wöchentliche Treffen ist inzwischen monatlich, jeweils am ersten Donnerstag des Monats – erstmals am 6. Oktober um 19 Uhr an der ZHdK (Ausstellungsstrasse 60) im Raum Sq 509 (fünfter Stock, offensichtlich).
Ein Besuch lohnt sich immer: sei es, um weitere Game Designer des Raums Zürich kennenzulernen, eine neue Spielidee mit anderen Designerinnen und Designern zu besprechen oder sich einfach durch die Ideen anderer inspirieren zu lassen.
Weitere Infos zu den jeweiligen Gesprächsthemen finden sich auf dem Blog der Veranstaltung.
Nachdem ich ja nun mein Diplom in der Tasche habe und bevor ich mich weiter orientiere, gibt es zuerst einmal ein bisschen Ferien.
Deshalb sitze ich zur Zeit gerade in einem Flugzeug Richtung Amsterdam. Berlin wird später folgen.
Und weil Ferien halt auch Ferien bleiben sollen, bin ich bis am 8. August nicht mehr zu erreichen – das heisst, probieren kann man es schon, aber je nachdem, wie gut ich WiFi finde, werde ich antworten können oder nicht. Was den Rest angeht, den ich noch zu machen gedachte – keine Angst, ist alles aufgeschrieben und wird nach den Ferien erledigt, versprochen.
Dafür gibts dann später sicher auch ein paar neue Flickr-Bilder ... ;)
Was für eine Woche! Ein paar Nachtschichten hat es schon noch gebraucht, um die Dokumentation meiner Bachelorarbeit fertig zu stellen, damit ich sie dann am Montag morgen in den Druck geben konnte - Highlight des Tages: der Angestellte des Copyshops, der mir strahlend erzählte, er hätte sich die Doku beim Drucken angesehen, und es sei voll cool was ich mache, es sehe aus wie Final Fantasy manchmal.
Nicht dass ich danach fertig gewesen wäre. Es brauchte schlussendlich einiges an Durchhaltewillen, am Abend noch einmal hinzusetzen und die Präsentation für den Dienstag zu erstellen. Am Ende war ich überzeugt, ein wirklich schlechtes Endprodukt zu haben - keine Bilder, nur Text, nichts wirklich Emotionales, bloss Konzept. Andererseits: genau das ist schlussendlich das Wichtige an meinem Game. Es beinhaltet Agenten, die sich wie menschliche, emotionale Wesen verhalten sollen. Ob mir das gelungen ist, ist wieder eine andere Frage, aber zumindest versucht habe ich es.
Die Präsentation selber? So genau weiss ich das nicht mal mehr. Ich war durchaus ziemlich nervös - kein Wunder, war sich doch überzeugt, dass meine Präsentation nicht sehr viel taugte - aber als ich dann zu sprechen begann, war die Nervosität weg. Vor allem, weil ich mehr wie weggetreten war. So sehr, dass ich absolut kein Gefühl mehr für die Zeit hatte und gnadenlos überzog. Ohne dass mich jemand daran gehindert hätte. Stattdessen feuern sie mich noch an mit Fragen zur Level-Architektur ...
Schlussendlich kam es dann wohl doch nicht so schlecht raus - hoffe ich zumindest.
Langsam rückt sie näher: die Bachelor-Ausstellung der ZHdK – und damit der Abgabetermin meiner Bachelorarbeit. Noch gibt es einiges zu tun – aber bis dahin kann ich ja schon mal einige Informationen streuen.
- Die Ausstellung ist vom 10. bis 18. Juni 2011 täglich von 12–20 Uhr offen.
- Der Eintritt ist frei.
- Die Arbeiten in Game Design sind an der Aussstellungsstrasse 60, Zürich im dritten Stock (Raum 306) ausgestellt.
- Vernissage ist am 9. Juni, um 17 Uhr.
- Während der ganzen Ausstellung machen jeweils zwei der Bachelor-Studenten die Aufsicht. Man darf sie gerne ansprechen, wenn man nicht weiterkommt, oder nicht weiss, wie ein Spiel funktioniert.
Ich persönlich werde anwesend sein am:
- Freitag, 10. Juni, 16–20 Uhr
- Sonntag, 12. Juni, 12–16 Uhr
- Dienstag, 14. Juni, 16–20 Uhr
- Mittwoch, 15. Juni, 12–16 Uhr (neu!)
- Samstag, 18. Juni, 12–17 Uhr
Diese Liste wird laufend aktualisiert, wenn sich Änderungen ergeben sollten.
Tweet-Up
Twitterer aufgepasst: Janina und ich organisieren am 10. Juni ein Tweetup in der Ausstellung. Wer eine exklusive Führung will: Anmelden!
Noch viel mehr Informationen, Screenshots, Videos, Blogposts, Skizzen zu den ausgestellten Arbeiten finden sich auf unserer gemeinsamen Facebook-Page zur Ausstellung.
Das Wichtigste ist gemacht: die Partikel sind nun am richtigen Ort, werden zur richtigen Zeit angezeigt und verhalten sich für jeden Charakter ein bisschen anders. Schliesslich weiss man ja: Partikeleffekte machen 80% des Game-Design-Prozesses aus …
Wenn man den Spass mal beiseite lässt, so kann man zusätzlich bemerken, dass die meisten UI-Elemente inzwischen auch am richtigen Ort sind und das Dialogsystem ebenfalls funktioniert. Wieder.
Moment. Wieso "wieder"?
Weil, was ja irgendwie vorherzusehen war, ich die halbe Prompter-Klasse, die für das Dialogsystem zuständig ist, noch mal neu geschrieben habe. Nicht ganz ohne Grund. Denn ein wichtiger Teil meiner Arbeit diese Woche war, das letzte und endgültige Puzzleteil meines Emotionalen Modelles einzubauen: die Fähigkeit, die Reaktionen eines Spielers zu speichern und später wiederzugeben.
Coping Scheme Record/Replay System
Wie finde ich heraus, wie sich jemand gegenüber anderen verhält? Dies ist die Grundlage dieses Subsystems. Ich habe mich entschieden, zwei Achsen zu verwenden – eine möglicherweise zu vereinfachende Sicht, aber ich denke, dass sich beim Testen schnell herausstellen wird, ob diese beide Angaben genügen.
Die erste Achse ist die Empathie. Ein Agent kann sich eher mit-fühlend oder aber irritiert zeigen (und damit unfähig, die Gefühle des anderen zu verstehen). Die zweite Achse ist der Ton1. Dieser drückt aus, wie aggressiv oder defensiv die Aussage ist. Greift sie jemand anderes an oder ist sie zur Verteidigung da?
Die Aussagen besitzen in den meisten Fällen diese beiden Werte als Meta-Daten.
-
Möglicherweise ist dieser Ausdruck nicht nicht sehr präzise gewählt. Mir fiel jedoch zu der Zeit kein besserer ein, weshalb er geblieben ist. ↩
Eigentlich hätte ich das schon früher machen müssen (sagt man sich immer, natürlich). Tatsache ist wohl, dass ich mir angewöhnen müsste, auch scheinbar grosse Arbeiten einfach beginnen zu erledigen – oder sie zumindest konsequent in kleinere Aufgaben herunterzubrechen.
Jetzt aber steht einer der wichtigeren Teile meines Spiels: die Visualisierung der Emotionen der Spielerfigur – und damit das Element des Spiels, das einen grossen Anteil am endgültigen Aussehen des Spiels hat.
Jede der Figuren hat dabei eine eigen Visualisierung. Im Falle von Perry, der ersten Figur, die vom Spieler gespielt wird, gibt es noch keine konkreten Formen. Der Spieler soll an das Prinzip zuerst herangeführt werden, ohne dass er visuell gleich überwältigt wird. Das Spiel wird also zu Beginn aussehen wie jedes 3D-Spiel – bis der Spieler ein leichtes farbliches Wabern bemerkt, das ihn darauf hinweisen sollte, dass bei diesem Spiel nicht ganz alles wie bei einem "normalen" Spiel ist.
Spätestens zum Zeitpunkt, da er Luna spielt, sollte ihm das aber klar werden. Hauptfarbe von Luna ist Grün, und bei ihr tauchen deutlich Blumen auf.
Ähnliches gilt auch bei Thorin. Sein Thema ist das All, das auch bei seiner Visualisierung in der Form von Galaxien und Sternen auftaucht.
In beiden Fällen ist die Visualisierung ein Blick in die Gedankenwelt der Figuren – sie sind umgeben von dem, was ihnen wichtig ist.
Technisch basiert die Visualisierung auf den drei Achsen der Personal Emotion: Agitation, Evaluation und Control. Evaluation wird für die Färbung des Hintergrundes verwendet.
Noch knapp vier Wochen, und ich werde etwas abliefern müssen – etwas, das zumindest den Anschein macht, als wäre es ein Game. Wie vorauszusehen war, beginnt mir die Zeit langsam davonzulaufen. Ich musste also die vergangene Woche mal wieder meine Ansprüche zurückschrauben: In Rücksprache mit meinen Mentoren habe ich mich entschieden, die Figuren nicht zu modellieren und zu animieren, sondern bloss Billboards zu erstellen. Die zugrundeliegende Idee sollte damit trotzdem sichtbar werden – wenn auch mit etwas weniger grafischem Aufwand. Natürlich wurmt es mich ein bisschen, dass ich damit meine Modellier-Künste nicht unter Beweis stellen kann – aber die Tatsache bleibt: Die Zeit dazu habe ich schlicht nicht.
Nichtsdestotrotz habe ich mich entschlossen, die vergangene und kommende Woche mit der Arbeit an der Grafik zu verbringen: schlussendlich sieht man am Ende besser, wenn etwas visuell nicht da ist (oder schlecht gemacht ist), als wenn etwas nicht so toll programmiert ist wie es sein könnte (und damit meinen Ansprüchen genügen würde).
Aus diesem Grund habe ich mir die verschiedenen Elemente vorgenommen, die ich in der Zwischenzeit produziert habe, und diese noch einmal verbessert und verfeinert.
Das Modell des Innenhofes hat nun überall Eingänge und Fenster, die in die Wohnungen führen. Zusätzlich habe ich Pseudo-Modelle erstellt, die dazu da sind, diese Eingänge zu verschliessen, wenn dahinter nicht wirklich eine begehbare Wohnung liegt.
Manchmal sind es die kleinen Dinge, die nicht so recht von der Hand gehen wollen. Kleine Dinge wie etwa eine Fall-Off-Funktion, die mir vorschwebte: Die Emotionen sollen nicht einfach bestehen bleiben, sondern nach einer gewissen Zeit langsam wieder zurück zu einer neutralen Position gehen. Niemand ist über längere Zeit extrem sauer oder ungeheuer glücklich, in den meisten Fällen pendelt sich das wieder ein. Dasselbe sollte auch für meine Beziehungen zu anderen Menschen gelten.
Was sich so einfach anhört, ist dann schlussendlich doch ein bisschen komplizierter zu bewerkstelligen als gedacht, vor allem auch, wenn es zusätzlich darum geht, dass der Spieler eine mehr oder weniger genaue Rückmeldung bekommen soll, was gerade abläuft. Und natürlich zusätzlich auch noch darauf geachtet werden soll, dass diese Prozesse möglichst ressourcenschonend programmiert werden sollten.
Konkret heisst das, dass die visuelle Darstellung ändern muss, sobald ein gewisser Grenzwert erreicht ist. Solange ich aber den Wert nicht jeden Frame abfragen will, muss ich einen anderen Weg finden, einen solchen Wechsel auszulösen.
Da ich nun endlich herausgefunden habe, wie Events in C# funktionieren, habe ich mich entschlossen, dieses Problem mit Events zu lösen. Sobald etwas "interessantes" passiert, kann ich nun einen Event auslösen, der in der Folge einen Wechsel initiiert. Damit habe ich nun das erwünschte erreicht – trotzdem hat dies fast eine Woche gedauert (was eigentlich viel zu lange für eine solche Problemstellung ist).
Ansonsten ist leider nicht sehr viel passiert. Zeit, in den Endspurt zu gehen!
An die Level-Architektur werden verschiedene, sehr gegensätzliche Anforderungen gestellt.
Geschlossenheit
Zum einen muss es einen in sich geschlossenen Raum definieren – als ein Serious Game gibt es kein Budget, das eine Open-World-Architektur erlauben würde. Das Level muss also einen Ort darstellen, der in sich bis zu einem gewissen Grad in sich abgeschlossen ist, so dass der Spieler nicht zu schnell merkt, wie wenig "Freiraum" ihm eigentlich gegönnt ist. Je weniger Ein- und Ausgänge es gibt, die künstlich verschlossen werden müssen, um so besser.
Offenheit
Gleichzeitig muss das Level-Design auch offen sein – schliesslich sollen in der Umgebung verschiedenste Situationen ermöglicht werden, dabei darf das Level nicht "in den Weg" kommen, indem es allein durch sein Aussehen oder Verortung des Geschehens gewisse Situationen ausschliesst.
Erweiterbarkeit
Dies ergibt sich aus dem momentanen Entwicklungsprozess: Da ich bis zum Bachelor-Abgabetermin nicht ein komplettes Spiel abgeben kann, muss ich ein Level bauen, das zwar die Möglichkeiten aufzeigt, was darin geschehen könnte – ohne diese aber vollständig auszuschöpfen. Um zukünftige Erweiterungen möglich zu machen, muss ich Anschlussstellen einplanen, die ich später verwenden kann, um weitere Figuren, Geschichten oder Handlungsräume zu eröffnen.
Realisierung
Der Handlungsort des Spiels ist nun ein städtischer Wohnblock. Um einen Innenhof sind die Wohnungen gruppiert, die über Galerien zu erreichen sind.
Über den Mechanismus der Wohnungen ist es möglich, praktisch beliebig viele Figuren hinzuzufügen – wird eine neue Figur gebraucht, öffnet sich einfach eine neue Tür zu einer Wohnung, die in der Folge besucht werden kann.
Natürlich – zu planen, dass man innerhalb von knapp einer Woche es schafft, ein komplettes 3D-Level und zusätzlich drei Charaktere modellieren zu wollen, muss verrückt sein. Anscheinend bin ich es – denn nichts anderes hatte ich geplant.
Dem kam jedoch mein Perfektionismus zuvor: natürlich konnte ich nicht einfach mit dem Modellieren des Gebäudes beginnen – da musste zuerst ein Plan her (-1 Tag). Danach konnte mit Modellieren begonnen werden – und nach einem Tag stand das Grundgerüst. Bloss kann man es natürlich auch noch richtiger machen, als man es schon hat (-1 Tag). Und wenn man schon dabei ist, das Gebäude in Unity zu testen, kann man ja auch gleich noch den Baum erstellen, der im Hof steht (- 1/2 Tag). Und dann das Treppenhaus machen (was wieder eine Sache für sich selbst ist, und auch etwa einen Tag dauert).
Die Charaktere sind also immer noch nicht gemacht – daran werde ich mich nun die nächste Woche daran setzen müssen. Mal abgesehen von der Tatsache, dass ich nun noch um einiges mehr Zeit werde investieren müssen, um etwas zu produzieren, das meinen Ansprüchen genügt ...
Nichtsdestotrotz glaube ich, dass das Resultat doch einigermassen ansehlich ist – und hoffentlich auch funktionieren wird ...
Nach dem letzten Eintrag mit Überlänge gibt es dieses Mal nur ein kurzes Update.
Nach gut einer Woche des Rumprobierens steht das Emotions-System nun einigermassen.
Es ist nun möglich:
- Den Dialog-Optionen Meta-Daten über den emotionalen und Informationsgehalt mitzugeben.
- Diese Meta-Daten auszulesen, und vom Charakter interpretieren zu lassen – mit der Möglichkeit, dass jeder Charakter anders reagieren kann.
- Dass Charaktere, die in "Hörweite" sind, den Informationsgehalt der Aussage "mithören" und darauf basierend ihre Einstellung zum Sprecher verändern.
- Einem Charakter eine emotionale Basis-Ausrüstung auf den Weg zu geben – damit wird es in Zukunft auch möglich sein, diese Informationen zu speichern und wieder von der Festplatte zu lesen, und damit sein Verhalten wiederherzustellen.
Noch nicht implementiert sind folgende Dinge:
- Coping Scheme Record/Replay Subsystem: Noch werden die Aktionen des Spielers nicht aufgezeichnet und wiedergegeben.
- Fall-Off: Die Emotionen sind im Moment noch fix und noch nicht von der Zeit abhängig.
Auch das System, dass die Emotionen eines Charakters dem Spieler angezeigt werden, ist mehr oder weniger da – mit einer gewichtigen Ausnahme: noch reagiert es nicht sofort auf Änderungen der Werte. Gerade dies wäre aber wichtig, um dem Spieler wertvolles Feedback zu geben. Hier werde ich noch daran arbeiten müssen.
Die nächste Woche wird sich aber vorerst ausschliesslich um die Assets drehen: sowohl der Innenhof, in dem das meiste spielt, sowie ein bis zwei Charaktere müssen entstehen, sonst stehe ich am Ende zwar mit tollem Code hier, aber keinem Spiel …
Das Emotionsmodell ist wahrscheinlich der komplizierteste Teil des Spiels. Das erklärte Ziel ist, Figuren zu gestalten, die emotional auf verschiedenste Inputs reagieren. Das Problem besteht natürlich darin, dass Menschen nicht notwendigerweise vorhersehbar reagieren – oder, um es mit einem Song von Björk auszudrücken: "If you ever get close to a human being, get ready to get confused".
Das Emotionsmodell ist ein Versuch, diese Unvorhersehbarkeit in geordnete Bahnen zu lenken und in Zahlen auszudrücken.
Eine Recherche hat hierbei schnell ergeben, dass auch die Wissenschaft nicht sehr viel besser mit Emotionen auskennt. Eine Suche nach "Grundemotionen" führt etwa auf Wikipedia, die verschiedene Listen anführt, die zwischen 8 und 48 Elemente enthalten.1 Dies drückt sich dann auch aus in der Tatsache, dass der Vorschlag des World Wide Web Consortiums für einen XML-Standard zur Kodierung von Emotionen nicht ein fixes Vokabular vorschreibt, sondern die Möglichkeit bietet, verschiedenste Vokabulare einzubeziehen2 (dies im Gegensatz zum Vorläufer HUMAINE, das noch eine solche fixe Liste implementierte3).











