课程设计论坛

注册

 

QQ登录

只需一步,快速开始

发新话题 回复该主题

[毕业设计] 基于C#的多人在线社交游戏的网络程序设计 [复制链接]

楼主
文件格式: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#的多人在线社交游戏的网络程序设计
  • 毕业设计
  • WindowsFormsApplication1
  • Properties
  • csAssemblyInfo.cs  [1.35KB]
  • csResources.Designer.cs  [2.83KB]
  • resxResources.resx  [5.48KB]
  • csSettings.Designer.cs  [1.08KB]
  • settingsSettings.settings  [249.00B]
  • bin
  • Debug
  • app.publish
  • Application Files
  • WindowsFormsApplication1_1_0_0_0
  • deployWindowsFormsApplication1.exe.deploy  [9.00KB]
  • manifestWindowsFormsApplication1.exe.manifest  [6.54KB]
  • applicationWindowsFormsApplication1.application  [5.52KB]
  • exesetup.exe  [418.88KB]
  • applicationWindowsFormsApplication1.application  [1.92KB]
  • exeWindowsFormsApplication1.exe  [35.00KB]
  • manifestWindowsFormsApplication1.exe.manifest  [3.02KB]
  • pdbWindowsFormsApplication1.pdb  [71.50KB]
  • applicationWindowsFormsApplication1.vshost.application  [1.92KB]
  • exeWindowsFormsApplication1.vshost.exe  [11.33KB]
  • manifestWindowsFormsApplication1.vshost.exe.manifest  [3.02KB]
  • Release
  • obj
  • x86
  • Debug
  • TempPE
  • cacheDesignTimeResolveAssemblyReferences.cache  [4.34KB]
  • cacheDesignTimeResolveAssemblyReferencesInput.cache  [6.29KB]
  • tlogGenerateResource.read.1.tlog  [400.00B]
  • tlogGenerateResource.write.1.tlog  [966.00B]
  • cacheResolveAssemblyReference.cache  [7.71KB]
  • resourcesWindowsFormsApplication1.Form1.resources  [180.00B]
  • resourcesWindowsFormsApplication1.Properties.Resources.resources  [180.00B]
  • applicationWindowsFormsApplication1.application  [1.92KB]
  • exeWindowsFormsApplication1.exe  [35.00KB]
  • manifestWindowsFormsApplication1.exe.manifest  [3.02KB]
  • pdbWindowsFormsApplication1.pdb  [71.50KB]
  • txtclient1.csproj.FileListAbsolute.txt  [1.62KB]
  • Release
  • TempPE
  • cacheDesignTimeResolveAssemblyReferencesInput.cache  [6.30KB]
  • csForm1.Designer.cs  [35.93KB]
  • csForm1.cs  [18.78KB]
  • resxForm1.resx  [5.68KB]
  • csProgram.cs  [505.00B]
  • csSqlHelper.cs  [71.92KB]
  • csprojclient1.csproj  [5.79KB]
  • userclient1.csproj.user  [452.00B]
  • pfxclient1_TemporaryKey.pfx  [1.60KB]
  • new1
  • Properties
  • csAssemblyInfo.cs  [1.31KB]
  • csResources.Designer.cs  [2.79KB]
  • resxResources.resx  [5.48KB]
  • csSettings.Designer.cs  [1.06KB]
  • settingsSettings.settings  [249.00B]
  • Service References
  • bin
  • Debug
  • dllMySQLDriverCS.dll  [68.00KB]
  • exenew1.exe  [23.50KB]
  • pdbnew1.pdb  [59.50KB]
  • exenew1.vshost.exe  [11.33KB]
  • manifestnew1.vshost.exe.manifest  [490.00B]
  • Release
  • exenew1.vshost.exe  [11.33KB]
  • manifestnew1.vshost.exe.manifest  [490.00B]
  • obj
  • x86
  • Debug
  • TempPE
  • cacheDesignTimeResolveAssemblyReferences.cache  [4.34KB]
  • cacheDesignTimeResolveAssemblyReferencesInput.cache  [6.27KB]
  • tlogGenerateResource.read.1.tlog  [320.00B]
  • tlogGenerateResource.write.1.tlog  [726.00B]
  • cacheResolveAssemblyReference.cache  [17.99KB]
  • resourcesnew1.Form1.resources  [180.00B]
  • resourcesnew1.Properties.Resources.resources  [180.00B]
  • txtnew1.csproj.FileListAbsolute.txt  [929.00B]
  • exenew1.exe  [23.50KB]
  • pdbnew1.pdb  [59.50KB]
  • Release
  • TempPE
  • cacheDesignTimeResolveAssemblyReferencesInput.cache  [6.27KB]
  • csForm1.Designer.cs  [5.50KB]
  • csForm1.cs  [18.21KB]
  • resxForm1.resx  [5.68KB]
  • csProgram.cs  [565.00B]
  • csSqlHelper.cs  [71.85KB]
  • csprojnew1.csproj  [4.17KB]
  • mdfbiyesheji_Data.MDF  [1.38MB]
  • ldfbiyesheji_Log.LDF  [1.00MB]
  • slnnew1.sln  [1.28KB]
  • suonew1.suo  [52.00KB]
  • doc毕业设计(论文).doc  [1.52MB]
  • txt说明.txt  [74.00B]

我要下载:基于C#的多人在线社交游戏的网络程序设计
分享 转发
TOP
沙发

ding,很有用
TOP
板凳

TOP
发新话题 回复该主题