I met with Alex late last week to talk about ADAPT and possible graphical applications for my project. What resulted was a really difficult discussion concerning my project and potential graphical representations of it. We both agreed that graphics were not the primary concern of my program, but that the presentation would benefit greatly from some sort of graphics-based representation. After a discussion of ADAPT, its benefits and its limitations, he admitted that he thought ADAPT might be overkill for something like my story based project. The ADAPT framework allows characters to go to a directed point - useful, given my project, though I'd prefer a way to get them to wander randomly - and can reach or turn their heads. I can't customize the graphics, though, and they don't have any animations that correspond to all the things I would need them to do ("reaching" and "looking" doesn't really drive story).
Alex recommended I play around with Unity and a more basic, older version of adapt, as well as some 2D graphical representation techniques, to see what I'm most comfortable with. Ultimately, he recommended the older version of adapt that only includes people walking, and taught me briefly how to display text over people's heads so that I can have their names and the actions they are performing display (i.e. Beth compliments Jack, Jack flirts with Beth). While this isn't the most elegant way to show how the storytelling system works, it might be the best way to show off its possible applications.
Since ultimately Alex thought I should use Unity and ADAPT for the graphical component of my project, I asked again whether starting in Python was really the best idea (particularly because my Python skills are pretty rusty). Thinking it over, Alex decided I should ultimately just start in C#, since Unity uses C# and it would make my code much easier to eventually integrate into the system.
Unfortunately, I've never programmed in C# before. I spent the weekend going over the language and discovered it's not all that different from Java (I'd say it was closer to that than C++, which is actually my preferred coding language). I've managed to create characters that begin with randomly generated names, genders, and emotions, though these emotions can be hard coded to allow for a "writer" (Pam and Jim love each other, but Dwight hates Jim... what happens?). I'm starting to implement interactions in the world class, starting with conversing. Conversing will be hard, since it's an action that keeps going until it is broken out of, and since it is affected and affects the moods of the participants. Also, because conversations need to be so nuanced... Flirtation and complimenting need to be different actions with different intentions but perhaps similar results. Different levels of anger might cause someone to storm off, but it might cause them to punch the other person... what causes those differences? I've actually written the base code for people conversing, but I'm tweaking random conversation variables to make the emotional reactions more "realistic". Next I'll implement just a handful of more interactions - one for anger (fighting?) and one for love (kissing?) - and then I'll work on an engine that steps through "turns" of character interactions.
No comments:
Post a Comment