I've been working on this AI project for the better part of a few months now (sparingly though).
It's finally hit the stage where I can work on it often without losing too much interest
due to slogging through code and painful debugging issues.
The better part of a week was spent building in debug options and streamlining the debug procedure overall.
I've also gotten most of the really bad code out of the way.
My AI is doing some pretty neat tricks by now, and I thought I'd dump this back out into the public light.
Anyways, this project is a continuation/reboot/do-over of
something I was working on for a few months last year.
The current AI creates a memory version of everything it comes into contact with,
updating the status of things whenever they are present.
So far this only includes rooms, doors, and items.
The pathfinding also works well.
My AI has a built in goal tree with associated actions.
The only default action I've added so far is "wander"
which will pick a room at random and have them path over to it.
The AI will always be driven by such goals and their associated actions,
picking the best ones based on weight and success rate (currently built in).
Besides these basic goal trees they can create their own procedurally generated goal trees in certain situations.
When they see a door they haven't opened, the'll add a goal to enter it.
When they see a useful item, they'll create a goal to collect it.
These goals and goal-actions store vital information about the task for later use,
such as the location of the task and the index of the objective in their memory.
So for now all they can do is wander around exploring stuff and collecting keys,
but they have one more trick up their sleeve.
The AI stores short-term memories of every event that happens,
which go into a list where they slowly rot until they are forgotten.
These events are currently remembered by the AI in short term:
- Discovery of new doors or useful items
- Actions performed such as walking between rooms
- Collection of useful items
That is just about everything for now.