Finite State Reader Enhancements

Enhancements include a actually interface so you don't have to do tags and stuff by hand.  Think I'm gonna enhance the hieracry a little bit instead of having a ton of states running around I'll group them, you can have multiple groups in a file but basically instead of reading 1 file and getting 20 states you get 1 manageable group of 20 states and can all be contained in the same FiniteSMGroup and I'll make a com.jme.scene.state so you can attach it to geometry and add listeners.  Also instead of actually putting in (FiniteSMState).getOutputState(String "stimulan") there might be an event listener system.  So this way it'll do all the getOutputState for you but what good is that if it doesn't do anything.  I'm tryring to think of a good way to link outputStates,and Events so when both are active at the same time somethign happends, so lets look at this example

<state name="state_calm">
  <pair input="gunFired" output="mad" />
  <pair input="gunPointed" output="annoyed" />
</state>
<state name="state_annoyed" />
  <pair input="gunFired" output="mad" />
  <pair input="calmingDownLiquid" output="calm" />
</state>


Mouse button is clicked which sends input "gunFired" which would return output"mad" which would activate a set of stuff.  Like Animations,Change the Pathfinding(which we don't have.....yet) to move away from character,change voice outputs,speed all that fun stuff.  I might have to do something like the com.jme.renderer.pass system.  States are suppose to define all this stuff but the way it's set up now it won't.  I've seen structures where there was this...

<struct>
 int alert;            // Alert status of enemies //
  struct Positionshot;  // Position of last shot fired //
  int shotTime;         // Game cycle last shot was fired //
  int hostage;          // Hostage rescued //
  int explosives;       // Explosives set or not //
  int tank;             // Tank destroyed //
  int dialogue;         // Dialogue variable //
  int complete;         // Mission completed //
struct Positionpos;               // Map position //
  int screenX, screenY;             // Screen position //
  int animDir, animAction, animNum; // Animation information, action and animation frame number //
  int rank;                         // Rank //
  int health;                       // Health //
  int num;                          // Number of unit //
  int group;                        // Group number //
  int style;                        // Style of unit (elf, human) //
  struct AnimationObject animObj;   // Animation object for complex animations //
 </struct>


pretty impressive.  You can see where this is useful output "getMad" activates animation info and stuff.  I'll think more on this

guess the AI forum is dead,  well after playing call of duty 2 I see the importants of really good AI,  I mean they were some hard Nazi solders.  They'd fake a retreat and turn back around and flank, they would run once singled out regroup and fight some more.  Attacking, retreating ,regrouping, counterattacking. , such AI and it's all hardcoded no actually learning is going on or neutral networks I think it's called, most times hard coded AI has weak points that are seen early and won't change during the whole game giving the feeling of just fighting mentally challenged players that don't learn from there mistakes, but if you provide a good AI they will keep you challenged and active.

Also, despite the fact that most of us are off work or school at some point during the holidays, there still is a lot of life type events grabbing people's attention such as travelling, sleeping off food binges, trying to cope with visiting family, etc.  :stuck_out_tongue:

Not dead, just not many people really concerned with it at the moment.  In the next few months (if not earlier) I will be very interested in AI, but at the moment I'm bogged down with networking and finishing a couple games.



darkfrog