After considering how a message passing system would integrate with my game, I can see how it will be immensely useful for areas such as artificial intelligence. In fact, it can solve the problem I was stuck on in the original shmup I was designing; how to get enemies to efficiently communicate with each other for pattern based formations. My main concern at the moment, while I'm working with the high-level architecture decisions, is how low-level do most games take messaging?
I'll pick an example and try to think it out as I type. I'll consider 2D collision detection, which is critical for an action game and probably the trickiest part of the logic for my sample shmup game. In a hardcore shmup, there might be about a couple of dozen ships on the screen, and maybe several hundred projectiles. If everyone of those projectiles sent a message every frame to check which other objects it could be colliding with, that would add up to a lot of CPU processing time.
The way I would usually approach a problem like this is to order all the objects in some fashion, such as by sorting the objects by the upper-left corner positions of their bounding boxes, or by segmenting the game world into sectors to lower the number of objects to be compared. I suppose it is still appropriate, but I guess the messaging would be done via the "collision detector" keeping track of all objects, and then messaging them directly if they collide. But do I need to message everything in that fashion? Maybe this needs a rethink.
I also guess I need to research collision detection a bit more thoroughly. Do most shmups have pixel perfect collision detection, or would a simplified bounding geometry work just as well?