Honor of Kings 数 据 分 析

1.项目背景

《王者荣耀》作为腾讯公司的重要产品之一,是一款5V5团队公平竞技手游,已成为国际范围内最受欢迎的MOBA手游之一。自从它在移动设备上推出以来,便吸引了数以百万计的玩家,构建了一个庞大的社交和竞技游戏生态系统。

截止目前,游戏已经拥有超过106个英雄角色,这些英雄涵盖了不同的职业定位,如坦克、战士、刺客、法师、射手和辅助。每个英雄都拥有独特的技能和特点,这使得游戏变得多样化和复杂。《王者荣耀》的玩家社群不断壮大,其中既包括了新手玩家,也包括了专业电竞选手。

随着游戏的不断发展,玩家对于英雄数据的需求也逐渐增加。他们希望能够更深入地了解每个英雄的性能、胜率、地区差异和战斗表现。这种深入了解不仅有助于提升玩家的游戏技能,还可以为游戏开发者提供有价值的数据,以进行游戏平衡调整和改进。

这个项目的目标是为《王者荣耀》玩家和开发者提供一个全面的英雄数据平台,使他们能够更轻松地获取、分析和应用英雄相关的信息。通过系统的数据分析和可视化功能,玩家可以优化他们的游戏策略,提高竞技水平,而游戏开发者可以依靠这些数据做出更明智的决策,以持续改进游戏的质量和平衡性。这个项目的意义不仅体现在提升游戏体验上,还有助于推动《王者荣耀》作为一款竞技电竞游戏的发展和壮大。

2. 系统开发意义

数据分析与处理在《王者荣耀》这款备受欢迎的MOBA手游中具有重要意义。本系统的开发不仅对于玩家个人而言有着深远的意义,也对整个游戏生态系统和游戏开发者有着重要的影响。:本系统的数据分析和处理主要围绕王者荣耀游戏中的英雄数据展开,包括但不限于英雄热度、胜率、bp率等。

2.1 个人层面的意义:

(1)提高游戏表现:通过本系统提供的英雄数据分析,玩家可以更全面地了解每位英雄的强弱和适用场景。这将使他们能够做出更明智的英雄选择,制定更有效的战略,从而提高在游戏中的表现。

(2)加强竞技体验:本系统的数据分析功能有助于提高玩家的竞技水平,帮助他们更好地理解英雄的胜率趋势和战术变化。这不仅会增加游戏的趣味性,还可以促进更有竞技精神的游戏社区的形成。

2.2 整个游戏生态系统的意义:

(1)促进游戏平衡:通过收集和分析大量的英雄数据,本系统可以为游戏开发者提供宝贵的信息,有助于他们更好地进行英雄平衡调整。这将有助于确保游戏中的英雄都有机会被玩家使用,减少不平衡和不公平的情况。

(2)提高玩家参与度:有了本系统,玩家可以更深入地了解游戏中的英雄,这可能会引发更多的探索欲望,增加游戏的长期参与度。这对于游戏的长期健康和生存至关重要。

(3)数据驱动游戏开发:本系统收集的数据不仅可以用于英雄平衡,还可以为游戏开发者提供关于玩家行为和偏好的见解。这有助于更精确地制定游戏更新和改进策略,以满足玩家的需求。

总之,本系统的开发不仅对于玩家在游戏中获得更好体验有着直接影响,还在更大范围内促进了《王者荣耀》作为一款竞技游戏的长期成功和发展。它为玩家提供了强大的工具来提高他们的游戏技能,同时也为游戏开发者提供了宝贵的反馈和改进机会。

3. 系统功能需求

3.1系统主要功能

(1)查看英雄数据: 系统将提供一个易于访问的英雄数据库,允许用户检索各个英雄的详细信息。这些信息包括但不限于热度、胜率、bp率、战力、技能效果、皮肤和背景故事等方面的数据。用户可以根据不同的标准(如版本、地区、英雄类型等)来进行搜索和过滤,以获取最相关的信息。

(2)数据分析与可视化: 系统将提供强大的数据分析工具,用户可以使用这些工具深入挖掘英雄数据。用户可以生成图表、统计数据和趋势分析,以更好地理解英雄的性能和演化。可视化功能将包括直方图、折线图、雷达图等,以便用户可以以直观的方式比较不同英雄之间的数据。

