Ludo Atlas · 类型手册 · 双摇杆射击(Twin-stick Shooter)¶
类型手册 · 第二辑。定位:把「移动」与「瞄准」拆给两只手同时管的射击类型。左杆走位、右杆瞄准,战斗张力来自两条线的并行处理;走位即防御,瞄准即输出。 配套:《游戏设计手册》(核心循环与手感)·《技术实现手册》(同屏性能与对象池)·《关卡设计手册》(战斗空间与遭遇)·《案例研究集》(拆解方法)。 本文不放外链;案例只写公开作品名,数字均为常见参考区间,以自己项目的实测为准。
1. 定位与核心循环¶
一句话定义:双摇杆射击是以双线操作为第一乐趣的射击类型。玩家用一只手负责移动、另一只手负责瞄准与射击,两件事必须同时做好:空间压力用走位回答,火力用瞄准回答。俯视角(或等距视角)是主流形态,因为整个战场与所有威胁同屏可见,双线操作的信息基础才成立。
核心循环用动词环写:
观察威胁 → 走位(拉开距离、找掩体) → 瞄准输出 → 闪避(冲刺/翻滚) → 清场 → 拾取与推进 → 压力升级 → 观察威胁
这个环以秒计量,且两件事并行:高手的画面里没有「先躲完再打」的停顿,只有边走边打。手感是否成立,看的就是玩家能不能在保持输出的同时把走位做对。
单局结构有两种主流包装,共用同一套战斗手感(先验证「一波敌人打起来好不好玩」,再定包装):
- 街机分数型:固定场地上一波接一波,命数耗尽结算;连杀倍率与排行榜是节奏工具,鼓励激进走位。
- 闯关/肉鸽型:房间推进加分支选路,死亡重开,用武器与角色轮换制造「每局不同」。
与相邻类型划边界:
| 相邻类型 | 边界 |
|---|---|
| 幸存者类 | 攻击全自动、玩家只走位;双摇杆把瞄准还给玩家,操作上限高一档 |
| 弹幕射击(shmup) | 卷轴前进、弹幕图案是主体;双摇杆是自由走位,空间与掩体是主体 |
| 俯视角动作 RPG | 等级、装备与数值成长占大头;双摇杆的成长多为武器轮换,数值轻 |
| 平台跑轰 | 重力与跳跃是管理对象;双摇杆在平地上自由移动,纵向余量留给闪避 |
一个自检问题:把手动瞄准换成自动瞄准,游戏还成立吗?若不成立,你做的就是双摇杆;若几乎没差,你要的其实是幸存者类。
2. 玩家体验目标与标杆作品¶
体验目标(按优先级排序):
- 双线掌控:左右手各管一件事,熟练之后「人枪合一」,边退边打像呼吸一样自然。
- 走位即生存:伤害主要靠位置与闪避规避,移动本身就是防御手段,而不是站着对射。
- 清晰可读的爽快:满屏子弹与特效下,威胁与安全区一眼可辨;铺量清场、爆炸连击持续给反馈。
- 再来一把:分数或进度给出下一局的明确目标,死亡到重开以秒计。
标杆作品只取大众熟知样本,宁少勿滥;建议亲手玩过再拆:
| 作品 | 取它什么 |
|---|---|
| 几何战争系列 | 纯街机双摇杆的教科书:无掩体,靠走位、分数与敌人编队;学密度与视觉反馈 |
| 挺进地牢 | 弹幕加翻滚闪避加枪械库;房间模板加程序组装的成熟样本 |
| 元气骑士 | 移动端双虚拟摇杆的样本:触屏适配、房间推进与联机 |
| 地狱潜者(初代) | 俯视角双摇杆加团队协作:误伤机制把瞄准纪律做成了乐趣 |
3. 设计要点¶
3.1 双摇杆操作范式:移动与瞄准分离¶
双摇杆的全部设计都从一条规则长出来:移动方向与射击方向相互独立。玩家可以倒着走输出、横着走输出,正面来敌能用「边退边打」化解,只有多方向包抄才能制造真正的压力。这决定了敌人、刷怪与空间设计的方向(§3.2)。
三种输入设备是三种手感,必须分开调:
| 输入 | 移动 | 瞄准 | 关键调参 |
|---|---|---|---|
| 手柄 | 左摇杆 | 右摇杆,推量即方向 | 死区、瞄准响应曲线(非线性)、辅助强度 |
| 键鼠 | WASD | 鼠标,绝对指向 | 灵敏度、准星可读性、瞄准与开火是否分离 |
| 触屏 | 左虚拟摇杆 | 右虚拟摇杆,或降级为自动瞄准 | 摇杆半径、动态原点、拇指遮挡 |
- 手柄瞄准是相对量:推杆角度对应方向、推量对应快慢,转身比鼠标慢一档。常见补偿是瞄准辅助(方向吸附、子弹判定半径略大于视觉),但辅助要可控,别让玩家觉得「不是我瞄的」。
- 键鼠精度最高;做竞技向 PvP 时与手柄混排会失衡,按输入设备分开匹配,或者干脆不做辅助瞄准。
- 触屏优先回答一个问题:双拇指同时操作是否可持续。主流做法是双虚拟摇杆(动态原点、跟随手指);移动端常见的降级路线是单摇杆加自动瞄准,但那会滑向幸存者类的手感,取舍要想清楚。
- 附加按键控制在三个以内:闪避(§3.2)、武器切换(双武器轮换是常见做法)、一个技能或道具槽。按键越多,双线操作越难维持。
手感旋钮清单:摇杆死区(轻推有反应、松手即停);瞄准曲线(小幅细瞄、大幅速转);方向可视化(枪口朝向、激光指示线、准星造型);开火方式(自动开火少一个按键负担,独立扳机换来控制感与节流)。
3.2 弹幕与移动空间:掩体、闪避与空间压迫¶
空间先定尺寸再定装饰(与《关卡设计手册》的射击/竞技场条目同口径)。俯视角没有迷雾,玩家全程看得见全场,所以掩体的作用与其他射击不同:它切割弹幕、提供喘息与路线选择,不用来藏信息。掩体比例是关键旋钮:太密,战斗退化成站桩打靶;没有掩体,走位压力全压在闪避上。
战斗空间的常用手法:
- 单场战斗的场地以「屏幕数」计,常见 1-2 屏的封闭房间,配少量大块掩体、可破坏物与地形危险(坑、爆炸桶、减速区)。
- 出入口位置决定遭遇形态:单口进出的房间适合防守压力,多口进出的房间天然产生包抄。
闪避是第三个核心动词,是「走位即生存」的载体:一次性位移加短暂无敌(或高减伤),带冷却。参数写清楚:位移距离、动作时长、无敌窗口、能否取消、能否穿过子弹与敌人。翻滚与瞬移冲刺是两种常见实现,前者暴露走位过程(更容易读),后者更干脆。常见的增值设计是「闪避后短暂增强」,把回避动作编进攻防节奏;它会改变全局节奏,先测再加。
空间压迫的手段(压力来源是「活动空间被蚕食」):
- 多方向刷怪:从玩家两侧与背后进场;正面来敌能被「边退边打」化解,包抄才逼出移动。
- 远程封锁与地形收缩:弹幕墙与交叉火力逼玩家换边,场地变窄或持续伤害区给「必须前进」一个硬理由。
- 弹幕可读性:敌方子弹与玩家子弹用色相分离;速度与大小分档,慢速大弹是走位题、快速小弹是反应题;高饱和强调色只留给最危险的东西;无敌状态要有明确视觉反馈。
- 编队节奏:单波遭遇 20-60 秒,2-5 分钟换一次编队或规则;峰值之后给拾取与喘息窗口。
3.3 敌人与武器多样性矩阵¶
多样性不是数量,是每个格子考玩家一件事。敌人按三个轴建矩阵:移动方式、攻击方式、角色定位。填格子之前,先给每个敌人写一句「它考玩家什么」,写不出来的不进游戏。
| 移动方式 | 攻击方式 | 角色 | 考玩家什么 |
|---|---|---|---|
| 直线冲向玩家 | 接触伤害 | 冲锋兵 | 转身输出或闪避的时机 |
| 保持距离游走 | 单发精准弹 | 射手 | 逼近路线与掩体利用 |
| 环绕/绕圈 | 持续弹幕 | 环绕者 | 破圈节奏与清场优先级 |
| 驻守/炮台 | 散射或激光 | 封锁者 | 射界死角与掩体路线 |
| 瞬移/闪现 | 贴身突袭 | 刺客 | 听声与预判、保留闪避 |
| 缓慢逼近 | 自爆或延迟爆 | 炸弹兵 | 击杀顺序与距离管理 |
武器同样按矩阵做,不按数值换皮。每件武器要能回答三个问题:发射形态是什么、弹药经济(无限/弹匣/过热/能量)是什么、它在什么场景里是答案。
| 发射形态 | 手感关键词 | 擅长场景 | 代价 |
|---|---|---|---|
| 单发/点射 | 精准、低容错 | 远程精英、单体 | 清群效率低 |
| 连射/自动 | 稳定、持续 | 中距离压制 | 走位受限 |
| 霰弹/扩散 | 近距高伤 | 贴脸清群 | 拉开距离即失效 |
| 激光/持续束 | 稳定扫射 | 清线与穿透 | 需维持射线,走位受限 |
| 爆炸/范围 | 高伤、波及 | 拥挤场合 | 自伤与视觉干扰 |
| 投射/弹射/追踪 | 间接、爽感强 | 复杂空间与后期 | 参数越多越难平衡 |
两套矩阵做交叉校验:列出「玩家的一本通最优解」,若存在一件武器通吃所有敌人、或一个敌人逼死所有武器,矩阵就失败了。平衡的记账方式是把矩阵当表管理(数值表方法见《游戏设计手册》)。
3.4 程序生成与手制关卡的选择¶
三种结构,成本与收益都很明确:
| 结构 | 代表做法 | 内容成本 | 适用 |
|---|---|---|---|
| 固定场地加波次 | 几何战争式:一张图打穿排行榜 | 最低 | 街机分数型、重复挑战 |
| 房间模板加程序组装 | 挺进地牢式:手制房间进池,随机拼接 | 中 | 肉鸽型,重复可玩性优先 |
| 手制关卡与遭遇 | 线性关卡或手工编排的波次,节奏精确 | 最高 | 叙事、演出、教学段 |
决策顺序:先问重玩价值从哪来。来自「同一张图刷新纪录」就做固定场地;来自「每局开局都不同」就做程序生成;来自「精确的演出节奏」就手制。多数成功项目的答案是折中:空间交给生成,节奏交给手制(房间模板手制、组装随机、掉落随机)。
程序生成的三个底线,缺一个都会收到差评:
- 连通性与可玩性校验:出入口可达、无死局、无被掩体堵死的刷怪点;生成后跑自动校验层,不合格重生成。
- 可玩性打分:给每个生成结果按掩体比例、空间开阔度、出入口数量打分,低于阈值就重掷。这个分数就是「这间房值不值得打」。
- 难度预算:给遭遇定成本点数(敌人组合点数之和),生成时受曲线约束,而不是听天由命。
- 方差要小:双摇杆对空间精度敏感,掩体位置差一格体验就变样;宁可「模板多、变化细」,不要「随机大、崩坏多」。
4. 技术要点¶
4.1 同屏数量与性能预算¶
双摇杆的性能压力主要不在敌人,在子弹与特效:每个敌人一次打出数发、场上几十个敌人,再加上玩家火力与爆炸,子弹对象轻松到几百甚至上千。
- 先定预算再定规模:在目标机上实测「若干敌人加若干子弹」下的帧耗时,再反推内容上限。参考量级:PC 同屏敌人几十到两百、子弹数百到一千五;移动端各砍半再算。以实测为准,别拿别人的数字当承诺。
- 帧预算切分:弹幕逻辑、碰撞、渲染各划上限(例如 60 FPS 的 16.6ms 里,游戏逻辑一侧先按不超过一半安排),哪项翻倍先查哪项。没有测量不做优化(工程方法与工具见《技术实现手册》)。
- 六个手段按顺序上:对象池(子弹、敌人、粒子、伤害数字全部预分配);空间网格做邻居查询(不做两两全测);子弹用圆形加便宜的形状检测,不给完整刚体物理;伤害累积到帧末批量结算;同类精灵合并批次绘制,共享图集与材质;密度过高时对边缘对象做视觉降级(缩小、模糊、去拖尾)。
4.2 瞄准与输入的工程细节¶
- 摇杆瞄准是连续量,输入延迟与曲线直接决定手感:输入到画面出子弹的整条链路按帧检查,目标 2-3 帧以内。
- 瞄准要有前馈与可视性:给枪口方向一条淡指示线、给准星清晰造型,让玩家看得见自己瞄哪;模糊的朝向提示会让新手频繁打空。
- 辅助与触屏分开处理:手柄辅助做小角度拉正,不做全套自动瞄准,判定半径与视觉的差值要能一眼解释;触屏的动态原点摇杆、界面让步与按键布局全部真机实测。
4.3 数据驱动与调试工具¶
- 敌人、武器、波次、房间池全部进数值表,改数值不改代码(方法见《游戏设计手册》)。双摇杆的平衡工作量集中在表上,表就是项目资产。
- 尽早做三类调试工具:训练场(刷指定敌人、无敌、慢动作);子弹与碰撞的可视化开关;命中与 DPS 的统计面板。每次改动留档(改了哪张表、哪几个值),否则两个月后没人说得清「为什么现在是这样」。
5. 内容量与工作量参考¶
以下为同类项目的常见量级,用于估算范围,不构成承诺。
| 类别 | 最小可玩 | 舒适规模 | 备注 |
|---|---|---|---|
| 武器 | 6-8 | 12-20 | 每件一个专属场景,不做数值换皮 |
| 敌人 | 6-8 | 12-16 加精英 | 每 2-3 波引入一种新行为 |
| 场地/房间 | 1 张固定场地 | 20-40 个房间模板 | 生成型的模板也是手制的 |
| Boss | 1 | 3-5 | 每个流程段落一个 |
| 玩家角色 | 1 | 2-4 | 差异要改玩法,不只是数值 |
工时参考(单人开发量级):移动加瞄准加射击手感成型 2-4 周;单件敌人 0.5-3 天、单件武器 0.5-2 天;生成器加校验层 2-4 周;数值调参到可发布 1-2 个月(贯穿全程);性能优化 2-4 周(分散进行)。
项目形态的外推锚点:街机分数型小作品(一张场地、一套波次、计分与排行榜)单人 2-4 个月量级;房间制肉鸽型单人 6-18 个月量级,成本大头在内容(武器、敌人、模板)与平衡。范围失控的处理顺序与砍功能清单见《独立开发生存手册》。
美术注记:双摇杆的角色要朝任意方向开火,朝向表现是这类项目特有的成本项。像素风常用 8 向或旋转贴图;越往写实走,全向转身的动画成本越高。子弹与特效是小尺寸、高复用资产,值得早期就定规格。
6. 第一个原型怎么起步¶
目标:2 周做出可玩的一波战斗,验证「边躲边打的循环愿不愿意重复」。不碰美术、剧情、存档与商店。
- (半天)一张空场地加一个能走的圆:移动加减速、碰撞半径略小于视觉,先把「愿意来回跑」调出来。
- (两天)射击、敌人与闪避:子弹池化,命中四件套(闪白、击退、伤害数字、音效)一次做齐;加一种「必须靠闪避躲」的快速弹,无敌窗口用可视化反馈说清楚。
- (一天半)敌人编队与波次表:冲锋、射手、环绕三种敌人从不同方向进场;约 2 分钟一波、密度爬坡、一个高峰加一个低谷,改表不改代码。
- (半天)分数与结算:连杀倍率、死亡结算页、30 秒内能重开下一局。
- (一天)性能体检:拉满 500 发子弹加 50 个敌人,用池化与网格碰撞修到稳帧。
- 找 3-5 个陌生人试玩,只记四个数字:第一次死亡在第几波、闪避使用频率、「我以为瞄中了却没中」的次数、有没有人主动再开一局。
成功标准(全部可观察):
- 拿掉全部美术与音效,测试者仍愿意连玩 10 分钟以上,而且是主动重开、不是被请求再试。
- 「没瞄中」类抱怨每人不超过 1 次,判定与视觉基本一致。
- 单局 3-5 分钟内出现一次「被包围、突围、反杀」的完整高潮。
瞄准与移动两处手感冻结之前,不要铺内容。这个类型的返工全在「手感一改,敌人与关卡全部重调」上。
7. 常见坑¶
- 手感未定就堆内容,且只用一种输入设备调:死区、曲线、延迟都没确认,敌人做一屋子也留不住人。先做训练场,三种输入分开调、分开测。
- 掩体太密:俯视角里掩体同时挡视野与挡弹道,密集小块会把战斗打成站桩打靶;稀疏大块优先。
- 走位失去意义:没有闪避无敌窗口、伤害全靠血量硬吃,玩法塌成对射。闪避与空间必须是主要防御手段。
- 玩家子弹与敌方子弹分不清:满屏混战靠猜。色相分层、形状区分,强调色只给危险物。
- 敌人与武器的矩阵填不满:一种敌人刷满屏,或一件武器通吃,两种都是假多样性。按矩阵格逐项检查专属场景。
- 刷新点不给预告:敌人在背后贴脸刷出,无预兆的伤害是差评重灾区。刷怪留出生提示或安全边。
- 程序生成没有校验层:生成出堵死、无可玩性的房间。连通性校验加可玩性打分,缺一不可。
- 同屏无预算:子弹数量失控后才开始优化,只能砍内容。预算先行、池化先行。
- 难度只靠数值:血量与伤害的乘法解决不了重复感。先换编队、换空间、换敌人组合。
- 死亡到重开太久:结算加读盘加跑图超过半分钟,爽感直接断线。把重开压进 30 秒以内。
延伸阅读¶
- 《游戏设计手册》:核心循环、数值表方法与手感清单的底稿。
- 《技术实现手册》:同屏性能、对象池与碰撞分区的工程细节,对应本页第 4 节。
- 《关卡设计手册》:战斗空间、强度曲线与白盒流程,对应本页 §3.2。
- 《案例研究集》:公开复盘里的战斗手感与范围教训,拆作品时对照。
- 《独立开发生存手册》:范围控制与排期,与第 5 节互为补充。
练习:把几何战争的一个编队、挺进地牢的一间房、元气骑士的一波关卡各拆一遍,记录「威胁从哪来、玩家的答案是什么」;再按第 6 节做出两分钟一波的原型,改三版编队表,对比各自的死亡分布。
双摇杆的胜负手只有一个:玩家在第 3 分钟是否打出了「边走边打」的身体记忆。所有系统都在服务这件事。