Header image for DdD

DdD

Prompt

一、项目基本信息(技术要求) ● 类型:俯视角竞技场生存射击 + Roguelite 构筑(类似吸血鬼幸存者的玩法框架,但强调「商店购买+武器合成」而不是自动掉落升级) ● 技术栈:纯前端,HTML5 Canvas 2D + 原生 JavaScript,不依赖任何游戏引擎/打包工具,浏览器直接打开就能玩 ● 文件结构:index.html + style.css + 若干 js/ 文件(见第十二节),不要求单文件,但也可以先用单 HTML 文件快速出一版能玩的 ● 存档:本局内数据用内存变量即可;如果要做「局外角色解锁进度」这类跨局存档,用 localStorage(如果是在 Claude Artifact 里跑就不能用 localStorage,改成部署成独立网页文件后再加) ● 画布:建议 16:9,如 1280×720,做好窗口缩放适配 ● 美术:先用 Canvas 绘制简单几何图形/纯色像素小人代替角色和敌人,跑通玩法后再考虑用 AI 生成图片素材替换 ● 项目命名:给自己的复刻项目起一个原创名字(如「薯仔求生」「马铃薯突围」),不要直接用「Brotato/土豆兄弟」作为项目名或角色名 二、核心玩法循环 • 主菜单 → 选择角色 → 选择难度(0~5 档)→ 进入战斗 ● 一局游戏由 N 波组成(默认 20 波),每波持续 20~90 秒(随波数递增),本波内敌人持续刷新、逐渐增多变强,玩家在场地内跑动躲避 + 输出 ● 每波结束进入商店阶段:展示若干随机武器/道具(价格随波数上升),可以花材料重随商店、锁定某件商品保留到下次刷新、卖出已有武器/道具换回部分材料 ● 击杀敌人掉落材料(相当于经验值,攒够升级,升级时四选一随机属性词条,可花材料刷新候选)和少量宝箱(直接开出一件随机道具) ● 首领波:每隔若干波(如第 5/10/15/20 波)设计成首领波,敌人强度显著提升或刷出独特首领 ● 打完全部波次 = 胜利;生命值归零 = 失败;结算界面展示存活时间、击杀数、总伤害等数据 三、操作与视角 ● 俯视角,角色始终在屏幕中心附近,场地随移动滚动,边界阻挡角色 ● 移动:WASD / 方向键,8 方向 ● 攻击:默认自动索敌自动开火(每件武器按自己的攻速独立开火,优先打最近的敌人),设置里提供「手动瞄准」开关,开启后鼠标指方向、点击/按住开火 ● 商店购买/锁定/出售、升级词条选择都用鼠标点击交互 四、属性系统(build 的核心,尽量还原原版的复杂度) 建议做 15~16 项贯穿全局的角色属性,具体数值区间自定、测试后再调平衡: 生存类 ● 最大生命值 ● 生命回复:每隔固定秒数按最大生命值百分比回血 ● 生命偷取:受伤/攻击时按点数对应概率触发回复固定量生命 ● 护甲:非线性减伤公式(如 减伤% = 护甲/(护甲+15),系数自定,边际递减) ● 闪避:一定概率完全免疫本次伤害,设上限(如 60%)防止无敌 输出类 ● 总体伤害加成(百分比,影响所有伤害来源) ● 近战伤害 / 远程伤害(点数,分别加到对应类型武器基础伤害上) ● 属性伤害(点数,加到燃烧/中毒等持续伤害效果上) ● 爆炸伤害(点数或百分比,影响炸弹/火箭筒类范围武器) ● 攻击速度(百分比,缩短开火间隔) ● 暴击率 / 暴击伤害(可选) ● 射程(远程武器最大攻击距离) ● 击退(命中后把敌人击退的距离) 经济与特殊类 ● 幸运:影响商店刷出高稀有度商品的概率、敌人掉落宝箱的概率 ● 收获:每波结束额外获得固定材料收入 ● 工程:加成炮台/地雷类武器的伤害和血量,独立于「总体伤害」,走单独数值线 ● 速度:移动速度,兼具防御作用(跑位躲伤害) 设计原则:把「总体伤害/近战/远程/属性/爆炸/工程」设计成互相独立的数值轴,让不同角色和构筑可以专精不同轴线,避免所有角色最优解趋同。 五、角色系统 先设计 10~15 个原创角色(对应原版「几十个」的精简版,之后再扩),每个角色包含: ● 初始属性加成/减成(例:某角色远程伤害初始+,但生命上限-;某角色移速+,但材料收入只能靠固定收益,不能拾取) ● 1 件或多件专属初始武器 部分角色设计特殊机制,用来对应「单手打/疯狂攻击/幸运系/法师」这类差异化流派,比如: ○ 只能装备 1 件武器但威力翻倍的「单手流」角色 ○ 无法通过升级加点、只能靠道具变强的角色 ○ 击杀敌人有概率召唤援军/放置陷阱的角色 默认解锁 2~3 个角色,其余通过局外目标解锁(如某角色通关 1 局解锁下一个),先做一份简化解锁清单即可 六、武器系统 ● 玩家最多同时装备 6 件武器(6 个槽位) ● 武器分近战 / 远程 / 特殊(炮台、地雷等不占用常规开火逻辑)三大类 ● 每件武器包含:等级(1~4 级,同名同级武器买到第二把会自动合并升级为下一级,不占用额外槽位)、基础伤害、攻速、射程(远程)、附加效果(击退/暴击/穿透/溅射/持续燃烧等) ● 武器稀有度分 普通(白) / 优秀(蓝) / 稀有(紫) / 传说(橙) 四档,稀有度越高基础数值越强、越晚期波次才会在商店出现 ● 先设计 20~30 把原创武器打底,覆盖:手枪类、冲锋枪类、霰弹类、狙击类、火箭/炸弹类、火焰喷射类、近战刀类、近战锤/棒类、法杖/魔法类、炮台/地雷类,之后再扩充 七、道具系统 ● 道具不占武器槽位,是纯属性加成/特殊效果的被动装备,数量上限设高一些(如 10~12 件) ● 稀有度同武器四档,很多道具设计成「正面属性 + 轻微负面属性」的取舍型(如:+2 生命偷取但 -1 属性伤害),增加构筑决策深度 ● 先设计 40~60 件原创道具打底,之后再扩充 八、商店与经济 ● 每波结束展示 4 件商品(武器+道具混合,出现权重受幸运值和当前波数影响) ● 可花材料重随(重随价格逐次略微上升,进入下一波后重置) ● 可锁定商品让它保留到下次刷新 ● 可在商店卖出已装备武器/持有道具换回部分材料 ● 商品基础价格表随波数递增,叠加稀有度加价 九、敌人与波次系统 ● 设计 6~10 种基础敌人原型:近战冲撞型、远程投射型、自爆型、快速小怪、高血量慢速肉盾型等,先用简单形状+颜色区分阵营即可,不需要精细动画 ● 敌人数值(血量/伤害/速度/数量)随波数和难度等级(0~5)线性或指数增长,做成一张可调的乘区配置表 ● 每隔几波(如 5 的倍数)设计首领波:单独刷出 1 个数值大幅强化的首领,可有简单技能/攻击模式区别于小怪 ● 波次内刷新用「权重池」逐渐加大同时在场敌人数量上限,波次末尾可以密集刷怪做「最后冲刺」 十、UI/UX 清单 ● 主菜单(开始游戏 / 角色选择 / 设置 /(可选)成就与图鉴) ● 角色选择界面:角色名称、初始属性、专属武器说明 ● 难度选择界面:0~5 档,附带敌人强度说明 ● 战斗内 HUD:生命条、当前波数/倒计时、材料数、等级与经验条、已装备武器图标+等级、暂停按钮 ● 升级选择弹窗:四选一属性词条(可花材料刷新一次) ● 商店界面:4 个商品格 + 价格 + 重随按钮 + 已装备武器/道具展示区 + 材料余额 + 「下一波」按钮 ● 结算界面:胜利/失败文案、存活时间、总击杀数、总伤害、波数、「再来一局」和「返回主菜单」按钮 ● 设置:手动/自动瞄准切换、音量、(可选)画面缩放 十一、视觉与听觉表现 ● 简洁明快的卡通/像素风格,角色与敌人用简单几何形状+高对比色块区分阵营,受击时短暂闪白、击杀时小型爆裂粒子效果 ● 伤害飘字、经验/材料拾取小图标飞向角色(磁吸拾取半径) ● 受伤/爆炸时轻微屏幕震动,血量低时画面边缘泛红提示 ● 音效:射击(按武器类型区分)、受击、拾取、升级、按钮点击;背景音乐建议 1 条战斗 BGM 循环 + 1 条菜单 BGM 循环,可先用免费素材库占位 十二、建议的代码结构 index.html 画布容器 + UI DOM style.css 基础样式与 HUD 布局 js/main.js 游戏主循环(requestAnimationFrame)、状态机(菜单/角色选择/战斗/商店/结算) js/config/ characters.js 角色数据表 weapons.js 武器数据表 items.js 道具数据表 enemies.js 敌人数据表 waves.js 波次曲线配置 js/entities/ player.js enemy.js projectile.js js/systems/ spawner.js 敌人刷新 combat.js 伤害结算 shop.js 商店逻辑 levelup.js 升级词条 ui.js 界面渲染 关键原则:数据驱动设计——角色/武器/道具/敌人全部用配置表定义,不要把数值写死在逻辑代码里。之后每加一个新武器/道具/角色/敌人,只需要在对应配置表里加一条数据,不用改动核心系统代码。 十三、给 AI 的分阶段建议 ● 第一阶段(核心可玩):1 个角色、6 把武器、10 件道具、3 种敌人、5 波短局,先把「移动 → 自动开火 → 拾取 → 升级 → 商店 → 下一波 → 结算」整条链路跑通且没有 bug ● 第二阶段(内容扩充):把角色/武器/道具/敌人分别扩充到第五~七、九节给出的数量参考,加入首领波和难度分级 ● 第三阶段(打磨):加入音效、粒子特效、伤害飘字、动画过渡、平衡性调整、(可选)本地存档角色解锁进度

A system prompt was added to support web rendering