Archive

Author Archive

user interface issues in FI3RST

September 16th, 2009 heckel No comments

Irrlicht has a full event system, and objects can inherit from the irrlicht event receiver interface to hook into it. Despite this, I think it makes more sense to bypass this and use a single dispatch function which runs with the main loop.

I think in the long run, it will be easier to make changes in a single place to change how users interact. Since we’re not going to use the event system to control the npc characters, there’s no reason to put it there. In some cases, individual objects may use the event system– notably, there’s an irrlicht console available which does that.

This reduces the complexity of the objects we’re creating, since each object does not need to inherit from the irrlicht event system.

This reduces the computational complexity– instead of calling every object’s OnEvent for each keyboard event, just the eventreceiver gets that, and the dispatch function takes care of passing on events appropriately.

Finally, we don’t really need the responsiveness of a separate thread for handling control at the moment, and if we get to the point that our framerate is so low that we do, we have other problems.

Categories: Uncategorized Tags:

FI3RST 1.5 Status

September 7th, 2009 heckel No comments

Here’s a quick rundown of what’s going on with FI3RST 1.5 right now:

  • DynamicObjectList: Adding objects supported, object removal not ready
  • CharacterList: Adding characters supported, character removal not ready
  • Inventory System: Adding/removing objects to/from character inventory supported, inventory display in game available, object inventories not nailed down yet
  • Remote interface for BEHAVE: Character/object insertion available, character motion control working.
  • Object/Animation metadata: Schemas created, basic examples (simple character model, the defuse kit) are working
  • Camera: Custom camera not yet started
  • Keyboard controls: Set up a simple custom event handler which includes contexts– separate contexts allow changing the keyboard mapping easily
  • SSPS Integration: Some stubs in place, but not yet started
  • Text console: Text console class is available, currently hooked up to irrlicht logging system. Need a second console for displaying character speech/actions
  • Splash/loading screen: Splash screen is in place, but irrlicht doesn’t like rendering anything to screen– even 2D, ignoring the scene manager– while it is loading a level. Possibly a deadlock?
  • Director: Planning for a scenario director, which can take care of executing events such as earthquakes, as well as just loading necessary scenario-specific dynamic objects into the game. Scenario descriptions will be XML.
  • World class is in, but not doing much at the moment
  • FI3RSTManager class handles game session recovery, as well as dropping objects/characters in as they are requested

Other minor items: The issue with the textures on the objects I have loaded in so far was just because the irrlicht level I created has no lights in it. Once I dropped in an ambient light, it’s apparent that textures are loading just fine. The pause functionality is not quite right at the moment; for some reason, the irrlicht game timer doesn’t seem to be pausing the way I expect it to.

BehaviorShop interface: BShop (and BEHAVE) can take advantage of the character/object metadata files. BShop will also want to make use of the object inventory thumbnails.

Actions and speech aren’t really in, and I can’t say that character motion is finalized until we get SSPS in; the key item here is that SSPS will be involved in ground clamping, so we need some valid data before that goes in.  Irrlicht collisions work for the camera, but likewise, this is something that won’t really be in place until SSPS is integrated. I plan to go ahead and use the irrlicht collision methods, but use SSPS to select which objects actually need to be tested.

Categories: Uncategorized Tags:

Yabba Dabba Doo!

June 5th, 2009 heckel No comments

Categories: Uncategorized Tags:

Where’s me head??

May 30th, 2009 heckel No comments

It’s not over here….

I can’t find it here, either!

Oh no! I’ve lost me torso too!

Alas. At least I didn’t lose me boots this time.

Categories: Code testing Tags:

Week 18 Status

May 4th, 2009 heckel No comments

Scientific:

Accomplishments:

  • Mark Overmars’ question about updates which increase the strength of influence points made a good point; the quick answer is that if you can put an upper limit on the expected strength of the point at insertion, we can maintain constant time updates, though sometimes regions will then have points with no strength in the local area.

Challenges:

  • There’s a question as to whether PRMs are a good choice for local navigation, so need to investigate some
  • For next influence points paper, or possible journal version, need to come up with 2 or 3 different concrete scenarios for using them, as some people were confused  as to whether they would work in particular instances
  • Hierarchical influence points and splitting/joining of influence points needs to be dealt with.

Engineering:

Accomplishments:

  • AgentCore has some basics in, in that it will load up a list of agents from files and run them for a bit. There is no percept update, though effectors are generated.
  • AgentController is complete
  • Subsumption for ActionModel is to spec, mostly, though there may be minor issues with scoping
  • Loading agents from xml works
  • gotobehavior, alwaystrigger are complete
  • query file generation is mostly complete, though it doesn’t deal with ranges and enumerated options just yet
  • ThreadManager/WorkerManager works
  • A lot of behaviors/triggers added to Mantis
  • Created a model for BehaviorShop, and code to load an existing agent from XML
  • Wrote the code for BehaviorShop to load query files from XML

