复盘《吸血鬼幸存者》早期原型如何用“方块”验证
前言:当“好玩”脱离了“好看”
现在的游戏圈,我们见过太多画质炸裂但玩起来像“上班”的 3A 大作。反观几年前,《吸血鬼幸存者》用几千块钱的开发成本,撬动了全球数百万份的销量,并开创了名为“Survivor-like”的新品类。很多人以为 VS 的成功是运气,其实不然。VS 的开发者 Luca Galante (Poncle) 在做这款游戏之前,是一名博彩游戏(Slot Machine)的前端开发者。他最擅长的不是渲染光影,而是设计多巴胺的释放频率。VS 的早期原型非常简陋,简陋到甚至没有原本的美术素材。但正是这个简陋的原型,验证了一个价值连城的核心机制——“移动即生存,静止即死亡”的逆向弹幕体验。我们就来拆解这个原型,看看如何在没有美术资源的情况下,用几行代码和几个色块,验证出核心玩法的“含金量”。
第一阶段:原型考古
早在上架 Steam 之前,VS 其实是一个基于浏览器的 HTML5 游戏,使用的是轻量级框架 Phaser.js。
1. 核心灵感的验证
Luca 想要验证一个点子:如果把《Magic Survival》(魔法生存)的玩法,结合《恶魔城》的视觉风格,再加上博彩游戏的“开箱”爽感,会发生什么? 在原型阶段,他并没有去画吸血鬼,而是直接花费约 10 英镑购买了一个名为 "Mindchamber" 的复古素材包。但这不重要,重要的是他如何处理“屏幕上的拥挤感”。
2. 技术选型的逻辑
为什么原型用 HTML5?因为快。
- 无编译时间:改一行代码,F5 刷新浏览器就能跑。
- 分享极速:发个链接给朋友就能测,不需要下载安装包。 这是独立开发者做原型的首选思路:不要打开 Unity/Unreal,先用最轻的工具把逻辑跑通。

图注:VS 早期的 Web 版截图。画面中使用了极其粗糙的像素素材,UI 简陋,满屏都是 debug 数据,但“怪物海”的雏形已经显现。 目的:展示原型阶段“功能大于形式”的原则。
第二阶段:如何用“方块”验证割草感?
很多新手开发者认为,“割草感”来自于酷炫的粒子特效 错。 在 VS 的原型中,割草感来自于三个数学逻辑的耦合:密度、数值跳动、拾取反馈。即使你把怪物换成红色的方块,把主角换成蓝色的方块,只要满足以下逻辑,爽感依然存在。
实操步骤:如何在没有任何美术的情况下验证爽感?
1. 极简 AI 寻路逻辑 (The Chase)
VS 的怪物 AI 笨得令人发指,但必须笨。
- 逻辑:每一帧,怪物坐标向玩家坐标移动
Speed * DeltaTime。 - 关键点:不要做避障! 不要用 NavMesh!
- 怪物的“叠罗汉”和“挤压感”正是压迫感的来源。如果怪物都会智能绕路,CPU 算不过来,且压迫感会骤降。
- 原型验证标准:在屏幕上生成 500 个红点,让它们无脑追你。如果你感到“紧张但可控”,原型就成了一半。
2. 数值反馈的“烟花效应” (Number Pop-ups)
这是博彩游戏设计师的绝活。伤害数字不仅仅是信息,它是视觉奖励。
- 视觉逻辑:伤害数字不是简单的显示,而是像喷泉一样弹射出来。
- 层级逻辑:
- 大数字覆盖小数字。
- 暴击数字必须变色、变大、停留时间变长。
- 原型验证标准:当你的蓝色方块碰到红色方块堆时,屏幕上是否瞬间炸开了一片数字云?如果是,即便没有音效,你的大脑也会脑补出打击感。
3. 经验宝石的“吸尘器”体验 (The Vacuum)
这是 VS 区别于传统射击游戏的核心——移动不是为了躲避,而是为了贪婪。
- 逻辑:怪物死后留下的不是尸体,是“经验点”(可以用绿色小方块代替)。
- 爽点验证:设计一个“磁铁”道具。当你吃到磁铁,满屏的绿色方块瞬间向你飞来,并且播放高频的“叮叮叮”音效(参考老虎机吐币的声音)。
- 心理学原理:这在心理学上叫 Variable Ratio Schedule (变率强化),你永远不知道下一秒会吸进多少经验。

图注:展示“吸铁石”效果触发瞬间。大量经验宝石(XP Gems)形成拖尾飞向玩家,这是游戏中多巴胺分泌的最高峰时刻之一。 目的:解析视觉反馈如何强化数值成长的快感。
第三阶段:如何在浏览器里跑 1000 个方块?
在原型阶段,如果你发现游戏卡顿,那玩法的验证就失效了。Luca 在早期开发日志中提到,即使是 Phaser.js,也需要优化。
1. 对象池
这是必须的。
- 错误做法:每秒
new100 个怪物,死的时候destroy。这会导致垃圾回收(GC)卡顿。 - 正确做法:预先生成 2000 个“红色方块”隐藏起来。
- 怪物生成 = 从池子里拿出来,设为可见,重置坐标。
- 怪物死亡 = 设为不可见,扔回池子。
- 验证:打开浏览器的 Performance 面板,GC 线应该是平的。
2. 碰撞检测的“偷懒”
不要用复杂的物理引擎(如 Box2D)。
- 原型做法:简单的距离判断。
if (Distance(Player, Enemy) < Radius)-> 判定碰撞。- 这比计算矩形碰撞快 10 倍,足以支撑同屏 1000+ 单位。
第四阶段:节奏控制
有了方块和数字,最后一步是调整刷怪表 (Spawn Wave)。一个好的原型,不能一直是高压。
刷怪配置表 (Excel 模拟)
你需要建立一个简单的 CSV 表格:
| 时间 (秒) | 怪物类型 | 数量 | AI 行为 | 体验目标 |
|---|---|---|---|---|
| 0-60 | 弱鸡红方块 | 少量 | 慢速追踪 | 建立自信 |
| 60-120 | 快速蓝方块 | 中量 | 快速包围 | 制造压力 |
| 120-130 | 精英大方块 | 1个 | 极高血量 | BOSS战/卡点 |
| 130-150 | 超多弱红方块 | 海量 | 无脑送死 | 释放压力/割草 |
验证方法:不用看数据,自己玩。如果在第 2 分钟你手心出汗,在第 2 分 30 秒你长舒一口气觉得“爽”,那节奏就对了。
结语
《吸血鬼幸存者》的成功告诉我们:在验证玩法乐趣的阶段,美术资产不仅是多余的,甚至可能是干扰项。
- 如果你用方块代替僵尸,玩家依然能玩 30 分钟停不下来,那你加上美术后就是神作。
- 如果你用方块觉得无聊,那就算你请来暴雪的美术团队,它依然是个无聊的“精致垃圾”。
对于独立开发者而言,敢于用最丑的原型去验证最野的想法,才是 2026 年生存的第一法则。
参考资料与延伸阅读:
- Poncle Itch.io Devlog - 开发者早期日志,记录了 Phaser.js 的开发历程。
- Noclip: The Making of Vampire Survivors - 纪录片,详细讲述了博彩心理学在游戏中的应用。
- Phaser 3 Examples: Object Pooling - 技术实现参考。
Tags: #独立游戏 #吸血鬼幸存者 #原型开发 #游戏设计 #割草游戏 #PhaserJS #游戏复盘#



