Silverlight游戏开发初探(下篇)

     目前,HTML5的话题很热,Flash及Silverlight的未来会不会因为HTML5而变得无所事事?我的个人看法是,HTML5仍有很长的路要走,即使将来标准成熟了,Flash与Silverlight也将仍有它们的用武之地,它们各自将在自己适合的领域发挥作用,各自会得各自开发群体的支持,很难说谁能取代或消灭谁。

 

  谈到网络多人游戏的开发,游戏中客户端与服务端需要频繁的信息交流,本人对WCF只有初步了解,感觉用来做大型游戏的通讯似乎有点免为其难,别担心,Silverlight为我们准备了Socket. 从网上搜了一下,关于介绍Silverlight Socket的文章并不少。如:

在silverlight中利用socket发送图片或文件
Silverlight的socket通信实例源码

Silverlight Socket 实现收发信息

朋友们可以以此来构建自己的通讯方式,但要做好一款大游戏的后台通讯模块,并不是一件容易的事,本人也没有构建大型游戏后台的经验,但只要我们已经出发了,只要努力就一定能够达到胜利的彼岸。

 

在多人网络游戏中,NPC的驱动全是由服务器端来完成,由服务器端传到客户端的信息,再驱动客户端相关元素的动作,在通讯进程中操作界面元素,我们可以使用Dispatcher对象的BeginInvoke方法,如下:

 

  ShowChat_("我来了,大家好")

 

  Private Delegate Sub Dele_ShowChat(ByVal strChat As string)
    Private Sub ShowChat_(ByVal strChat As string)
        Me.Dispatcher.BeginInvoke(New Dele_ShowChat(AddressOf ShowChat), strChat)
    End Sub
    Private Sub ShowChat(ByVal strChat As string)
            txtDisplay.text &=vbcrlf & strChat
    End Subs

 

 这样,使用Silverlight开发多人网页游戏基本上问题不大了,当然开发大型游戏不是件简单的事,其中有太多的细节需要去做。

 

 在前面单人游戏的基础上,我加了个服务端,构成了一个简单的多人游戏实例。有兴趣的朋友可以点击查看多人游戏在线演示

 (因服务端程序是放在朋友的主机上,不一定所有时候都是通的。如果不通,那此演示也就无法查看了. )

 另考虑到一些原因,这个多人游戏的演示源码就不提供了。朋友们可以参考上面的链接设计通讯模块。

 

 Silverlight游戏开发初探(上篇)

posted @ 2010-05-02 18:04  pser  阅读(669)  评论(3编辑  收藏  举报