Problems:

  • Lots of behaviors and triggers to build
  • Need communication still, but giving a little more time before I implement my solution
Categories: Weekly Update Tags:

Week 16 Status

April 20th, 2009 heckel No comments

Scientific:

Accomplishments:

  • Nothing new this week

Challenges:

  • No real change from last week

Engineering:

Accomplishments:

  • ActionModel is complete and tested with spatial actions– this covers basic steering and subsumption resolution
  • ThreadManager/WorkerThreads ready for testing
  • GoToBehavior tested independently of AgentController, but with PerceptualModel and ActionModel

Problems:

  • AgentController is on its way
  • Need to go through and add mutexes to several classes, or tweak things to avoid locks

Papers

  • AIIDE submitted
Categories: Uncategorized Tags:

ActionModel & Subsumption

April 14th, 2009 heckel No comments

Since I want the ActionModel to take care of action resolution, and there to be only one per agent, it can’t be used directly by the agents. Really, though, this is a good thing. The ActionModel also needs to store some basic state information for behaviors—if following a path, it needs to keep the path around. It should at least track the effectors so it can figure out when they actuallly run.

So I’ve added an ActionModelInterface class. It has storage for some basic state, hold onto the SubsumptionPolicy of the layer, and has simplified move/speak/act request functions. This should actually simplify behaviors, and to some extent, the ActionModel, quite a bit.

This functionality could just be folded into the Behavior base class, but I think this approach is better. If nothing else, it makes for easier testing, which is important right now.

Week 15 Status

April 13th, 2009 heckel No comments

Scientific:

Accomplishments:

  • Nothing new this week

Challenges:

  • No real change from last week

Engineering:

Accomplishments:

  • More testing done on PerceptualModel — it’s now fully hooked in with the SSPS graph stuff and A* for region distances. Ironed out some basic issues.

Problems:

  • High priorities are still working with Casey to sort out his boost issues, PRMs for the ActionModel, the ActionModel itself
  • Lower priority is MemoryModel

Papers

  • AIIDE draft is coming along
Categories: Uncategorized Tags:

Week 14 Status

April 7th, 2009 heckel No comments

Scientific:

Accomplishments:

  • Decided to use probabilistic roadmaps for within-region navigation. Probably what we’ll do is generate a roadmap when a region is first entered, and store that with SSPS. If the dynamic objects in a region change, we can either regenerate the roadmap or fix the original one. Don’t need to worry about that just yet, so I’ll make the basic version work.
  • Have the basic Perception/Effector interface nailed down

Challenges:

  • Need to think about the ActionModel more. It’s going to be substantially more complex in 1.0 than it was before, as it needs to track the current actions, transitions between actions, and handle resolving actions. Possibly the last should be handed off to the SubsumptionPolicy instead, but if so, SP will still need to use AM to decide how to combine actions.
  • Still working on exactly how to deal with hierarchical subsumption priorities. This will be an issue with effector resolution, since we now have priorities within the lower subsumptions. My initial thought was to use a float representation, which would be nice, as we still have comparators that would work. I think now instead I’ll use a max size (10 element) boost tuple of, say, unsigned shorts. Turns out that boost::tuple has comparators that do exactly what i want. So this is really just an engineering problem, in the end.

Engineering:

Accomplishments:

  • Most of the skeleton for 1.0 is in place, but everything needs some fleshing out.
  • Started testing the perceptual model, but got hung up on SSPS-related stuff
  • Created a boost::graph object which maps to our SSPS representation
  • Got the boost A* algorithm working on that graph object. This was a big ol’ PITA, but now that I’ve done it once, using any of the other algorithms should be much easier. I have learned a lot about boost in the process. For now, I’ll just call the A* algorithm when I need distances. This will be hell of inefficient, so I’ll probably at least cache these distances, but this will obviously change.
  • Created new schema/behavioral language for agents.

Problems:

  • This list is long, so I’ll skip most of it, since it’s mostly in mantis.
  • UDP comms for 1.0: Casey is working on this. He had some trouble with boost and SVN, but I think he’s doing alright with them now. I’ll check up on him again Wednesday.
  • PerceptualModel testing is incomplete
  • Action Model is high priority
  • Floyd-Warshall is next targeted boost graph algorithm to get working
  • Probabilistic road map implementation for SSPS

Papers

  • Working on the AIIDE draft, starting from some FLAIRS content
Categories: Uncategorized Tags:

Status of major BEHAVE-1.0 components

March 16th, 2009 heckel No comments

Categories: Uncategorized Tags: