系统需求概述
1、用例图
2、用例的概要描述
| 主要参与者 | 优先级 | 用例名 | 用例概述 |
|---|---|---|---|
| 玩家 | 高 | 输入角色名称 | 玩家可以自定义角色名称 |
| 玩家 | 中 | 选择地图和房间 | 玩家可以创建不同的房间和地图来等待其他玩家加入 |
| 玩家 | 中 | 选择不同角色和阵营 | 玩家可以更换所选择的角色和阵营 |
| 玩家 | 中 | 在商店购买装备和弹药 | 玩家可以在商店购买不同的武器(分为主武器、副武器、近战武器、特殊武器)和弹药 |
| 玩家 | 高 | 控制角色 | 玩家可以控制角色移动,跳跃,蹲下,射击,切换武器,瞄准,换弹等 |
| 玩家 | 低 | 查看菜单 | 玩家可以在菜单界面调整音量大小和鼠标灵敏度,也可以退出房间 |
3、假设和依赖
玩家具备一些FPS游戏常识。
功能需求
1、基于pun2的联网功能
在unity中导入unity商店中的pun2的工具包,设置photon的服务器id码,修改服务器地区为CN,要网络实例化的预制体放到PhotonNetworking的Resources目录下。
2、角色名称功能
玩家在角色框内输入名称,保存名称并上传到服务器。玩家下次启动游戏时默认名称是该名称。玩家输入名称为空时,名称为Default。
3、选择房间和地图功能
玩家在房间框内输入房间名称,并且在地图下拉选项中选择地图,点击创建房间按钮,系统就会在房间列表实例化出一个带有该房间名和地图名的按钮。另外的玩家点击该按钮可以加入该场游戏,游戏最大人数可以调整。
4、选择不同角色和阵营功能
玩家可以在游戏对局开始前,选择不同角色和不同阵营开始对局。不同的角色拥有不同的属性和技能搭配。不同的阵营获胜的目标要求不一样。
5、在商店购买不同的装备和弹药功能
玩家可以在游戏对局开始时在出生区域购买不同的装备和弹药。装备可分为主武器、副武器、近战武器、特殊武器,弹药划分为主武器弹药、副武器和特殊武器弹药。
6、控制角色功能
玩家可以通过WASD键和鼠标滑动控制玩家的移动和视线,左键射击,右键瞄准,R键换弹,E键释放技能,Space键跳跃,Ctrl键蹲下,1234对应不同武器。每个操作都有各自对应的动画。
7、玩家菜单功能
玩家可以通过Esc键唤出菜单,在菜单中玩家可以通过拖动滑动条或者输入数字来设置音量大小和鼠标灵敏度。玩家也可以通过点击退出房间按钮返回到游戏大厅界面。
非功能需求
1、安全性
| 需求分类 | 定义要素 | 需求内容 |
|---|---|---|
| 数据安全 | 数据完整性 | 数据同步到服务器并进行对比,防止玩家在本地修改数据。 |
| 系统安全 | 输入限制 | 具备输入字符和输入数据的类型, 长度和范围检查功能. |
| 系统安全 | 安全机制独立性 | 安全设计和实现应该具有独立性, 不能依赖当前主机的基础安全机制来确保自身和数据不受破环或拒绝服务. |
2、易用性
| 需求分类 | 定义要素 | 需求内容 |
|---|---|---|
| 用户界面 | 界面风格要求 | 提供一致性的图形用户界面风格 |
| 界面输入要求 | 操作界面必须明确表示出必填的输入信息 | 每个可能的输入都有确定的返回值, 如果出现异常会及时报错并提供正确的帮助信息. |
3、可靠性
可用性
服务器24小时运行,可以在任何时间开始游戏。
4、性能
服务器玩家最大的容纳量为20人。
中国区域内延迟应低于100ms。
验收验证标准
1、 界面验收标准
| 序号 | 界面名称 | 界面描述及预期效果 |
|---|---|---|
| 1 | 大厅界面 | 玩家名称输入框,进入大厅按钮,房间名称输入框,创建房间和加入房间按钮,房间列表显示区域,地图选择下拉框 |
| 2 | 玩家菜单界面 | 音量大小滑动条,鼠标灵敏度大小滑动条,退出房间按钮,隐藏菜单按钮,战绩显示列表 |
| 3 | 商店界面 | 武器列表分为主武器、副武器、近战武器、特殊武器、弹药这些小模块,点击模块展开不同的武器,双击可以购买装备 |
2、功能验收标准
| 序号 | 功能名称 | 预期效果 |
|---|---|---|
| 1 | 选择角色和阵营 | 选择角色和阵营后加入游戏对局 |
| 2 | 购买武器和弹药 | 如果玩家金钱足够点击按钮,扣去金钱购买成功,如果金钱不足,会提示玩家金钱不足 |
| 3 | 角色控制功能 | 玩家可以通过WASD键和鼠标滑动控制玩家的移动和视线,左键射击,右键瞄准,R键换弹,E键释放技能,Space键跳跃,Ctrl键蹲下,1234对应不同武器。每个操作都有各自对应的动画。 |
| 4 | 跳跃和蹲下功能 | 玩家不可在空中二段跳,落地后才可进行下一次跳跃,并且有跳跃音效。玩家蹲下走路速度会变慢,声音会变小。 |
| 5 | 射击功能 | 射击根据武器的不同,使用不同的攻击动作,枪口准星会随射击抖动,子弹带有力的效果,能与场景里的刚体进行互动,并且伴有射击音效。击杀对手会获取金钱 |
| 6 | 瞄准功能 | 右键可以放大瞄准,会有进行瞄准这个动作,并且会有一条红色预设线发出 |
| 7 | 换弹功能 | R可以换弹,如果子弹数量为满或者备用子弹数目为0则无操作,否则播放换弹动作,并且更新子弹数量。 |
| 8 | 调整视线功能 | 鼠标左右移动会更换视线朝向,玩家模型也会根据视线看向不同位置。 |
| 9 | 切换武器功能 | 玩家按键1234可以切换不同武器,如果该栏位没有武器则不作响应 |
| 10 | 释放技能功能 | 玩家E键释放技能有技能冷却,冷却时间会在界面上显示出来。释放技能时实例化技能的预制体,技能释放完毕销毁实例出的物体。 |
| 11 | 判断碰撞减血功能 | 玩家击中别的玩家会在被击中玩家本地减少血量,并通过photonview的同步函数血量将同步到其他玩家的客户端。玩家子弹击中自身会判断为本地返回不扣血。 |
| 12 | 判断胜利功能 | 玩家血量为0会销毁玩家,如果一个阵营玩家数目为0,则会判断对方胜利。 |
| 13 | 地图功能 | 按M键可以查看地图,地图上只可查看己方阵营位置。 |
团队分工
刘洋:程序
徐意:程序
刘涛:策划