我一直在C#.NET的紙牌遊戲引擎上工作一段時間。目前已接近完成,但目前爲止,該界面只是一個簡單的控制檯,其中ReadLine
和WriteLine
。多人紙牌遊戲的設計注意事項
對於數據,我有一個GameState
對象,它在給定的時間點存儲幾乎所有相關信息。遊戲的其餘部分是嚴重事件驅動的。
我正在尋找分支成一個完整的在線應用程序。我一直在閱讀很多關於WCF和它在Web服務中的回調支持,這對我來說似乎是一個不錯的選擇。但是,如果適合的話,我願意接受其他想法。
我期望的唯一問題是我嘗試這樣做時的線程噩夢。我有一種方法,我想可能會盡可能減少線程的困擾:
1)讓WCF服務只通過回調接口向用戶請求數據(例如,提示某些操作)並提供幾個通知客戶有關遊戲狀態的更新。強調:客戶不能'查詢'遊戲狀態。他們向服務器發送數據的唯一方法是服務器通過回調來請求數據。
我唯一擔心的是客戶端可能需要從服務器請求某些我不期待的數據。如果出現這種情況,我可以提供一些方法讓客戶讀取遊戲狀態,但是現在我必須開始考慮GameState
對象上的讀卡器鎖。
我想如果必須的話,我會挖掘並嘗試使這件事情線程安全,但我想通過你們運行這個來看看你是否有任何建議。
好的建議。我應該花時間考慮一些可能的更低層次的實施方法。我會猜測,沒有太多的遊戲使用網絡服務作爲網絡的手段,而是擁有更專有的設置。 – Ben 2010-11-12 17:39:57