日志 教程
当前位置: 教程  >  游戏开发  >  游戏程序设计  >  正文

【游戏编程入门】小型网络游戏设计与实现

作者:云世界NPC 发表于 2015/5/4 14:45:37     评论(6)     阅读(6915)     

掌握了一些基本的网络socket编程后,本章展示一个支持8~16人的小型网络游戏的编写。

事实上大部分的网络即时战略游戏和网络体育竞技游戏都最多支持16人同时在线。

在小型网络游戏中,所有玩家都运行同一个游戏客户端程序,

其中一个玩家(通常是计算机配置最好、网速最快的那位)将同时运行服务器端程序,这也是限制同时在线人数的主要原因。

大量的玩家将使服务器消耗大量的资源,同时运行服务器和客户端程序会很不现实。


下图展示了小型网络游戏大厅的设计框架:




当服务器启动游戏后,服务器在游戏大厅中调用接收(accept)函数。

这时其他玩家可以加入这个游戏,一旦人数满足游戏要求,服务器可以方便地停止接收状态,开始游戏。

其他玩家将不能再加入这个游戏,除非服务器又打开一个游戏大厅。

这种结构使得游戏服务器十分方便地加入游戏引擎。


服务器的运行流程如下:

(1)创建一个套接字,绑定IP和端口。

(2)服务器监听端口,等待连接。创建一个游戏大厅。

(3)服务器处于等待状态,因此需要两个进程/线程在服务器端运行:一个界面线程,处理游戏菜单操作;一个网络线程,等待连接。

(4)在每个客户端创建一个Socket,连接游戏服务器。

(5)服务器更新连接信息,并在游戏大厅上显示。同时,将连接用户信息发送给每个连接用户。

(6)当所有的用户都连接到服务器上开始游戏,关闭服务器侦听的套接字,中断所有等待的连接,新的用户将不可能连接上服务器。

采用上面描述的方法可以容易地设计出类似星际争霸的网络游戏架构。

游戏服务器只在开始的时候处理连接请求,后继的所有工作是数据的传送。

然而这种方法也存在着一些隐患,如某个客户端在游戏中断掉,它将无法连接上服务器。

因此,服务器必须通过一些测试方法(如长时间没有收到某个客户端的数据,或者是套接字关闭的通知)来探知是否有客户端掉线。

此时,服务器必须打开一个临时的接收套接字,等待掉线客户端的重新连接。


下面以一个回合制游戏的运行过程为例进行简单分析,如图所示。




在这个典型的回合制网络游戏中,客户端设计和实现主要包括以下内容:

游戏的基本功能
——处理声音,动画等。

游戏通信——客户与服务器之间的网络传输细节。
 
游戏应用程序——程序线程管理、各种显示对话框、图形的处理与显示。

游戏处理——处理游戏逻辑、解析和处理游戏数据、游戏运行维护等。


而游戏的服务器端设计则主要包括:

游戏通信——负责游戏中客户服务器之间的网络传输细节。

游戏协议——对传递的数据进行打包和解包,并根据所包含的指令进行相应的操作。

游戏逻辑——负责处理游戏逻辑。

线程管理——线程的生成、结束和分配任务等。


服务器数据库的内容则包括:

角色表
——角色ID、账号ID、角色的名称、属性和帮派等。

道具表——道具ID、所属角色ID、道具各类属性等。

帮派表——帮派ID、名称、帮派头目、介绍、总人数等。

邮件表——邮件ID、发件人角色ID、收件人角色ID、邮件内容等。


整个游戏的运营与管理包含以下机制:

客户端下载和安装。

会员注册。

WEB大厅管理。

客户端管理。

身份验证。

房间。

用户信息。

广告。


大型网络游戏设计中的一个重要问题是负载平衡,要实现高效的网络游戏,需要大量的框架设计和底层优化设计。

除了网络编程方面的知识,三维游戏图形引擎设计也是一个很好的参考。

图形绘制是网络游戏中最耗时、最有可能造成网络堵塞的原因,因此对于二维大型网络游戏以及三维大型网络游戏,图形引擎设计和网络框架设计必须紧密结合,互相考虑,互为依存。


了解3D模型制作、CG动画制作、影视动漫设计、手游网游程序开发,精准培训课程,请到汇众教育官网

评论
显示
悄悄话
    何银泉
  • 何银泉的评论:
  •   正在写网络阶段的游戏小项目,头晕忽忽的!
    2015-07-19 07:41
    何银泉
  • 何银泉的评论:
  •   正在写网络阶段的游戏小项目,头晕忽忽的!
    2015-07-19 07:41
    孙长瑜
  • 孙长瑜的评论:
  •   庞大工程
    • 云世界NPC的回复

      2015-07-09 13:31

    •   程序猿的严密思维~
    2015-07-08 18:22
    孙长瑜
    2015-07-08 18:22
    孙长瑜
    2015-07-08 18:22
    王超
  • 王超的评论:
  •   赞
    2015-07-07 23:08
汇众教育官网 | 联系方式 | 版权声明 | 友情链接
Copyright 2008© 汇众益智(北京)教育科技有限公司. All Rights Reserved
京ICP备09092043号 京公网安备11010802009023号