5
\$\begingroup\$

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.

\$\endgroup\$
  • \$\begingroup\$ en.wikipedia.org/wiki/Blackboard_system. Essentially, it's a common meeting place for exchanging information. \$\endgroup\$ – MichaelHouse Mar 25 '14 at 18:34
  • \$\begingroup\$ So the Blackboard is a "solution". Isn't that just a copy of the existing data ? \$\endgroup\$ – Orvel Mar 25 '14 at 18:47
  • \$\begingroup\$ Kind of. But that's what messages are too, until their processed. \$\endgroup\$ – MichaelHouse Mar 25 '14 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\$ – MichaelHouse Mar 25 '14 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\$ – MichaelHouse Mar 25 '14 at 20:41
4
\$\begingroup\$

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.

| improve this answer | |
\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.