基于虚幻 4 引擎的 TPS 闯关 Demo工程实践项目设计与实现
前言
本次文章是结合在高级软件工程学到对于系统设计的用例图分析,UML建模,以及数据模型设计和本人的工程实践项目进行设计与分析。
一、工程实践项目
我的工程实践项目是中科大与腾讯合作的项目:基于虚幻四引擎的TPS闯关Demo;主要是利用虚幻四引擎中的Blueprint加上C++进行开发。
二、用例图分析
2.1、以下是我在高级软件工程中学到关于用例建模的知识:
用例的概念:是软件工程或系统工程中对系统如何反应外界请求的描述,是一种通过用户的使用场景来获取需求的技术。每个用例提供了一个或多个场景,该场景说明了系统是如何和最终用户或其它系统互动,也就是谁可以用系统做什么,从而获得一个明确的业务目标。标准的用例应该含有以下要素:
(1)用例应该由业务内的某个参与者所触发
(2)用例必须能为特定的参与者完成一个特定的业务任务
(3)用例必须终止于某个特定参与者,也就是特定参与者明确地或者隐含地得到了业务任务完成的结果。
用例建模的基本步骤:
(1)从需求表述中找出用例,往往是动名词短语表示的抽象用例;
(2)描述用例开始和结束的状态,用TUCBW和TUCEW表示的高层用例;
(3)对用例按照子系统或不同的方面进行分类,描述用例与用例、用例与参与者之间的上下文关系,并画出用例图;
(4)分析用例与参与者的详细交互过程,完成一个两列的表格将参与者和待开发软件系统之间从用例开始到用例结束的所有交互步骤都列举出来扩展用例。
2.1 结合工程实践进行用例分析
系统主要功能模块分析:登录注册模块,闯关模块(系统的主要业务模块),信息存储模块。
(1)登录注册模块:玩家注册、登录、登出、注销。
(2)闯关模块:选择关卡,选择难度,选择角色,升级。
(3)信息存储模块:玩家信息、关卡、游戏装备、的增删改查,玩家信息的存储,玩家游戏状态的保存。
2.2 工程实践用例图

三、业务领域建模
3.1 业务领域建模基本介绍
业务对象模型(也叫领域模型 domain model)是描述业务用例实现的对象模型。它是对业务角色和业务实体之间应该如何联系和协作以执行业务的一种抽象。业务对象模型从业务角色内部的观点定义了业用例。该模型为产生预期效果确定了业务人员以及他们处理和使用的对象(“业务类和对象”)之间应该具有的静态和动态关系。它注重业务中承担的角色及其当前职责。这些模型类的对象组合在一起可以执行所有的业务用例 。
3.2 业务领域建模基本步骤
(1)收集应用业务领域的信息。聚焦在功能需求层面,也考虑其他类型的需求和资料;
(2)头脑风暴。列出重要的应用业务领域概念,给出这些概念的属性,以及这些概念之间的关系;
(3)给这些应用业务领域概念分类。分别列出哪些是类、哪些属性和属性值、以及列出类之间的继承关系、聚合关系和关联关系。
(4)将结果用UML类图画出来。
3.3 业务类分析
用户(ID、密码、昵称、注册时间、等级、游戏币余额、装备信息、角色信息、闯关信息)
角色(角色id、角色名称、角色售价)
关卡(关卡id、关卡难度等级、奖励、关卡怪物集合)
装备(装备id、装备名称、装备售价、装备功能)
3.4 绘制UML类图
下图是基于ue4 Gameplay框架核心类的UML类图:

四、数据建模
1、用户信息表
属性名 |
类型 |
唯一标识 |
注释 |
| Id | int | 是 | 用户的唯一标识 |
| password | varchar | 否 | 用户密码 |
| name | varchar | 是 | 用户密码 |
| grade | int | 否 | 用户等级 |
| registerTime | Date | 否 | 注册时间 |
2、角色表
| 属性名 | 类型 | 唯一标识 | 注释 |
|---|---|---|---|
| roleId | long | 是 | 角色标识id |
| name | varchar | 否 | 角色名称 |
| price | int | 否 | 角色售价 |
3、关卡表
| 属性名 | 类型 | 唯一标识 | 注释 |
|---|---|---|---|
| levelId | int | yes | 关卡唯一标识 |
| hard_grade | int | no | 关卡难度等级 |
| reward | long | no | 奖励的经验 |
| monsters | Set<Monster> | no | 怪物集合 |
装备表
| 属性名 | 类型 | 唯一标识 | 备注说明 |
|---|---|---|---|
| equipmentId | int | yes | 装备标识id |
| name | varchar | no | 装备名称 |
| function | Equipment_func | no | 装备功能 |
| price |
int |
no | 装备售价 |
五、该项目概念原型以及工作过程
概念原型是从概念上对软件系统进行分析和设计,利用用例建模、UML建模以及数据库设计可以大概的设计出整一个系统的主要功能模块,以及所需要的数据表和类,然后根据功能模块可以大概的实现系统的基本工作流程,下面简述一下本项目概念原型的工作过程:
用户通过注册游戏账号,设置玩家昵称无误后即可进入游戏中,在游戏中每一个玩家一开始都会有一定的游戏币由于购买角色以及装备,购买完可以进入闯关模式,在闯过每一个关卡后,会有一定的经验以及金币奖励,随着等级的提升,关卡的难度也会解锁,越来越难。
总结
通过在高级软件工程课程中的认真学习,我重新温习了本科阶段所学习的软件工程知识,并学到了很多新知识,也提前对自己要做的工程实践项目进行了大概的分析设计,相信这会对我接下来的项目开发有很大帮助。

浙公网安备 33010602011771号