【一】项目前端开发需求
1.概述
本项目基于 Unity 引擎开发,最终导出为 WebGL 在浏览器中运行,目标是实现一个多人互动的三维场景小游戏。项目需支持多端适配,尤其是移动端运行环境。功能需求涵盖人物漫游控制、角色选择、与前端页面数据通信、多人同步抢道具等。
2. 功能需求
2.1 人物漫游控制器
• 左侧虚拟摇杆控制人物移动,右侧滑动屏幕旋转视角,要求摇杆位置不固定,用户手指按下位置即为摇杆中心。
• 支持多人同步漫游。
• 支持多端操作,移动端优先。
2.2 角色选择
• 进入游戏场景时 UI 面板点击选择角色
2.3 人物动作
• 支持基本的行走、跑步、跳跃、(拾取)等动作。
• 动作之间需平滑过渡,避免卡顿。
2.4 多人同步
• 实现多人在线互动,人物位置、状态等信息实时同步。
2.5 公屏聊天(非必须)
• 实现多人实时文字聊天功能。
• 表情、图片发送功能为非必须功能,可根据需求后续添加。
2.6 三维模型加载/渲染优化
• 方案待定。(如:LOD 等技术)
2.7 设备运行发热优化方案
• 方案待定。(如:分帧渲染和动态调整帧率,实时监控设备温度,动态调整模型显示精度、渲染距离等。)
2.8 多端适配
• 需适配 PC 端和移动端,确保在不同设备上的流畅运行。
• 自动调整分辨率和 UI 布局,以适应不同屏幕大小。
3. 项目交付要求
• 交付物应包括完整的 Unity 项目源代码,确保可扩展性和可维护性。
• 提供详细的技术文档,包括代码结构说明、关键技术实现方案、API 文档等。
• 需进行全面的跨设备兼容性测试,确保在主流浏览器(如 Chrome、Firefox、Safari、
Edge)中运行稳定。
• 交付后提供至少 1 个月的技术支持,修复 BUG,确保项目顺利运行。
• 源码需无版权争议,使用的第三方库、资源需具备合法授权。
【二】游戏后端开发需求
一)游戏核心玩法
这是一个发红包(代币)的游戏,核心玩法归结如下:
1)用户从小程序中进入,并授权登录,从而获取用户openId、昵称、头像等信息。
2)用户点开发红包(代币)界面,塞钱获取代币进入红包(代币),可设定红包(红包)数量和单个红包的金额。这里有两种模式:
模式A:单人模式,用户不需要进入房间,完成游戏任务可领取一定数量的红包(代币);
模式B:多人在同一个房间内竞技,实时显示排行榜。
3)用户完成红包(代币)金额和数量的设定后,点击确定,完成支付。
4)用户将设置好的小程序链接发送到微信群。
5)微信群中的好友点来该链接后,授权同意方可开始游戏(单人或者多人)
6)游戏在规定的时间或者约束条件下结束,参与者会抢到不同数量的红包(代币)。
7)玩家可以查看自己抢红包(代币)对应的可提现金额,并按照指引打开“平台”网站。
8)玩家微信授权同意登录平台后,在“个人空间”可以选择提现到微信零钱。
二)游戏服务端功能
1)与游戏客户端对接,实现游戏核心玩法(参看详细的策划案,以策划案为准)中相关的功能。
2)与“平台服务端”接口,实现对核心功能的推送和拉取,详见《平台服务端接口说明文档》。
3)凡涉及到充值、红包(代币)、提现、排行榜、登录授权的功能,均需要调用“平台服务端”的接口,并保证数据的完整性和实时性。
4)需要支持两种红包(代币)模式(具体见游戏策划案):
A.单人模式抢红包(代币)
B.多人房间内竞技/闯关抢红包(代币)
5)单人模式抢红包(代币),需要满足如下功能(调用API):
A.更新和获取剩余红包(代币)数量,已抢红包(代币)数量以及对应金额。
B.显示排行榜信息(没有房间概念)
6)多人模式抢红包(代币),需要满足如下性能:
A.每个房间允许参与的玩家数量为2~6人
B.房间内部的玩家之间相互可见,同步动作和位置,彼此靠近会发生碰撞并按照物理规律弹开
C.可同时支持30个以上的房间(大约每个房间5人)
D.服务器可支持200+用户同时线上活动。
E.进入游戏场景的时间不超过10秒钟
7)房间内部玩家可以选取不同的角色模型,角色模型使用Addressable的懒加载模式。
8)“平台服务端”只接受“游戏服务器”的调用,不接受游戏客户端的调用(支付除外)。
9)玩家支付和拆分红包(代币)的信息调用接口同步到“平台服务端”
10)排行榜数据从“平台服务端”获取和更新。
11)每一个红包(代币)只能被抢一次,并实时同步到“平台服务端”。
12)“游戏服务端”与“平台服务端”采用https异步表单通信。
13)“游戏服务端”能够实时监测到用户掉线或者关断的情况。
14)服务器稳定运行,CPU占用率低于60%,不出现过热情况。
15)服务器启动后内存占用稳定,没有剧烈起伏的内存申请和释放,没有内存泄漏。
16)服务器可稳定运行,满载运行中平均一周内故障次数不超过1次。
17)可以方便扩展服务器能力,支持使用Nginx进行负载均衡扩展。
18)“游戏服务端”技术栈:
提供Web服务,支持浏览器访问(客户端最终导出为WebGL)
通信方式:https
web服务:Apache2.4 + Python3.11 + Django4.4
数据库:MySql-5.5
数据缓存(可不使用):Redis
静态资源:支持使用阿里云存储桶。
19)服务器操作系统和硬件情况:
A.操作系统:windows10
B.内存:8G
C.无显卡
三)关于开发协作
A.“平台服务端”对涉及核心功能的部分提供详细的API接口文档。
B.涉及到与“游戏客户端”通信的部分,需要与相应的团队讨论和确定开发接口,并以文档的形式同步到我方,此项作为验收的一部分。
四)项目验收和交付
A.项目开发时间为一个月。
B.完成策划文档中规定的所有功能;
C.交付完整的代码和详细的说明文档,含运维文档。
D.对技术实现方式进行详细的介绍,组织1~2次培训,方便我方人员接收使用。
E.项目在我方成功部署后,将组织15天的测试。在此期间需要及时解决bug并配置完成回归测试。
F.项目上线初期(1个月内),需配合我方完成项目的交接和运营,能及时解答我方遇到的问题。