我正在使用orleans框架实现一个游戏应用程序。每个游戏实例都是一个独立的GameGrain,并且每个GameGrain实例都有一些关联的颗粒,比如PlayerGrain (游戏中的每个玩家),WeaponsGrain (武器库存)。
这些颗粒的主键是:
GameGrain:<GameGuid>
PlayerGrain:<GameGuid>-<PlayerGuid>
WeaponsGrain:<GameGuid>
现在,我想实现颗粒放置策略,确保在与GameGrain相同的竖井上激活任何游戏实例的GameGrain、PlayerGrain和WeaponsGrain
如果您能提供一些输入,如我应该如何做,我将不胜感激?
发布于 2021-08-20 06:23:01
如果希望将某个颗粒放置在与创建它的颗粒相同的竖井中,则可以使用属性[PreferLocalPlacement]标记该颗粒。
其他的放置策略也是可用的,你甚至可以自己编写。有关这方面的更多信息,请阅读documentation on grain placement。
由于存在与颗粒通信相关的成本,并且您足够关注这一点,因此考虑到颗粒放置,那么您可能需要重新考虑哪些对象应该是颗粒。如果一个对象不需要被多个颗粒访问,并且真正归一个颗粒所有,那么你可能只想让它成为同一颗粒的一部分。
例如,武器可以是玩家颗粒中武器集合中的对象。如果需要更改所有权,可以将对象发送给另一个播放器颗粒。
https://stackoverflow.com/questions/68837809
复制相似问题