2009-06-11 109 views
3

我目前处于使用silverlight设计基于浏览器的游戏的早期阶段。这场比赛将有许多2-4名球员(甚至可能高达8)的比赛,并将基于回合。服务器端为多人回合基于silverlight游戏

前端是Silverlight 3.0,因为我在那里有一些经验。我试图找出后端应该是什么。由于游戏是基于回合的,因此不需要像实时游戏那样频繁地轮询服务器。服务器端将包括某种在客户端和后端之间进行通信的中间层。后端将成为基于c#的Windows服务,它基于用户行为(攻击,防守,移动,技能,平衡等)执行验证和计算。

Silverlight 3.0客户端和服务器上的c#windows服务之间的中间通信层有什么特点和缺点?

  1. 套接字
  2. WCF/WCF双工服务
  3. 的.Net RIA服务

目前我不知道上面的三种选择什么,但是我在过去创建的ASP。网络Web服务和大学我做了一些我大部分都忘记的套接字编程。

回答

2

这是我对事物的看法:

套接字: 的好处是,这样可以进行真正的好。缺点是在客户端和服务器上实施都有些脆弱和复杂。除非没有其他方法,否则我会避免这种情况(例如,您需要非常高的性能)。

WCF/WCF双工: 如果您只需花10分钟思考您想要来回发送的内容,WCF就很容易实现。性能好,部署简单。这将是我在线游戏的首选。

WCF Duplex稍微复杂一些。有一些很好的教程可以帮助我们实现这个目标,但是我发现有一些陷阱可能不值得我们付出努力。如果你不需要高轮询时间间隔,我会坚持使用正常的WCF。据我所知,WCF Duplex也进行轮询,所以它不是真正的双工。

.NET RIA服务: 我不确定这个问题,但我认为开销并不是您在拥有大量流量时所需要的。同样从论坛的问题,我知道这一个不是很容易定制,而WCF更灵活。

结论: 除非有一些令人信服的理由,我会坚持WCF。