.net 客户端还是服务器端的Silverlight游戏逻辑?

.net 客户端还是服务器端的Silverlight游戏逻辑?,.net,silverlight,wcf,silverlight-4.0,.net,Silverlight,Wcf,Silverlight 4.0,我现在遇到了一些问题 我正在开发一款由两名玩家玩的纸牌游戏(顶级王牌)。我想知道如何最好地设置架构 现在几乎所有的游戏逻辑都是在客户端计算的 游戏状态保存在数据库表中。数据库每秒钟更新一次。但是因为有两名球员在比赛,所以出现了一些问题。用这种方法很难不遇到问题 也许最好使用WCF服务在服务器端处理所有游戏逻辑,而只使用客户端作为演示者。WCF将处理所有游戏逻辑,在数据库中保存/加载状态,两个客户端可以请求通过XML发送的游戏状态 你认为这种方法怎么样?表演怎么样?或者有人知道更好的方法吗 先谢谢

我现在遇到了一些问题

我正在开发一款由两名玩家玩的纸牌游戏(顶级王牌)。我想知道如何最好地设置架构

现在几乎所有的游戏逻辑都是在客户端计算的

游戏状态保存在数据库表中。数据库每秒钟更新一次。但是因为有两名球员在比赛,所以出现了一些问题。用这种方法很难不遇到问题

也许最好使用WCF服务在服务器端处理所有游戏逻辑,而只使用客户端作为演示者。WCF将处理所有游戏逻辑,在数据库中保存/加载状态,两个客户端可以请求通过XML发送的游戏状态

你认为这种方法怎么样?表演怎么样?或者有人知道更好的方法吗


先谢谢你

服务器上的游戏逻辑是以任何有效方式防止作弊的唯一方法。永远不要信任客户。

服务器上的游戏逻辑是以任何有效方式防止作弊的唯一方法。永远不要信任客户机。

您应该在客户机和服务器中实现某些状态-例如,玩家不能在对手有机会玩牌之前放下一张牌,然后立即放下另一张牌。不过,你是对的-大部分逻辑应该在服务器端处理,客户端会间歇性地检查更新。

你应该在客户端和服务器中实现一些状态-例如,玩家不能在对手有机会玩牌之前放下一张牌,然后立即放下另一张牌。不过,你说得对-大部分逻辑都应该在服务器端处理,客户端会间歇性地检查更新。

但是我合法地赢得了100000000美元——我的用户名真的是“;更新帐户集金额=100000000;--”但是我合法地赢得了100000000美元——我的用户名真的是“;更新帐户集金额=100000000;--”由于Silverlight是一个浏览器交付的应用程序,玩家可能会在需要与中央服务器通信的不同机器上玩,似乎显而易见的选择是将逻辑托管在服务器上——这甚至没有考虑到防止欺骗之类的事情。我现在面临的问题是,WCF服务基本上是无状态使用的。我需要有状态的东西。否则,我不得不更新数据库,所有的时间都是在线游戏,不要考虑更新数据库一直是个问题。因为Silverlight是一个浏览器交付的应用程序,玩家可能会在需要与中央服务器通信的单独机器上玩,似乎显而易见的选择是将逻辑托管在服务器上——这甚至没有考虑到防止欺骗之类的事情。我现在面临的问题是,WCF服务基本上是无状态使用的。我需要有状态的东西。否则,我不得不更新数据库,所有的时间都是在线游戏,不要考虑更新数据库一直是一个问题。是唯一的问题是如何防止从数据库加载整个时间。我需要一些方法来处理有状态的游戏对象服务器端,但是WCF服务通常是无状态使用的。在每次客户端调用上序列化/反序列化状态会有多大问题?您的数据库应该缓存查询/数据(如果写得好的话)——并且状态不应该特别大。您预计会有多少用户?是的,唯一的问题是如何防止在整个过程中从数据库加载。我需要一些方法来处理有状态的游戏对象服务器端,但是WCF服务通常是无状态使用的。在每次客户端调用上序列化/反序列化状态会有多大问题?您的数据库应该缓存查询/数据(如果写得好的话)——并且状态不应该特别大。你预计有多少用户?