Flammable Penguins Blog The internet home of Claire Blackshaw

10Jun/100

Paper Progress

So I was so tired of seeing a computer the last few days I switch to paper notes for a while. Still need to scan / transcribe them to digital format. Here are some highlights

Key Points

Goal: To explore and define a method for game agents to comprehend game objects and events with the ability to query and respond.

Method: By implementing a reference scenario in XNA.

The exact schema I choose for the implementation is trivial, but the graph Query & Response format is key. 

Systems

These systems are listed in order of implementation. For my dissertation I shall only be doing the first three. I do plan to eventually do all of them.

Knowledge Storage: Representing knowledge in graph format.

Query & Response Format: Query an agent and formulate a response

Agent to Agent Discovery: Two agents converse and update their knowledge graph based on response. An agent also needs to resolve data conflicts.

Chinese Whispers: An agent mishears or corrupts data on receiving knowledge.

Lies:An agent intelligently mutates data on output when certain conditions exists.

Input & Output Translation: Data is transformed from graph format to friendlier format. Possible IF parser, GUI system or NL system.

Tagged as: , No Comments
6Jun/100

Array vs Group Confusion




Array vs Group Confusion

Arrays are listed as { }
Groups are “- - -”  boxes

So some graph confusion between arrays and groups. It’s very clear on the graph but the query starts looking strange. Really tired and not making progress. 

So going home, grabbing some food and hopefully I can clean up the mess in my head.

Tagged as: No Comments
6Jun/100

Splash Damage




Splash Damage

Okay some actions can affect multiple targets, my old model ignored this and hence broke in a few places. I’ve now fixed this. This resolves a few graph query issues I was having.

Containers

Aaah yes arbitrary containers are extremely useful in a graph systems. They give information based on context. I was using them in all my drawings and notes, but not in code. This has now been fixed and cleans things up.

Multiple Children

I started with a query as a single path in the graph. Then I got lost a bit and thought, of course multiple children are needed. So the query changed from a path to a sub-graph.

The confusion arose because the response is multiple nodes.

This is messy and muddies the model. After trying to handle the sub-graph query I decided it adds nothing, as multiple paths can be submitted consecutively.

So now the query is path, response is a node list

Tagged as: No Comments
5Jun/100

Query Graph



Okay so loads of code written, which has really found holes and helped smooth out the model.

Query Graph

Okay so the most basic Query format is a Graphed Query.

Pop-able Context

Any item which is pop-able can throw away it’s parents without loss of information. You may want to keep the context if you want to use a “previous topic” action. If the depth is becoming unmanageable however you can slice off the top at Pop-able joints.

Items which are not popable require their context to make sense.

Current Context

The current context is the Query which was passed in, we can then pass out the response nodes.

If you have a general query then an outline will be provided on the context item. 

If you have a specific query, for instance the above query could be expressed as.

Object(Knife) -> Event(Stabbing #2) -> Actor( NULL )

Agent Data

What data does each agent hold, well coding really shone light on the dark places and showed up the cracks.

Atom

The Atom element indicates time-sensitive data. It can be attached to anything, to contain a time sensitive element. AtomCollection was a break through, it smooths out the accessing of Time Sensitive data.

Atoms cannot be a child of Event Node.

Talk Base

Person, Place, and Event all inherit from Talk Base.

Talk Base has a list of status which allow generic attachment of time-sensitive data.

Data Groups

At first I was look at expanding the data model but then I thought of data groups. So the Graph provides context.

Verb

I’m still not happy with the verb declarations, the model needs some revision.

I’m thinking of having a dictionary of possible game verbs.

Tagged as: No Comments
5Jun/100

Query Response Format working



Sadly no pretty pictures, but loads of progress. That’s the sad truth of programming, loads of boring text before anything cool happens.

So what are you seeing

  • Query Response Format working
  • People, Locations, Objects populating with random generator
  • No Events Yet
  • Generic Time Atom System in place for storing time sensitive data

Next steps are to intelligent filter choices based on context.
Also I want to add an output to a file so conversation is visible. 

Tagged as: No Comments
4Jun/100

Query & Response format Cemented

Almost missed last bus home.
Really good progress has been made. Lots of clean up and refactoring making good headway.
Query & Response format cermented.
Basic test bed in.
Hard coded a random populator to fill values.
Unified time sensitive atom structure.
More tomorrow (^_^)

Tagged as: No Comments
1Jun/100

Tumblr Fail




Tumblr Fail

So I wrote this long article about how I switched to an Atomic data model.

How this is one possible implementation of the proposed model. Different code would be written based on language, memory and cpu restrictions. The implementation is a proof of concept. It does not define the model.

Atomic Model

The atomic model uses a damage protocal. It stores a value and the time that value was set.

  • Testing point before any atom returns unkown.
  • Testing between or at an atom returns last value change
  • Testing past last atom return last known value

Blind Spot & Discovery

This system means if a value change occurs and then is changed back before an agent observes it again then they are unaware of event. If however the observed value is different to the last known value then they agent knows an event has occurred and can inquire or investigate.

Anyway I got to run and catch the bus, sorry for short version.

Tagged as: No Comments
25May/100

Concrete Examples of Conversations

Not much progress tonight. Looking at examples and the refrence scenario, getting bogged down in detail.

Will look at a code implementation of Thursday

Tagged as: No Comments
24May/100

Dissertation: Atomic Structure

Dissertation: Atomic Structure

A sample atomic structure laid out in a document.

Query and Response forms also discussed.

Tagged as: No Comments
18May/100

Cube Maps Ahoy




Cube Maps Ahoy

So there is a slight glitch with the reflection but ALMOST there.

Tagged as: No Comments