(3)英雄推荐: 系统将基于数据分析结果提供个性化的英雄推荐。用户可以输入他们的游戏偏好和风格,系统将根据这些信息推荐最适合的英雄。推荐将考虑用户的技能水平、游戏版本、队伍构成等因素,以确保英雄的选择最符合用户的需求。

(4)地区和版本比较: 用户将能够轻松比较不同地区和游戏版本中英雄的性能。系统将提供地区和版本选择功能,允许用户查看不同地区或版本中英雄数据的变化。这将有助于玩家更好地适应不同的游戏环境和战术要求。

(5)数据导出和分享: 系统将支持用户将数据导出为可分享的格式,如PDF或CSV。这样,用户可以保存自己感兴趣的数据、与其他玩家分享分析结果,或将数据用于其他目的,如社交媒体分享或战术讨论。

(6)用户反馈和报告: 用户将能够提供反馈和举报不准确或有问题的数据。系统将提供一个用户反馈渠道,以确保数据的准确性和完整性,并及时修复任何错误。

3.2系统用例分析

3.2.1系统用例图

3.2.2关键用例的详细描述

用例名称 进入王者荣耀推荐网页
参与者 用户
描述 用户通过浏览器进入系统,查看英雄的相应信息,例如,高胜率英雄推荐、英雄ban位饼状图、英雄热度柱状图等内容。
用例名称 进入王者荣耀推荐网页
参与者 用户
描述 用户通过浏览器进入系统,查看英雄的相应信息,例如,高胜率英雄推荐、英雄ban位饼状图、英雄热度柱状图等内容。
主干过程 1.0 查看高胜率英雄推荐 1.系统显示当前高胜率英雄,并由高至低排序 2.0查看英雄ban位饼状图 1.系统显示当前英雄ban位饼状图,并由高至低排序 3.0查看英雄热度柱状图 1.系统显示当前英雄热度柱状图,并由高至低排序
用例名称 查询英雄战力
参与者 用户
描述 用户进入王者荣耀推荐网页,单击王者荣耀英雄战力查询按钮,查看英雄战力的相应信息,例如,省级上榜最低战力、市级上榜最低战力、区级上榜最低战力等内容。
主干过程 1.0查询英雄战力 系统被查询英雄的相关战力 1.1 查看省级上榜最低战力 1.系统显示省级上榜最低战力 1.2查看市级上榜最低战力 1.系统显示市级上榜最低战力 1.3查看区级上榜最低战力 1.系统显示区级上榜最低战力

3.3数据字典

3.3.1 E-R图

3.3.2数据实体定义

heroscore
字段名 类型 描述 备注
Id Int 编号 主键,自增长
Name Varchar(32) 名称 非空
Area Varchar(32) 地区
Score Int 分数
herosscore
字段名 类型 描述 备注
Id Int 编号 主键,自增长
Name Varchar(32) 名称 非空
Area Varchar(32) 地区
areapower Int 区级上榜最低战力
City Varchar(32) 城市
Citypower Int 市级上榜最低战力
Province Varchar(32) 省市
ProvincePower Int 省级上榜最低战力
heroinfos
字段名 类型 描述 备注
id Int 编号 主键,自增长
heroId Int 英雄编号
heroName Varchar(32) 英雄名称 非空
banRate float 禁止率
ShowRate float 出场率
winRate float 胜率
HeroCare Varchar(32) 位置
tRank char 热度

4. 系统非功能性需求

4.1性能需求

网络平台要求:

(1)多用户系统

在王者荣耀战力系统中,网络平台要求支持多用户访问。尽管玩家没有权限录入、修改或删除数据,但他们可以在各自的客户端上进行数据查询操作。这要求系统具备多用户支持,确保各用户的操作不会相互干扰,同时允许信息共享。信息主要存储在服务器端的数据库中,由各使用者在规定的权限下在各自的客户端上录入,修改,删除相关的内容,进行各自的相关操作,不可跨权限进行操作。各用户还可进行查询,调用,达到信息共享。

(2)数据的完整性,准确性

