1、立项原因,旨在解决什么产品问题
独立开发者与小团队用 Godot、Unity 等引擎完成 HTML5 游戏后,普遍缺少轻量的发布与试玩渠道:商业平台审核门槛高、分成比例高、部署流程复杂;自建站点又要自行解决上传解压、文件隔离、审核上架、静态资源托管与访问加速等一整套工程问题。
本项目旨在提供一套"开箱即用"的网页游戏发布与试玩方案:作者上传游戏包即可一键发布,游客免注册免登录即点即玩,管理员后台审核上架;并重点解决 Godot 引擎 Web 导出(WASM + PCK)在浏览器端的多线程兼容与首屏加载性能问题。
2、行业场景,业务背景
随着 Godot、Unity 等引擎支持一键导出 Web 版本,HTML5 游戏数量快速增长,但网页游戏包体普遍较大(数十 MB),且 Godot 4 依赖 SharedArrayBuffer 与跨域隔离(COOP/COEP),对托管环境有特殊要求,普通虚拟主机或静态托管难以直接承载。
平台面向独立游戏作者与休闲玩家两类角色:作者需要一个上架快、审核可控、数据自主的发布渠道;玩家希望打开网页即可游玩,无需下载安装。项目已上线运行并承载多款 Godot 游戏,完整跑通了从上传、审核到在线试玩的业务闭环。 网站地址 aigame.ltd
1、项目有哪些具体功能模块
用户模块:邮箱注册 / 登录、JWT 登录态、个人中心、修改密码
游戏上传模块:ZIP / 文件夹 / 多文件三种上传方式、入口文件自动识别、封面设置、我的作品、删除
审核模块:待审游戏列表、通过 / 驳回(含驳回原因)、操作日志留痕
游玩模块:游戏大厅(关键词搜索、最新 / 最热排序、分页加载)、卡片详情弹窗、免登录即点即玩(自动全屏)、游玩次数统计
安全与运维模块:上传安全校验、游戏运行隔离、健康检查、一键部署与服务启停管理
2、项目的主要功能描述
游客无需注册即可在大厅浏览、搜索并直接进入游戏,进入后自动全屏并自动接管键盘焦点,真正做到"即点即玩";
作者上传游戏压缩包或多文件后,系统自动解压、过滤非法文件、识别 HTML 入口并按需生成封面,提交后进入审核队列;
管理员在后台审核通过或驳回并填写原因,通过后游戏即在大厅展示,游玩次数自动累计;
每个游戏存放于独立目录、运行于独立 iframe 沙箱,未过审游戏仅作者与管理员可预览,兼顾平台安全与作者隐私。
架构与技术栈:前后端同源部署的单体架构 —— 浏览器 → Nginx(HTTPS / HTTP2 / 反向代理 / gzip)→ Node.js(Express)应用 → MySQL,游戏文件按目录隔离托管。
后端实现:基于 Node.js + Express 提供 RESTful API;multer 处理多形态文件上传;adm-zip 实现安全解压(zip-slip 目录穿越防护 + 扩展名白名单 + 体积与数量限制);JWT(httpOnly Cookie)鉴权、bcrypt 密码加密、CSRF 校验与接口限流;MySQL 采用连接池管理,支持自动建库建表与存量库增量迁移,服务启动即完成数据层自愈。
前端实现:原生 JavaScript(无框架)+ 自绘 SVG 图标系统,实现游戏大厅、详情弹窗、全屏游玩页与管理后台,页面首屏轻量、无构建依赖。
兼容与隔离:为 Godot Web 导出配置 COOP/COEP 跨域隔离响应头以启用 SharedArrayBuffer 多线程渲染;游戏以 iframe sandbox 分级授权(未过审强沙箱 / 已过审完整能力);所有文件访问路径经服务端强制约束在游戏自身目录内。
性能优化:通过实测定位首屏瓶颈为服务器带宽与静态资源未压缩,落地 Nginx 反向代理 gzip(WASM 体积压缩约 74%)与分层缓存策略(max-age + ETag),将 65MB 游戏首次加载耗时由 148 秒优化至 80 秒。
部署与运维:部署于阿里云 ECS(Linux / Anolis OS),使用 Nginx 反向代理与 HTTPS;服务托管由 systemd 迁移至宝塔 Node 项目管理器,实现可视化启停与开机自启;编写 SSH 一键部署脚本(增量同步、依赖变更检测、服务重启、健康检查轮询),并打通面板开放 API 实现运维自动
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!

下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论