I am implementing an Entity System for my game. I am aiming for a larger procedurally generated world. The world will be filled by AI entities where "on screen" and "near screen" entities will be updated regularly, while the "far away" entities will only be updated sometimes.

My initial thought was to implement a message queue... which is filled during a loop and invoked after the loop, but before the next loop. Then I read this, in there there is an answer mentioning Blackboards(the one with 12 votes), but I haven't been able to find anything detailed on Blackboards.

The question is what exactly are they and what would I gain by using them when compared to message queue ?

My language of choice is CSharp.

  • \$\begingroup\$ en.wikipedia.org/wiki/Blackboard_system. Essentially, it's a common meeting place for exchanging information. \$\endgroup\$
    – House
    Commented Mar 25, 2014 at 18:34
  • \$\begingroup\$ So the Blackboard is a "solution". Isn't that just a copy of the existing data ? \$\endgroup\$
    – Orvel
    Commented Mar 25, 2014 at 18:47
  • \$\begingroup\$ Kind of. But that's what messages are too, until their processed. \$\endgroup\$
    – House
    Commented Mar 25, 2014 at 18:48
  • 1
    \$\begingroup\$ I'm not suggesting you delete the entities. Ideally they'd be marked for death, and removed at the end of the loop (after updating). However, that's a bit off topic for this question. Does my answer below answer your question? \$\endgroup\$
    – House
    Commented Mar 25, 2014 at 20:31
  • 1
    \$\begingroup\$ When you're ready, you can mark it as accepted. However, I'd suggest you wait at least a day, see if you can get more answers. \$\endgroup\$
    – House
    Commented Mar 25, 2014 at 20:41

1 Answer 1


Blackboard systems started in AI programming. Their context in Entity systems is less of a problem solving role, and more of a "place to exchange information" role.

The implementation of the blackboard system can very a lot. Even to the point that you wouldn't be able to tell the difference between that and a message que. It's just a known place to put information that all the entities have access to.

I wouldn't worry too much about the exact definition. Many things game development are just loose guidelines, not rules. And actually the main thing you should be getting from that other thread is to focus on the simple solution. There's no need for a complex system, when a simple one will do just fine.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .