游戏客户端增量更新组件的设计与实现毕业论文
2021-05-13 23:05:04
摘 要
随着社会经济发展的进步,人们的生活品质逐步提高,物质不再成为我们日常生活的唯一需求,精神层面也开始逐步走入人们的视野。日程生活中,人们迫于工作、生活时遇到的一些不愉快的事情,需要一些娱乐活动释放自己的压力。
目前,电子游戏已经成为大众日常生活娱乐项目之一,零碎化的时间利用,简洁的娱乐过程,丰富的精神体验满足了人们精神减压需求。同样作为企业运营手段之一,网络游戏为了获取更多受众需要不断优化自身,而游戏更新层一度成为游戏发展的掣肘。大量的 游戏资源使更新阶段十分耗时。为了不让用户在这段时间内流失,方便快捷的更新过程变成了游戏客户端的不可缺少的部分。
本文实现的是目前已经较为成熟的更新方式,增量更新方式,不仅应用于各种大型游戏,类似的方式还用于各类终端操作系统的更新中。本文主要通过C 语言以及MD5等知识,运用组件化编程理念完成了这种可以实现服务器与客户端之间资源传输的基础增量更新组件。
关键词:游戏;增量更新;MD5
Abstract
With the progress of social and economic development, people's quality of life gradually increase, the material is no longer the only demand of our daily life, and the spirit also began to gradually into people's horizons. In daily life, people from work, life encounter some unpleasant things, need some entertainment activities to release their pressure.
At present, electronic games have become one of the public daily life entertainment. Using spare time, simple process of entertainment, the spirit of the rich experience to satisfy the people spiritual relief needs. Same as one of enterprise operating means, network game in order to get more audience to optimize their own, and the game update layer became a game development of the industry. Plenty of game resources to update phase is very time-consuming. In order not to let users loss in this period of time, convenient and quick update process into an indispensable part of the game client.
Implementation of this article is already a mature way of updating, incremental updating approach, not only applied to various big games, a similar way is used in all kinds of terminal operating system update. This article mainly through C language and the knowledge such as MD5, using modular programming idea has completed this can be achieved between the server and the client resources transmission based incremental updating components.
Key Words:game; incremental updating; MD5
目 录
第1章 绪论 1
1.1 研究背景 1
1.2 国内外研究现状 1
1.3 研究目的与意义 1
1.4 研究安排 2
第2章 方案设计 3
2.1 相关技术支持简述 3
2.2 XML相关介绍 3
2.2.1 标准通用标记语言 3
2.2.2 超文本标记语言 4
2.2.3 可扩展标记语言 4
2.2.4 XML文件解析方式 DOM 4
2.3 HTTP协议简介 5
2.3.1 HTTP的相关特点 5
2.3.2 TCP与UDP的特点 5
2.4 MD5相关介绍 8
2.4.1 MD5算法简述 9
2.5 Zlib库 10
2.6 组件对象模型 11
2.6.1 COM对象与接口 11
2.6.2 COM的相关特性 11
2.7 自动更新组件的设计思路 12
第3章 更新程序的程序实现 14
3.1 更新信息生成程序的实现 14
3.1.1 更新信息生成程序功能设计 14
3.1.2 添加文件的实现 14
3.1.3 移除文件的实现 15
3.1.4 MD5值计算 15
3.1.5 添加项目和项目更新 15
3.1.6 保存项目并生成XML文件 16
3.2 更新程序的实现 17
3.2.1 更新程序执行流程 17
3.2.2 文件获取及信息读取 17
3.2.3 文件校验 18
3.2.4 文件下载与替换 18
第4章 测试与结果 21
4.1 服务器的搭建 21
4.1.1 IIS管理器简介 21
4.1.1 配置IIS管理器 21
4.2 模拟更新 24
4.2.1 生成配置文件 24
4.2.2 执行更新 25
第5章 总结及体会 27
参考文献 28
致 谢 29
第1章 绪论
1.1 研究背景
随着人们生活水平的逐渐提升,精神消费也成为了目前日常生活的重要组成部分。游戏作为精神娱乐的主要方式之一,使游戏产业占据了现今娱乐产业的重要一环。2014年中国游戏产业的营业收入超过1100万元,2015年仅移动游戏产业就达到了348亿美元。如果说互联网行业是第三产业中的支柱产业之一,那么游戏行业可以说是互联网行业龙头之一。目前游戏行业整体竞争激烈,从游戏背景到游戏玩法再到游戏体验,期间每一处不足都会造成大量的消费群流失。游戏客户端作为一个应用程序,本质上避免不了资源的更新迭代,然而庞大的游戏数据在更新过程中所产生的耗时长等问题则更加让客户端程序无法像普通应用软件一样重新下载安装包重新进行覆盖安装来完成程序更新工作。对于应用软件来说,通常大小均在100MB以内,以如今国内网络环境计算,一般用户10M宽带2分钟可以完成一个安装包的下载工作。而大型网游的客户端安装包常常高达10GB以上,一个完整安装包的下载至少会花费2-3小时,而每次更新修改的游戏资源可能仅仅100MB不到。只传输更改的游戏资源进行版本替换,成为了现行常用的更新方法,也就是增量更新。随着互联网游戏行业发展,增量更新方式目前也十分成熟。
1.2 国内外研究现状
从2000开始,中国进入互联网飞速发展的时代,国产网络游戏行业也开始兴起。那时,如盛大已经开始代理韩国网游,网易则开始进行自主研发。PC端网络游戏占据了主导地位,那时增量更新通常称之为补丁更新,已经发展得比较成熟了。经过十多年的发展,目前现行网游行业客户端更新方式仍然采用增量更新方式,但是相较于之前频频更新出错的阶段,已经完善了许多。新的更新方式理念也诞生了,如怎样在不停机的情况下进行更新,或者说怎样在游戏过程中进行游戏资源替换,成了未来的发展方向。不过即使如此,这一种理念已经在几年前应用到了超大型PC端网游上的初始化安装上。现在人们所熟悉的微端,即先完成游戏基础资源的下载安装,剩余的后期资源则在游戏过程中边玩边下载。当完全解决了如何消除资源替换对当前程序运行的影响就能够实现无缝式程序更新。
1.3 研究目的与意义
现今社会进入了一个快节奏生活的时代,日常生活中可以用于安排的时间越来越碎片化,作为娱乐产业的游戏产业来说,只有抓住碎片化的时间利用才能够抓住消费受众。目前,中国网络游戏产业正进入一个平台期,无论是商业模式、产品研发、都已没有太好的手段[1],这时消除原有弊端成了提升竞争力的有效办法。而游戏更新恰恰是严重影响碎片化时间利用的一个障碍。在互联网行业,软件的广泛应用对软件产品的及时更新提出了较高的要求[2],这一点同样应用于游戏行业。频繁的更新迭代带来的是频繁的程序更新,如果不能处理好游戏客户端更新占用的资源,就会影响用户体验导致用户流失,进而导致盈利下滑。
如今是移动端手机游戏的高速发展期,作为移动游戏,其特点与优势就是方便,轻量化,不受环境限制。完整包更新带来的弊端如流量耗费,等待时间长等,则恰恰抹灭了“移动”的优势特点。尽管完整包更新方式不需要额外的相关功能组件,但是增量更新的资源占用小,时间短的特点,在移动设备上则尤为突出。