网络游戏的基本程技术.doc

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
网络游戏的基本程技术

第11章 网络游戏的基本编程技术 网络的诞生是信息领域的一场革命,引导出一种新的人际之间的交流模式。随之而来的网络游戏彻底改变了游戏的方式和规则,符合人是社会这一属性,是一种全新的游戏模式。在单机版计算机游戏中,玩家只能一个人在游戏世界中探索,因此是人机交互。在网络游戏世界中,玩家可以和其他玩家共同体验游戏的乐趣,获得团队精神的体验,因此是人际交互。由于游戏的人工智能还远未达到能模拟人的思维和智慧的程度,人际交互的真实度和刺激性将远强于人机交互,这就是单机版游戏无法提供的可玩性。例如,三维游戏领域的大师John Carmack坚持在QuakeⅢ游戏中只提供多人对战模式。长久不衰的对战游戏(CS)反恐精英也是因为它的竞技性、团队性提高了游戏整体的可玩性。美国的一些军事训练机构更是采用多人对战模式的军事类仿真游戏来训练人员。在中国,网络游戏的盛行也说明了网络游戏的独特魅力。 网络和网络游戏是一个飞速发展的领域,本章将介绍一些基本的网络和网络游戏编程概念,并配有必要的例程。游戏程序员需要进一步阅读和不断实践,才能自由、高效地编写出受人欢迎的网络游戏。 11.1 网络游戏的基本架构 网络游戏的最常见的基本架构是Peer-to-Peer 对等通信结构,如图11-1所示,即在多个玩家参与的游戏中,各玩家之间采用Peer-to-Peer的直接通信方式。在网络通信服务的形式上,一般采用浮动服务器的形式,即其中一个玩家的机器既是客户端,又扮演服务器的角色,一般由创建游戏局的玩家担任服务器(主机)。很多对战型的RTS网络游戏都采用这种结构。 网络游戏的另一种架构是基于游戏大厅代理的结构,通过会话大厅(lobby)结构,为不同玩家牵线搭桥,既直接管理客户端,也管理游戏局,是回合制网络游戏的常见类型,如图11-2所示。 网络游戏的最典型的结构是C/S结构,如图11-3所示,特别适合于多人在线游戏,如RPG,成千上万人进行同一场游戏。服务器上有完整的游戏世界模型,玩家在客户端去观察这个世界,并与之互动。 图11-1 网络游戏的Peer-to-Peer对等通信结构 图11-2 基于游戏大厅代理的网络游戏结构 图11-3 基于C/S的网络游戏结构 C/S结构的优点是能够充分发挥客户端计算机的处理能力,很多工作可以在客户端处理后再提交给服务器,使得客户端响应速度快。对于网络游戏来讲,这是十分关键的。其缺点就是网络游戏的升级比较麻烦,每次升级需要客户端下载体积庞大的更新软件,然后进行安装,对于一些带宽并不是十分充足的用户而言,升级就成了游戏的梦魇。不过,良好的客户端程序框架设计完全可以避免升级时下载庞大的更新软件。比如,客户端软件可以把场景定义文件独立出来,客户端程序在运行时动态加载场景定义文件。这样,当网络游戏的设计者发现需要增加游戏场景时,他只需要更新一个场景定义文件就可以了,当然还需要一些必需的场景资源文件,如新增加的图像、背景音效等。 一个典型的基于C/S架构的回合制游戏的运行流程如图11-4所示。 图11-4 基于C/S架构的会合制游戏流程 11.2 Winsock编程基础 由于Windows操作系统的广泛普及,在PC机上以Windows为平台的游戏占据了游戏市场的绝大部分。本节主要介绍Windows网络编程的规范:Winsock编程。 11.2.1 TCP/UDP简介 Internet是一个包交换(packet-switched)、容错(fault-tolerant)的网络。包交换意味着在Internet上传输的信息实际上是被分装成一个个小包(大小从几字节到几千字节)从某点传送到另一点。容错意味着包传输的路径上将可能发生错误,如服务器出错等。如果传输路径上的服务器发生了错误,那么传输的包将会选择另一条路径,直到到达目的地。 在发送数据时,有两个任务是十分关键的。第一,数据被分割组包,并在另一端重组。第二,每个数据包单独在网络上传输,直到完成任务。在TCP/IP(Transmission Control Protocol/ Internet Protocol,传输控制协议/网际协议)协议结构中,这两个任务分别交给了TCP和IP,前者负责数据包的分割和组装,后者负责数据包在网络上的传送。面向连接的TCP协议保证了FIFO操作(数据按顺序到达目的地),保证从一端发送的TCP流都将到达目的地。为了保证数据的顺序到达,TCP协议需要等待一些丢失的包来按顺序重组原来的数据,同时还要检查是否有丢包发生,因此它的运行速度很低。TCP协议以牺牲一部分传输性能为代价,来获取可靠的网络传输。 UDP(User Datagram Protocol,用户数据报协议)是TCP协议的替代选择。UDP是一种无连接的协议,可以在网

文档评论(0)

xpb717 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档