AI Blackboards - anyone any experience with them?

So, Blackboards. I suspect I need something like this to hold shared/inferred state for my mission generator, and a blackboard seems to fit what I’m after. Has anyone any experience with these? At the moment I’m literally starting with a simple struct and a couple of hardcoded variable (a ‘static blackboard’ is the lingo I believe). However I’m not sure how this is going to expand/change as time goes on.

In particular most of the stuff of the web about blackboards seems to be about dealing with typesafety in a C/C++ blackboard. I’m wondering if there are any cunning tricks people have used that make a blackboard easier to work with in Java…

I use blackboards in my game to quite good effect. One use case (not the only one) is what units to target and what priority (its a RTS). I hate it when every unit just attacks the closest, typically faster light unit while heavy hard hitting units are left free to wander up to do massive damage a few seconds later. Also indirect fire can take a long time to hit, so the unit may already be dead soon. So when a unit attacks some enemy unit it first checks the blackboard of the enemy unit to see what is already attacking and what damage is expected to be delivered and when. If it then decides to continue with the attack it writes the details on the BB. Pretty simple and works quite well.

This part of the implementation is very specific for that data, it just faster. So far i just add more add hoc stuff as it goes. There are some flags that can be set or cleared etc. I don’t like generic code for generics sake.

I realized this may differ slightly from some definitions of blackboards in AI, but it is one of them. I got the idea from a AI book.