FPS射击游戏制作指南
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/fps-shooter-y8h6。
技能介绍
要解决的问题
FPS 射击手感是“能跑”和“好玩”之间的巨大鸿沟。一个第一人称控制器只要接上输入、射线能打到敌人,demo 十分钟就能跑通;但问题接踵而来:TTK 太低玩家觉得不公平,太高又像打海绵;后坐力若是纯随机,玩家学不会压枪,只会觉得枪失控;命中后没有反馈,玩家不确定弹着点;手枪能全地图狙击,说明没有距离衰减。这些看起来像“调参”,实际都是射击模型设计问题。
技能如何工作
Fpsshooter 是组合式(compositional)playbook,不重复教你 3D 节点或 raycast,而是定义射击游戏的核心系统和手感旋钮。
核心循环:扫描 → 锁定目标 → 瞄准开火 → 确认击杀(反馈)→ 转移/换弹/推进。整个体验压在“瞄准-开火”这个微循环是否干脆:视角响应、命中反馈清晰、死亡读数即时。
必备系统:
- 第一人称控制器(WASD/摇杆移动 + 鼠标/摇杆视角,重力、跳跃、下蹲)
- 相机(眼高视角、可配 FOV 与灵敏度、后坐力顶位)
- 射击模型(
hitscan射线和/或弹丸生成,统一命中反馈路径) - 武器与弹药(伤害、射速、弹匣、换弹、切枪)
- 血量与伤害(玩家与敌人共用模型,含爆头倍率)
- 敌人 AI(感知 → 警觉 → 攻击 → 搜索,含掩体与反应延迟)
- 反馈(命中标记、弹孔/粒子、命中音效、屏幕震动、击杀确认)
- 目标(清剿、占领、生存、护送)
手感旋钮:TTK(伤害 × 射速 × 血量三者联动调)、hitscan vs 弹丸、距离伤害衰减(约 20m 内满伤、60m 左右触底)、爆头倍率 1.5–2.0×、可学习后坐力曲线而非纯随机、散布首发精准并随连发增长、换弹作为暴露窗口、手柄瞄准辅助,以及 FOV 与灵敏度必须暴露为选项。
常见坑:视角增量不按 dt 缩放会随帧率漂移灵敏度;纯随机后坐力无法控制;hitscan 无衰减导致全图狙击;无命中反馈玩家无法判断弹着点;TTK 失配(太低抽搐、太高海绵);多人信任客户端会引发作弊和“我先开枪”争议,权威留在服务端并做 lag compensation;不暴露 FOV/灵敏度会造成晕动与可及性失败。
适用边界
- 适用:以“瞄准-射击”为核心动词的第一人称游戏——竞技场射击、战术 FPS、PvE 射击、boomer-shooter。
- 不适用:第三人称/2D 射击可复用射击模型,但相机与控制器需按品类自建;塔防式波次生存请用 tower-defense。
- 相机与角色本体组合
godot-3d-essentials/unreal-cpp-gameplay,本技能负责射击与战斗层。
使用场景
- 从零搭建竞技场射击demo,需要第一人称控制器与即时命中射线。
- 手感测试发现TTK过低被投诉,需要联动调整伤害、射速与血量。
- 枪械后坐力全随机导致玩家无法压枪,需要改为可学习的固定弹道。
- 多人模式出现「我先开枪」争议,需要在服务端做命中判定与延迟补偿。
适合人员
- 独立游戏开发者:已有3D引擎基础,想快速搭出手感扎实的FPS原型。
- 战斗策划:负责TTK与后坐力参数表,需要一套可解释的调参框架。
- 关卡/技术美术:要为武器添加弹孔、命中粒子与屏幕震动等反馈效果。
- 后端工程师:在多人射击项目中实现服务端权威的命中判定逻辑。