游戏开发

本类阅读TOP10

·初学者的福音:游戏开发新手入门指南
·《学VC、编游戏》重点算法解疑·快一点
·Windows的消息机制与消息重定向技术
·《学VC、编游戏》重点算法解疑·再快一点
·Rogue Guide
·《学VC、编游戏》重点算法解疑·狩猎谋生
·通向天才之路 : 把模块塞到动态连接库里去
·完成端口的深入理解及一种变态用法
·DirectX 9.0 SDK 开发包下载(April 2005)
·在OpenGL中实现多纹理混合(Multi-texture Blending)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
DirectPlay分组功能

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

现在网络游戏的网络功能很大一部份是居于WinSock/Socket之上的。但Microsoft的游戏开发包DirectX SDK同样提供了网络的功能----DirectPlay.
    当然,WinSock/Socket与DirectPlay相比较,都存在着优缺.
    而这个"优"与"缺"不是一两句话可概括的(本文重点也不是讲它们的区别).
    DirectPlay的优点:Microsoft的工程师们已把它的网络功能写好了,这样可以为您节省下不少的泡MM时间.如:网络初始化、网络通信的函数功能、网络分组功能等等等("网络分组"是本文的中心)
    DirectPlay的缺点:他的服务端只能运行在Windows平台上;只能支持较少数量的玩家(好现没有哪个公司或个人证明过,在MSDN论坛上我问过之类的问题,但MicroSoft说这主要是靠你写的程序的类型和你的服务器有关而且他们过去也在内部做过有10000名玩家的试验,我在Microsoft的帖子详见: http://communities.microsoft.com/newsgroups/previewFrame.asp?ICP=msdn&sLCID=us&sgroupURL=microsoft.public.win32.programmer.directx.networking&sMessageID=%253CObG98IsTCHA.1640@tkmsftngp10%253E )
    萝卜青菜各有所爱,关于谁优谁劣就留给各位讨论吧。

    好了,现在进入主题。
    先给大家介绍DirectPlay中"组"的功能.
    我们知道,在网络中要给某人发送消息,就要知道他的地址,也就是说要给一群人发送,就是要知道他们每个人的地址.这样,一个一个轮着发不会很麻烦吗?还好,DirectPlay引入了组的概念.只要你把这些人加入某组,以后给这个组发一条消息,他们每人就都会收到这个消息.怎么样?很爽是吧~~
    爽是爽,但问题来了,DirectX SDK 8.1 与 DirectX SDK 7.0 有了相当大的改变,而这些改变SDK Help中又只是用几句话带过(有的甚至没有讲).比如有几个函数在8.1中就消失了,如:AddGroupToGroup()、RemoveGroupFromGroup()、CreateGroupInGroup()、CreatePlayer()等等等...
    而我们要用这些函数时要怎么办?SDK`s Help中又没说清楚~~
    且现有的函数最多只是给你这个函数的类型是什么、参数是什么、返回值是什么、而没有具体用法......
    这所有的一切的一切将在本文章所附带的范例中一一给您展现,且例子中的代码有详细的中文注解.

注:
    本例子在以下编译环境中通中通过:VC6.0、DirectX 8.1 SDK、WinXP
正文完

附件:

  • 说明:本范例下载 Engine2.zip



  • 相关文章

    相关软件