论文总字数:25179字
摘 要
随着互联网的快速发展,网络游戏成为一种新兴的高技术休闲娱乐方式,受到广大年轻者的青睐。网络游戏中,玩家之间存在频繁的信息交互,这些信息的处理效率直接影响着玩家的使用体验和整个游戏的性能,承担客户端与服务器端之间网络底层通信的游戏引擎的作用显而易见。本文实现了一个基于C/S架构的游戏引擎,该引擎以VS2017作为开发平台、C 作为开发语言,基于winsock网络编程,主要包括:线程管理、内存池管理、缓冲区管理、连接管理、消息处理、服务端与客户端接口等重要组成部分。关键词:网络引擎,C ,Visual Studio2017,cocos2d-x,select,winsock,C/S模式
Abstract: With the rapid development of the Internet, online games have become a new way of high-tech leisure and entertainment, which is favored by the majority of young people. In online games, there are frequent information interactions among players. The processing efficiency of these information directly affects the user"s experience and the performance of the whole game. It is obvious that the game engine undertakes the network bottom communication between the client and the server. This paper implements a game engine based on C/S architecture. The engine uses VS2017 as development platform, C as development language and Winsock as network programming language. It mainly includes thread management, memory pool management, buffer management, connection management, message processing, server-client interface and other important components.
Keywords: network engine,c ,visual studio 2017,cocos2d-x,select,winsock,c/s architecture
目 录
1 引言 4
1.1 系统研究背景及意义 4
1.2 系统研究内容 4
1.3 本文的组织结构 4
2 系统解决方案 5
2.1 开发工具 5
2.2 select模型 6
2.3 技术开发方案 6
3 系统需求分析 6
3.1 生产者-消费者设计模式 7
3.2 服务端流程分析 7
3.3 客户端流程分析 8
4 系统详细设计 9
4.1 线程管理模块 9
4.2 内存池管理 11
4.3 缓冲区管理 15
4.4 连接类管理 18
4.5 消息处理模块 20
4.6 服务端用户接口 24
4.7 客户端用户接口 28
4.8 消息协议 28
5 测试 28
5.1 多客户端模拟测试 28
5.2 Cocos2d-x测试 30
结 论 32
参 考 文 献 33
致 谢 34
1 引言
1.1 系统研究背景及意义
随着人们生活水平的提高和互联网的快速发展,网络游戏作为新兴的高技术产业已经成为一种新型的休闲娱乐方式,并且逐步演变成与影视、音乐等并驾齐驱的全球最重要的娱乐产业之一。
我国网络游戏产业规模化发展起于2000年,虽然只有短短几年的时间,但发展势头迅猛。网络游戏产业已成为网络经济及娱乐业的重要支撑,同时正带动着相关产业的发展。但国产游戏开发技术面临着发展的瓶颈问题,无论是网络游戏在客户端技术开发的可见领域,还是诸如平衡性等在内的后台不可见因素,这些都需要时间的积累,所以开发自己的游戏引擎显得非常有必要。
1.2 系统研究内容
网络游戏中,玩家(客户端)之间的信息交互很频繁,这些交互信息的处理效率直接影响着玩家的使用体验和该游戏的性能。因此,客户端与服务器端之间的网络底层通信模型显得尤为重要,游戏引擎作为一种处理游戏底层技术的平台,其重要性也显而易见。
网络游戏的体系结构包括:客户端、服务端、数据库服务器三大部分。
网络游戏通常的运行方式有一个或多个游戏服务器启动特定游戏服务。客户端负责处理客户端显示和操作界面,具有简单的逻辑处理功能,同时负责接收发送与服务器端交互的数据包。服务端不仅要负责处理服务端逻辑、游戏逻辑、客户之间的网络信息传递,以及数据库之间的数据读取保存工作,还要承担客户端数据的接收、转发工作。
1.3 本文的组织结构
本文在分析多线程消息处理的基础上,以目前主流的软件开发平台和技术实现了简单的网络通信引擎,并以系统开发背景、开发环境、需求分析、详细设计和系统测试的先后顺序阐述了系统的设计和实现过程。各个章节安排如下:
第1章简单介绍了项目的研究意义和研究现状;
第2章分析了项目开发系统解决方案,包括开发工具、程序运行环境等;
第3章介绍了引擎的技术分析,包括多线程的使用和主要模块;
第4章系统介绍了游戏引擎的实现方法,详细介绍了各模块的设计过程并给出了部分关键代码;
第5章简略介绍了消息协议的定义与使用;
第6章介绍了本系统测试的方法以及测试结果的展示。
2 系统解决方案
在开发网络游戏时,首先要建立底层的网络通信类,利用网络通信类连接构建客户服务器之间的TCP/IP连接,然后在该连接的基础上利用自设定的协议进行客户端登录、进行游戏等操作。在以上协议的基础上,根据不同的游戏编写不同的游戏逻辑处理类,在该逻辑处理类中实现了对应的游戏逻辑,以军棋为例,则实现相互之间的对弈等功能。同时,服务器端还需要和数据库服务器进行交互,读取或保存客户信息(如用户积分、密码、个人资料等数据)。
2.1 开发工具
2.1.1 Visual Studio 2017和C 语言
Visual Studio 2017是微软于2017年3月8日正式推出的新版本,是迄今为止最具生产力的 Visual Studio 版本。其内部工具整合了 .NET Core、Azure 应用程序、微服务、Docker 容器等内容。
本文采用C 语言进行程序的开发,主要原因包括:
剩余内容已隐藏,请支付后下载全文,论文总字数:25179字
该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;