我的世界大战僵尸 MVZ 443
这篇文章将介绍 MVZ443 游戏
更多截图介绍见 MC大战僵尸 443版本 | PVZ同人创作论坛
Intro
好久不见, 自从去年8月,blogger这里就一直闲置了,这期间我尝试了自建blog, 但是因为精力所限没有维护,原来的server到期云端文章就丢失了,同时本地的计算机也重新装机也是祸不单行,这期间我也没有写多少文章,因此影响不是很大.
在这段时间内,除了自建Blog,我还大量的学习了前端知识,现在可以真正自豪地称呼自己是全栈工程师了,另外我成功应聘了腾讯的前端开发实习生.可能下半年更新blog的机会不会太多了.
运用所学,我在2025冬做了私密图纸音乐房间,你可以在另外一篇博文中看到私密图纸音乐室 ~ 绯境之外~Outside of Scarlet,
以及春季以来做的本篇文章索要介绍的MVZ443,和另外一个提供给同学的计算机设计大赛项目的前端页面.
基础架构
说实话我还是想介绍更多游戏性的内容,因此这方面一笔带过.
我使用 phaserjs/template-react-ts: A Phaser 3 TypeScript project template that demonstrates React communication and uses Vite for bundling 框架, 该框架提供了Phaser3和React库的沟通桥梁.
来一点Claude生成的概述
技术栈
前端:React + TypeScript + Phaser.js游戏引擎
网络通信:WebSocket实现联机功能
后端:Go语言服务器
存储:IndexedDB本地存储
构建工具:Vite
项目结构
前端核心架构
React层:
components/ - UI组件(菜单、设置、商店等)
context/
- 全局状态管理(存档、游戏状态等)DocFrame.tsx - 主界面框架组件
游戏层:
game/scenes/ - Phaser游戏场景
game/models/ - 游戏实体模型(植物、僵尸等)
game/presets/ - 预设配置(不同单位类型)
game/utils/ - 游戏辅助工具(网格、位置计算等)
game/sprite/ - 精灵动画系统
网络层:
utils/net/
- WebSocket通信与帧同步
核心系统
游戏实体系统:
管理器系统:
Gardener - 管理植物种植、铲除和星之碎片
GridClan - 管理格子规则和交互
DepthManager - 管理图层深度
联机系统:
帧同步机制
房间创建和加入
消息队列发送和接收
存档系统:
SaveManager - 管理游戏进度
支持导入导出JSON格式存档
后端架构
联机服务器:
Go语言实现的WebSocket服务器
支持房间管理和帧同步
支持SSL证书配置
关卡编辑器:
独立的Go语言GUI工具
用于编辑关卡数据(波次、奖励等)
特色功能
游戏玩法:
多种植物和僵尸类型
升级系统和技能系统
星之碎片特殊能力
UI体验:
3D卡片效果
翻页和滑动动画
响应式设计适配PC和移动设备
联机模式:
支持多人同时游戏
公共服务器和自建服务器
房间管理系统
其他特性:
多语言支持
图鉴系统
商店和进度系统
游戏性
局外养成
这次我参考了小时候非常爱玩的美食大战老鼠, 因此有了和其他植物大战僵尸改版风格迥异的局外养成系统.这里的养成每几级可以解锁器械的精英能力,当然每一级都可以很微小地提高器械的基础能力.
当然这里的养成不是为了逼迫用户氪金hhh(毕竟我这个是公益免费游戏,说句难听的,想作弊可以直接下载json存档修改), 我的目的是想让前期的器械在后期也可以获得较高的出场率,因为前期的器械升级的难度肯定更低.
联机
这应该是这款游戏最最最独特的一点了,我学习了帧同步的机制,爆改了游戏逻辑,另外开发配套的服务端, 终于获得了所有植物大战僵尸改版没有的联机模式!!
当然这套联机模组由于部分限制,比如由于历史技术债,我的游戏的画面的绘图是和设置选择的分辨率密切相关, 所有物品的偏移都是和分辨率有关,因此为了状态同步必须所有玩家都设置相同的分辨率.
除此之外,我个人觉得是一点影响游戏体验的缺点都没有了,另外我还根据帧同步机制封装了新的timer替换scene.timer
, 避免使用浏览器setTimeOut
api,而是改用服务器帧(固定的delta)驱动定时器和物理世界, 做到了完全的同步场景状态.
当然视觉看来,用的是time.Now系列真实时钟,因此视觉帧是平滑的不受影响.
动画
这不是我的特长,但是我确实为了完成这个前无古人借鉴的html版PVZ,做了很多的动画...最让我头痛的巨人僵尸(突变僵尸),和boss的各种关节真的很烦...
平衡
真的不会做啊,但是真的有借鉴别人的数值.
Final
来点游戏截图吧
预计五月份时候会发布正式版前最后一个体验版的最后一个part, 真的不是套娃... 做Boss什么的想想就让人头痛
更多的话写进游戏文档中了,可以去看看
0 评论:
发表评论