我一直在C#.NET的纸牌游戏引擎上工作一段时间。目前已接近完成,但目前为止,该界面只是一个简单的控制台,其中ReadLine
和WriteLine
。多人纸牌游戏的设计注意事项
对于数据,我有一个GameState
对象,它在给定的时间点存储几乎所有相关信息。游戏的其余部分是严重事件驱动的。
我正在寻找分支成一个完整的在线应用程序。我一直在阅读很多关于WCF和它在Web服务中的回调支持,这对我来说似乎是一个不错的选择。但是,如果适合的话,我愿意接受其他想法。
我期望的唯一问题是我尝试这样做时的线程噩梦。我有一种方法,我想可能会尽可能减少线程的困扰:
1)让WCF服务只通过回调接口向用户请求数据(例如,提示某些操作)并提供几个通知客户有关游戏状态的更新。强调:客户不能'查询'游戏状态。他们向服务器发送数据的唯一方法是服务器通过回调来请求数据。
我唯一担心的是客户端可能需要从服务器请求某些我不期待的数据。如果出现这种情况,我可以提供一些方法让客户读取游戏状态,但是现在我必须开始考虑GameState
对象上的读卡器锁。
我想如果必须的话,我会挖掘并尝试使这件事情线程安全,但我想通过你们运行这个来看看你是否有任何建议。
好的建议。我应该花时间考虑一些可能的更低层次的实施方法。我会猜测,没有太多的游戏使用网络服务作为网络的手段,而是拥有更专有的设置。 – Ben 2010-11-12 17:39:57