我在考虑将 Erlang 应用于游戏服务器,使用 Actor Model 进行游戏模拟。其中最大的吸引力当然在于它可以分布在多个节点上实现并发。
但目前我遇到了一个问题,就是如何处理多参与者交互,例如碰撞检测(这只是一个例子)。
虽然在任何游戏中都需要碰撞检测,但在 Actor Model 的本质中,它似乎并不高效且甚至没有意义,因为需要对所有目标参与者进行全局同步状态查询和更新。如果使用任何同步方法,都会覆盖 Erlang Actor 模型的所有优势。
当然,如果正确地使用空间划分技术,可以减少同时定位的参与者数量,但这只是一种优化而非根本解决方案。那么这是否是这个问题的正确答案?通过减少交互参与者的数量来缩小同步范围?