1104 字
6 分钟
零区冲突 - 浏览器里的 3D 多人在线混战

零区冲突#

打开链接就能打#

最近把一款 3D 第一人称多人在线混战射击游戏部署上线了,取名 零区冲突(英文名仍保留 ZONE ZERO / NEON ARENA 的味道)。

不用注册,不用下载客户端,浏览器打开就能进同一房间开打:

http://175.178.221.224:3000/

多开几个标签页,或者喊朋友一起点同一个地址,就能体验联机混战。

这游戏玩起来什么样#

开局只有拳头,随机地点出生。场地上有武器拾取点、投掷物、医疗包、各种增益道具,还有会被打爆的红色油桶——炸起来会连锁,别站太近。

整体是一张 96×96 的大地图,两处高地平台加外围掩体,可以卡点,也可以用手雷洗地。地图还有 10 分钟一昼夜 循环,深夜时霓虹灯柱会亮起来,左上角有时段指示。

武器与道具#

类型内容
近战拳头 → 小刀 / 长刀 / 铁锤
枪械手枪 / 机枪 / 狙击枪(右键开镜)
投掷物手雷 / 闪光弹 / 烟雾弹(三选一,有冷却)
装备医疗包、防弹衣、疾风靴(永久叠移速)
状态疾速、狂暴、暴击、隐身、丧尸模式、弹跳、护盾……

备弹是有限的:手枪 156 发、机枪 360 发、狙击 35 发。打空弹匣会自动换弹,备弹用光后枪还在手里,得自己去武器点补——这点和很多 FPS 不太一样,玩起来会更「抢资源」一点。

四种 BOSS#

同场只会刷一只,击杀拿金币、满血和随机增益,助攻也有奖励:

  • 🪨 熔岩魔像 — 近战重击 + 火球
  • 🗡️ 暗影刺客 — 高速突进,会闪到你身后
  • 🤖 钢铁暴君 — 1400 血重装,弹幕 + 三连火箭
  • 💀 虚空巫妖 — 追踪法球 + 脚下延迟紫圈,看到圈赶紧跑

西北角还有 神秘商人,用击杀攒的金币买外观(帽子、披风、武器光效等),悬停就能 3D 试穿,按昵称永久保存。

操作说明#

桌面端#

按键功能
WASD / 空格移动 / 跳跃
鼠标左键攻击 / 射击
鼠标右键狙击开镜
1 / 2 / 3 或滚轮切换近战 / 枪械 / 投掷物
V第一 / 第三人称
R换弹
E商店(靠近商人时)
ESC设置
回车 / Tab聊天 / 排行榜

阵亡后可以 观战(自由飞行或跟随其他玩家),随时回车重新加入战斗。

🖱️ 小提示:鼠标回报率过高(比如 1000Hz)可能导致视角突然飘逸,建议在驱动或鼠标设置里降到 125–500Hz

手机端#

同一个 URL,手机浏览器也能和 PC 玩家同场竞技:

  • 左下虚拟摇杆移动,屏幕其余区域拖拽视角
  • 右下角开火 / 跳跃 / 狙击镜(持狙击枪时出现)
  • 武器栏点按切换,再点一次枪械格 = 换弹

触屏端有 7° 锥角内的柔性辅助瞄准(最多纠偏 35%),用来补偿手指精度,但服务器判定对两端完全一致,没有后门。视距和雾距离也不会因为手机而缩短——看得多远,两端必须一样

技术实现(简要)#

模块方案
服务端Node.js + Express + WebSocket,单房间权威服务器
客户端Three.js,模型 / 贴图 / 音效全部程序化生成,零外部资源
持久化排行榜与玩家档案(金币、外观)按昵称保存在服务端
反作弊移动 / 射速 / 限速 / 瞄准统计,阶梯处置(纠正 → 警告 → 踢出 → 封禁)

伤害、拾取、购买全部在服务端裁决,客户端只发「请求」。命中反馈做了整条链路:视角弹簧回弹、近战前顶、受击后仰、打墙火花、爆头准星动画等,都是客户端表现层,不影响服务端公平性。

本地跑也很简单:

Terminal window
npm install
npm start # 默认 http://localhost:3000

写在最后#

这是我在 game-collection 系列里做得最完整的一款联机对战:打开即玩、跨端同场、有 BOSS 有商店有排行榜。如果你有空,点链接进来打两局,欢迎反馈手感、平衡性或 bug。

下一篇可能会单独写写打击感怎么调、反作弊怎么接,以及移动端适配踩过哪些坑。

零区冲突 - 浏览器里的 3D 多人在线混战
http://blog.zard.loc.cc/posts/zone-zero-conflict/
作者
Zard
发布于
2026-07-06
许可协议
CC BY-NC-SA 4.0
评论