数据的完整性和准确性是关键要求。尽管玩家只能进行查询操作,但系统需要确保查询结果反映了最新的、准确的战力数据。录入数据时,系统应对数据进行验证和限制,以防止不合法的数据进入数据库,限制录入数据类型及取值范围以保证数据的完整性及准确性。

(3)数据安全性

系统应确保只有经过身份验证的用户才能进行查询操作,以保护战力数据的隐私和安全性。密码控制功能和访问权限规定是实现数据安全性的关键措施。本系统采用二级安全保障:第一级:依赖于网络本身对用户使用权限的规定。不同的使用者具有不同的使用权限。第二级:在程序模块中通过使用密码控制功能对用户使用权限加以限制。以保证系统的正常使用。

4.2软件开发运行环境需求

1.开发环境:IntelliJ IDEA,是 Java 语言的集成开发环境,IDEA 在业界被公认为是最好的 java 开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE 支持、Ant、JUnit、CVS 整合、代码审查、创新的 GUI 设计等方面的功能可以说是超常的。

2.运行环境:IDEA,浏览器。在部署和运行阶段,王者荣耀战力系统的服务器端需要配置适当的硬件和操作系统环境,以支持高并发的数据查询请求。用户的客户端需要支持现代浏览器,以便访问系统的前端界面。

4.3其他需求

4.3.1安全性需求

虽然玩家只能查看数据,但仍然需要确保数据的保密性和完整性。系统应采取措施,如对账号密码进行加密,以防止未经授权的访问和信息泄露。

4.3.2 服务需求

为了确保系统易于维护,提供简单的安装和维护流程是必要的。管理员需要能够轻松地配置和管理系统,监控系统状态,并执行备份和恢复操作。系统应提供用户友好的查询界面,以方便玩家查看战力数据。

5. 系统具体实现设计

5.1系统原型设计

5.2 数据库设计

当设计系统数据库时,有两个关键方面需要考虑:首先是将英雄数据存储在本地MySQL数据库,因为这些数据相对不大且相对稳定。其次,英雄战力数据在不同地区(IOS Q区、IOS 微信区、安卓 Q区、安卓 微信区)实时变化,因此需要使用大数据平台,将这些数据导入Hadoop的Hive数据库,并定期更新。最后,通过TOMCAT服务器将数据以JSON格式传输给前端。

5.2.1 数据存储与更新流程

具体数据库内容在3.3已述,以下为数据库实现原有及数据传输方式说明:

1)存储英雄数据到本地MySQL数据库

英雄数据,如英雄的基本信息、技能描述和皮肤数量等,是相对静态的信息,因此适合存储在本地MySQL数据库中。这些数据的存储流程如下:

数据采集: 从游戏官方源或数据供应商获取英雄数据,包括英雄ID、名称、职业、技能描述等信息。

数据预处理: 在数据导入之前,进行数据清洗和格式化。这可能包括去除重复项、解析数据以适应数据库结构等。

数据存储: 使用数据库连接工具,将数据插入到本地MySQL数据库的英雄信息表(heroes)中。每个英雄的数据都与其唯一的英雄ID相关联。

2)存储英雄战力数据到Hadoop的Hive数据库

英雄战力数据是实时变化的,且跨多个地区,因此适合存储在Hadoop的Hive数据库中。这些数据的存储流程如下:

数据采集: 设计一个数据采集程序,定期(例如每隔12小时)从游戏服务器获取英雄在各个地区(如IOS Q区、IOS 微信区、安卓 Q区、安卓 微信区)的战力数据。这个程序会主动与游戏服务器通信,获取最新的数据。

数据分区: 获取的数据将被按地区和时间戳信息分区,以便更高效地查询和分析数据。每个分区将包含特定地区和时间段内的英雄战力数据。

数据存储: 将数据存储在Hive数据库的英雄战力数据表中。每次采集都会创建新的分区,确保历史数据得以保留。

5.2.2 数据传输至前端通过TOMCAT服务器

为了使前端应用能够获得最新的英雄和英雄战力数据,我们需要一个中介,即TOMCAT服务器,用于处理数据请求和响应。以下是数据传输至前端的流程:

前端请求: 前端应用通过HTTP请求向TOMCAT服务器发出请求,指定所需的数据类型和操作(例如获取英雄信息或战力数据)。

