课程设计论坛

首页 » 设计下载 » 计算机设计 » 基于C#的多人在线社交游戏的网络程序设计
lfe1202 - 2013/8/23 19:16:09
文件格式:word+c#
文件大小:5.19MB
适用专业:程序设计
适用年级:大学
下载次数:1 次
我要下载:点击联系下载
论文编号:207085

资料简介:

毕业设计-基于C#的多人在线社交游戏的网络程序设计,共40页,10114字,附C#源代码

摘要:本文主要讲述了类似摩登城市的社交游戏的分析和设计,使用线程池与socket技术实现开发多人在线游戏网络程序的基本功能,包过实现社交游戏中新建建筑、摧毁建筑、收获建筑、升级建筑的功能。通过Winsock实现数据传输、通过Sqlhelper进行数据库连接、通过线程池实现对不同socket连接并发运行管理等。在C/S模式下,客户端发送必要的数据与控制信息给服务器,服务器再根据控制信息对数据进行处理。服务器端首先用一个线程监听socket连接,再将监听到的连接转移到线程池里,这就使得服务器端能同时接受多个用户连接,并行多个任务的计算处理,同时隔离错误,为所有的用户提供相对稳定的后台支持,同时节省了创建线程的时间,并且能够并发进行多个任务,这样就提高了服务器端对多个客户端请求响应速度,也实现了对数据库的高效利用。

关键字:线程池、多人在线游戏、社交游戏、网络游戏


目 录

1 选题背景 1

1.1选题背景 1

1.2 设计目标 3

1.2.1选题主要解决的问题 3

2 设计需求分析 4

3 设计平台选择 6

3.1 操作系统 6

3.2 软件运行环境 6

4 设计过程论述 7

4.1设计程序窗口 7

4.1.1客户端窗口的设计 7

4.1.2服务器端窗口的设计 7

4.2主要技术 8

4.2.1 线程池 8

4.2.2 socket 连接 8

4.2.3 协 议 9

4.3 程序结构 11

4.3.1 客户端设计 11

4.3.2 服务器端的功能设计 17

4.3.3 发送的数据格式设计 17

4.3.4 数据库设计 18

4.4系统流程分析 20

4.4.1 用例举例 21

4.4.2 客户端流程图 23

4.4.3 服务器端流程图 24

5 部分核心代码 25

5.1 客户端 25

5.1.1 使用socket收发信息 25

5.1.2 使用线程来运行任务 25

5.2服务器端 25

5.2.1 监听socket连接 25

5.2.2 接管Socket连接 26

5.2.3 数据库操作 26

6 Socket粘包的测试性研究 28

7 总结 31

8 展望 32

致谢语 33

参考文献 34


本设计是整个游戏流程中的一部分,也是游戏开发的核心工作,游戏编程,基本需要熟练C#、sql编程等技术。设计中使用radiobutton来模拟一个游戏基本场景而没有图形式的游戏场景。设计中需要完成的是模拟目前流行的休闲游戏摩登城市实现盖房子,拆房子,收获房子,升级房子,以及实现相应的时间牵制与财产变迁。

同时,为了解决多个客户端同时连线到服务器端,因此服务器端使用了多线程技术,使用一个线程进行监听是否有客户端连接,再将监听到的连接分配到线程池进行通信。

通信方式则是客户端将要改动的数据与改动命令通过socket发送到服务器端,再由服务器端根据命令对数据库作出修改。


设计需求分析

《摩登城市》这款游戏是基于网页,大量使用flash技术,下图展示的是从3366中的游戏《摩登城市》游戏场景的一部分截图,整个场景以平面的方式表达, 所有的建筑都是贴图,如图2-1所示。

玩家可以选择建筑在地图上的任意位置新建选择的建筑,不要的建筑也可以进行摧毁恢复成空地,一定时间后可以收获建筑得到金钱,建筑有不同等级,玩家可在原有建筑上进行升级,升级与新建一样需要扣除相应的金钱。

因此,地图功能初步设计为:新建、摧毁、收获、升级。

具体细化为:

新建:在某个空地新建某建筑时,将该地点名称改为该建筑名称,同时在用户财产中扣去该建筑所需的费用,并记录新建的时间。

收成:收成某个已有可收成建筑时,用户财产增加该建筑对应的收成数据,更新新建的时间为收成时间。

摧毁:将指定的建筑摧毁成空地。

升级:将指定的未满级的建筑进行一个等级的升级,用户财产扣去升级费用,新建时间更新为升级时间。

因为这类游戏以多人休闲互动为乐趣,所以不止能对自己地图的建筑进行操作,同样也需要能进入别人的地图进行部分操作,因为不是地图主人,所以不能进行新建、摧毁、升级等操作,只能对别人的建筑进行收获操作。

因此,互动功能初步设计为:能够进入别人的地图场景、收获别人的建筑。

具体为:

查看:进入别人的地图场景;

收获:用户财产增加指定的建筑带来的收益数据。

为了防止同个用户不同场地同时登陆的情况,在用户登陆的时候应该对此有所判断,阻止后登陆的该用户的客户端连接服务器端。

本设计将游戏地图简化为4×4的表格,用radiobutton 来代表每个格子(即地皮),形成一个游戏场景的基本架构。并用横纵坐标来区分每个地皮,例如xy为11表示第一行第一列的地皮。


 


资料文件预览:
共28文件夹,72个文件,文件总大小:5.19MB,压缩后大小:1.39MB


我要下载:基于C#的多人在线社交游戏的网络程序设计
hart - 2014/5/17 20:25:30
ding,很有用
lljieying - 2015/2/3 15:59:04
1
查看完整版本: 基于C#的多人在线社交游戏的网络程序设计