TOMCAT服务器处理: TOMCAT服务器接收到请求后,会根据请求的类型,查询相应的数据库。对于英雄信息,服务器将查询本地MySQL数据库的英雄信息表。对于英雄战力数据,服务器将查询Hive数据库的英雄战力数据表。

数据编码为JSON: 从数据库检索到的数据将被编码为JSON格式,以便于在前端应用中解析和显示。

HTTP响应,Ajax请求: TOMCAT服务器通过HTTP响应将JSON数据传递给前端应用,这将包含英雄信息或英雄战力数据,根据前端请求的内容而定。

前端解析与展示: 前端应用接收到JSON响应后,解析数据并将其呈现给用户。这可以是英雄列表、图表或其他可视化元素,根据前端应用的需求而定。

5.2.3 核心代码

6. 系统测试

6.1测试用例

HiveTest.java

Local_WebTest.java

MySQLTest

yumin_WebTest

6.2 测试结果

测试用例皆成功通过:

7. 实训心得

7.1设计体会

用户友好性至关重要: 王者荣耀战力系统应该始终以用户为中心。在界面设计方面,我们应该追求简单、直观的用户界面,以确保玩家能够轻松地查看战力数据。同时,为了提供更好的用户体验,系统应该提供数据可视化功能,例如图表和图形,以帮助玩家更清晰地理解数据。

数据安全和隐私保护是首要任务: 尽管玩家只能查看数据,但系统必须严格遵守数据隐私和安全性的最佳实践。确保数据的保密性和完整性对于用户信任和系统声誉至关重要。因此,必须采用强大的身份验证、访问控制和数据加密措施。

灵活性和扩展性: 我们应该设计系统以支持未来的扩展和功能增加。游戏环境和需求可能会不断变化,因此系统的架构应该能够容纳新的数据源和功能,而不需要进行大规模的修改。

7.2程序创新

智能数据分析: 除了提供基本的数据查询功能,系统可以采用机器学习和数据挖掘技术,以识别潜在的游戏趋势和玩家建议。这种智能分析可以帮助游戏开发者更好地了解游戏平衡问题,并采取相应的措施进行优化。

自动化数据同步: 为了确保战力数据的实时性,可以实现自动化数据同步机制,以定期从游戏服务器获取最新的数据。这种自动化流程可以减轻管理员的工作负担,同时确保数据的及时性。

用户反馈集成: 创新的想法可以包括用户反馈集成,允许玩家提供反馈和建议。这些反馈可以用于改进系统,使其更符合玩家的期望和需求。

数据可视化: 使用创新的数据可视化技术,例如交互式图表和热力图,可以帮助玩家更好地理解战力数据。这种可视化可以让玩家更容易发现趋势和模式。

7.3 收获总结及不足之处

​ 在这次的项目中,我主要负责后端开发的工作,项目的目标是构建一个基于大数据平台的数据存储和分析系统。具体来说,我的工作职责包括了选择和配置技术栈,管理数据存储,解决CORS跨域问题,进行后端测试,并确保数据以JSON格式传输到前端。工作职责在项目中,我广泛使用了以下技术和工具:技术栈选择和架构设计: 我负责选择和配置了Spring框架,采用了分层架构的思想,将项目划分为Dao层、Service层、Web层和实体类部分,以提高代码的可维护性和可扩展性。数据管理: 项目要求将数据分为本地MySQL和Hive两部分进行管理,我成功地实现了这一任务,确保数据的高效管理和存储。

​ CORS问题解决: 为了解决前后端之间的CORS跨域问题,我深入研究了该问题,并使用Spring Boot的注解来配置CORS策略,确保前端能够安全地访问后端数据。后端测试: 我使用Postman进行后端测试,以验证代码的正确性,并确保数据以JSON格式传输给前端。

​ 这个项目为我提供了深入了解大数据平台和Hive的机会。之前,只是通过课堂的演示来学习这些技术,而在项目中,我能够亲自实践和应用它们,这对我的技能水平提升非常有帮助。此外,通过处理前后端数据传输,我也获得了更多的实操经验,提高了技能水平。


Honor of Kings 数 据 分 析
http://example.com/2024/03/06/Honor-of-Kings-数-据-分-析/
作者
zhanghao
发布于
2024年3月6日
许可协议