feat(design): GWorld focused game design — Market→Action layered model - #77
Open
keanji-x wants to merge 18 commits into
Open
feat(design): GWorld focused game design — Market→Action layered model#77keanji-x wants to merge 18 commits into
keanji-x wants to merge 18 commits into
Conversation
…odex loop 收敛) owner refine: 旧「万物皆答题」太发散,本版收窄重做(新 worktree off main)。 四层栈 + 两币(G+AP, 砍 ore),经 codex 起草 → 两轮冷审 → 修 → 收敛: - Layer 1: 通用「可验证结局」预测市场(MATH 自校验 / STATE 读链上;ORACLE 后置),G 押注 - Layer 2: 赢市场 → AP;AP 只从赢盘来(不可 G 买/不可 mint);trivial 盘(1+1)=AP 地板防锁死, 固定 fixedTrivialAP 与 stake 无关(堵 G→AP),多维 cap 防 sybil,给出节流约束式 - Layer 3: 花 AP 攻击(新增 HexGrid 邻接校验)/ 加地块防御(capture 后清零);MVP 无 cardIds - Layer 4: NFT 卡牌市场(复用 Arena/CardLedger),仅接口占位后置 - 铁律: G payout 只来自 escrow losing stakes/补贴池/surplus,creditG 不得隐式 mint, 且封死 Treasury 层保留边界(reservedBackingG 或 wrapper,防 escrow 被当 surplus 提走) - RNG(VRF/commit-reveal) 提为 M0/M4 硬依赖;GameEngine 状态边界 M0 二选一(推荐新 V2World 自持) - 合约映射全部对齐 worktree 真实 file:line;MVP=层1+2+3,里程碑 M0-M6 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
… comeback, STATE feasibility) 第3轮换对抗视角(codex + 独立 subagent)抓出前两轮漏的真实漏洞,修后 codex 复审收敛 (5 轮 loop,最终无 Blocker/Important): - 自我对赌/单边盘凭空 mint AP:非 trivial AP 必须独立 distinct-owner 双边对手 + 排除 creator/resolver/subject + 同 owner 跨 outcome 净风险 + 单边盘只退款 + winAP ≤ f(独立 owner losing stake);多 EOA 同控诚实标注为链上不可完全识别的 信任假设 + losingBurnG/bond/identity 缓解 + 「刷 AP 上限=f(burn 成本)」约束 - odds-at-close 抢跑:AP 乘子改用 early/TWAP 快照 - 0-hex 无法回场(赢家通吃死锁):MVP 加 returnFromElimination 回场路径 - STATE snapshot 链上不可实现:改为 STATE-by-checkpoint(只读 V2World 主动写的 finalized checkpoint,未来 event + 时间序约束 + 创建时已知结果拒绝 + settleDeadline 超时 void) - creditG 收紧为单一市场入口(不接泛 operator,堵 legacy 旁路) - MVP 工作量诚实:V2World minimal core 前置 M2、STATE 依赖 M3、列出 MCP/agent/frontend 迁移成本 - MATH 全强制 trivial(合约推导,opener 不可填);承重 OPEN 上提 M0/M1 + 防御不变量; v2 score 只按动作结果/non-trivial 指标(trivial AP 不间接刷分) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… codex+subagent loop 收敛) owner 拍板按 Pattern ①(协议限量发卡、买卡 burn G、不可赎回,不用质押/bonding curve)。 新增「§协议金库 + 卡牌一级市场」+ 三桶账目 + 市场结算三段分流,经 codex+subagent 两路对抗审查 → 修 → codex 复审收敛(无 Blocker/Important): - 市场结算三段分流:赢家 payout / taxBps→protocolTreasuryG / burnBps(losingBurnG)→永久销毁 - 三桶隔离:gBalance / reservedBackingG(escrow,不可动) / protocolTreasuryG(白名单可花);burn≠桶 - 卡牌一级市场:协议限量铸(CardLedger.mintCard 收敛为唯一 PrimaryCardMarket 执行器)、 玩家 G 买、买卡 G 分流 burn(>0,硬约束)+treasury、无赎回无 backing、二级复用 CardLedger - 防套利:一级荷兰拍/per-owner 限购/二级 TWAP 价格下限;协议关联 owner 禁买一级 - 二级守恒转账独立 SECONDARY_CARD_TRANSFER 白名单(不破坏 buyListed),正式抽 secondaryTax/Burn - 金库支出授权收为多签/timelock/TreasuryUse enum(非 owner 单签后门); netTreasuryTakeG 定义为 per-epoch 链上累加器(流入−白名单支出)+超 cap 拒绝/强制中性回流 - 回流限定 source-neutral(不返还抽取来源/losing 方),per-owner 残留诚实标注; 反自对赌 AP 防线锚定真实 burn、不依赖回流 - 防通胀:排期式限量(season/sale/epoch cap 开后不可调,可选 globalMaxSupply)+买卡/市场双 burn - 不用 Pattern B(质押/可赎回)理由写明:避免再加一套金融原语、不占死资本、无赎回负债 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
按 owner 拍板同步工程稿 game-design.md, 与 PR #77 玩家向正文对齐: - Layer 4 卡牌: 弃 Pattern ①(买卡 burn/排期限量发售), 改为市场 tax 经 cardTaxShareBps 注入 cardMintPoolG 养卡池; 成就从税池锁定铸稀有 NFT, 白板卡玩家自锁 gBalance 铸出; lock not burn, 新增 cardBackingLockedG 保留桶排除于可提 surplus; 成就定向铸造作为 source-neutral 显式 CARVE-OUT; 新增 5 项 OPEN(可赎回性/抗成就刷/cardTaxShareBps/blankCardMintLockG/成就白名单). - Layer 1 市场: QuestionKind 增 ORACLE 为第三类(外部真实世界, 如美股/体育), 从被排除改为按可判定性分批、最后上线(M7), 上线前定稿信任模型. - 仅改卡牌/市场相关处; Layer1-3 机制/AP 铁律/市场 backing/RNG/防御不变量原样保留. implement→5-lens review→fix→gate 收敛. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
按 owner 反馈(g 分了太多种、一眼看不懂)重构工程稿: - §3 开头改为「一种钱 G,三个地方」: 钱包(gBalance)/赌池(reservedBackingG)/公库(protocolTreasuryG), 外加偶尔「冻在卡里」(frozenG[cardId]); burn 改述为结算动作而非账目桶; 一眼可懂。 - 折叠两个多余卡牌 G 桶: cardMintPoolG → 公库白名单用途出资(cardTaxShareBps 降级为参数, 非新桶); cardBackingLockedG → per-card frozenG[cardId]. 跨 §2/§7/§8/§9/§12 统一, grep 0 处残留。 - 全部承重不变量(escrow 排除 surplus / 净抽水 cap / source-neutral / CARVE-OUT / lock not burn / AP 铁律)原样保留, 移入可折叠的「工程账本细节」<details> 块。 - 仅动 §3 + 卡牌口径; 市场三类盘/AP/Layer1-3/RNG/防御不变量未动。implement→4视角评审→gate 收敛。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
按 owner 反馈(冷读者能否直观知道产品是什么)派 reviewer 冷读→修复 loop 的产出: - 新增 §0「产品是什么(先读这一段)」: 一句话 pitch + 这是什么产品 + 核心循环图 + Alice 第一局 10 分钟走查 + 为什么新(反 pay-to-win) + 你是谁(单 agent) + 怎么赢, 让产品概念在第一屏落地。 - §1 改为「一句话愿景(工程口径)」并补闭环句 + M0 World A/B 岔路指针。 - §2 每层补一句职责标签([整个经济的发动机]/[AP 唯一来源]/[AP 在这里花掉]/[非 pay-to-win]) + 闭环何时完整(MATH 先/STATE 后)提示。 - §3 加「读前定位」: 玩家只需记 G/AP 两件事, backing/公库/抽水是防作弊护栏、给审计看。 - 纯增量导读, 不动任何承重不变量; 桶折叠/详情块/无 PR#76 泄漏均校验通过。 冷读复审: 两名冷读者均能用自己的话准确复述产品; 非技术读者对全文打分仍受工程 spec 性质限制(护栏细节多), 这是 spec 的固有上限, 非缺失导读。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
按 owner 决定(拆成两份文档)落地: - 新增 docs/game-design-ux.md (208 行): 产品先行、面向非技术冷读者的玩法/产品文档。 产品是什么(先读这一段) + 三层循环一屏看懂 + 一种 G 三个地方 + 三类盘 + 三个动作 + 卡牌(后续) + 怎么赢/翻盘 + 公平规则。 冷读复审 product-intuitive 9/10、fidelity/brevity 全过, 与简化后工程模型一致(一种G三处、公库出资/冻G铸卡、oracle 最后上线、反 pay-to-win)。 - 工程稿 game-design.md §0 从大段产品导读收敛为「一句话 + 指向 game-design-ux.md」的指针, 工程稿回归纯技术。 - implement→4视角冷读评审(产品直观/忠实/简洁/设计)→修复→gate 收敛。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
把工程稿 §10 线性 M0–M7 转成可并行执行计划: - 一眼看懂: 锁 M0 决策 → 冻结接口(contract-first) → 9 条 lane 对着 ABI+mock 并行 → 垂直切片合龙; 含依赖 DAG 图 + 关键路径(顺序~12-13w / 并行后净~7.5-8.5w)。 - Lane 总表(L-A 财库 / L-B 市场+AP / L-C V2World / L-D RNG / L-E 行动 / L-I 集成 / L-T 不变量护栏 / L-F 卡牌 / L-O ORACLE), 各带依赖/起步条件/交付物/并行安全。 - 三个硬汇流点(STATE⟂checkpoint / 行动⟂RNG+AP+STATE / 集成⟂4重门 feature-flag)、分阶段垂直切片(P1 MATH 闭环→P2 STATE+三动作→P3 集成→P4 卡牌/ORACLE)、常驻测试不变量护栏、分工/worktree/合并 SOP、推进节奏闸门、风险与未决、§12 OPEN 数值跟踪。 - 严格依据 game-design.md(§8/§9/§10/§3) + 真实 contracts/src, 不引入 PR#76 范畴。 注: M0 签字(0/12)、lane owner 名、7 个卫星工件为团队待填的执行占位, 文档已显式标注 GATE 0, 未杜撰人名/日期。design→4视角评审(并行性/忠实/一眼看懂/完整)→gate 收敛。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
纯前端 all-mock 单文件演示: AI agent 自跑 Market→Action 闭环(开盘/押注/攻击/夺地/赢AP/爬榜), 人主要围观、可下注。 - 三区布局: HEX 世界地图 + 事件流弹幕(世界心跳) + 排行榜/AgentMind, 底部开放赌局可下注。 - 对齐当前设计: G/AP 两币、三类盘(送分题/世界局势/外部oracle后续)、攻防是动作非答题、卡牌后续、无 ore。 - headless 验证: 跨 1280×680–1920×1080 渲染 0 报错、可滚动、底部可达、地图完整、事件流内部滚动不撑大页面。 - 设计规范评审 B+(7.5/10): 视觉8.2/Nielsen7.8 达标, 无障碍7.0/数据可视化7.0 待修(下一轮 review→fix loop 收敛)。 服务: python3 -m http.server 8421 --bind 0.0.0.0 -d demo-v2 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
对仪表盘 demo 跑 设计规范 review→fix loop 的产出(部分收敛): 已落地: - 淡色文本 --faint 提亮 #5b687f→#95a0b8(修 WCAG AA 对比度不达标) - 新增 @media (prefers-reduced-motion: reduce) 关动效 - 交互元素加 :focus-visible 键盘焦点描边 - 焦点层级/赔率动画/防御可读性等多处调整 未完成(留待定点修, 非 loop): - 下注撤销(undo bet)未实现 - 事件流揭晓的 ✓守住/✗失守 大徽章未加 - 仍有 1 处 9px 文本待提到 ≥12px - 盘型 ⓘ 说明 / 空盘区分未加 诚实记录: 自动 review→fix loop 3 轮未干净通过——R1(单次 seed-fix)最佳(0 crit/major), R2-R3 主观重评分噪声大(评分尺度混乱)且过度调整反而回退视觉分。当前版本渲染 0 报错、布局完好、无障碍较基线净改善。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…oop 收敛) Independent review loop (subagent rounds; codex 因 auth 失效未参与) 收敛到 ready。 本轮修复: - 决策计数 12→13(#5b 是独立签字行):GATE 0 / CI(a) / §3 / §10 / §11 全部对齐, CI 改为按行计数 + CODEOWNERS/署名 commit(非检 .md 里的 ✓ 字符) - 时间线重算自洽:全串行 15w(含 M4.5 则 16w)、并行净 ~11–12w、最好 ~10w; §10 重写 forward-pass,明确并行只叠 L-C/L-D、并非砍半(同口径 16→12) - join② 方向修正:删除把「L-B STATE 结算」当 L-E 前置(方向写反); L-E 上游 = AP.spend+Hex+RNG 三齐,STATE 市场读 L-E 写的 checkpoint = 下游 - 冻结接口对齐 game-design:IWorldCheckpoint.eventId bytes32(=Question.snapshotEventId)、 beforeOwner/afterOwner uint256 agentId(hex 按 agentId 归属、0=neutral)、actorAgentId uint256 - §3 #3 checkpoint 创建前置改回 exists==false(对齐 game-design §4,勿放宽承重不变量) - 「PR#76 越界门禁」正名为「v1 旧 scope 越界扫描」并定义豁免(PR#76=已废弃的万物皆答题, 与该 CI 门禁无关;v1 GameEngine 的 ore/build/raid 才是要挡的) - Router 基线更正(V3 已含 9 槽、只缺 net-new)、向后兼容 dual-read 定稿 - 补:结算 settle() permissionless + keeper 归属、迁移快照校验 DoD、lead deputy/SLA、 QA 闭环 e2e 套件、M4.5 审计 executor/scope - 可读性:Router 长行 / CI 门禁 / PM cadence 拆为子列表 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…rch 定稿) 旧 §3 是一张 13 行「逐项签字才能开工」的 M0 决策门。经 research 真实合约 + game-design,把那些「决策」全部定稿为 §3 已定架构——架构干净、接口可立即冻结、 无 GATE 0、无签字门。仅剩 §12 数值与 M7 ORACLE 信任模型待 owner(不阻塞)。 已定架构(每条带合约依据): - World=B(V2World 自持)——被逼出来的:GameEngine 的 hexes/agentHexKeys/hexCount 是 public mapping、无外部 setter(GameEngine.sol:76-78),方案 A 根本无法实现 - RNG=commit-reveal——全仓无 VRF,ArenaEngine.sol:545 自带「换 VRF/commit-reveal」TODO; 自包含、藏在 RNGProvider 接口后,将来可换 VRF adapter - 财库 #4/#5/#5b 是一坨耦合改造(一起落 L-A):reservedBackingG=(a)、creditG 锁 单一 marketEngine(现状泛 onlyOperator,CardLedger/Arena 连带迁移)、withdrawSurplus onlyOwner 后门换多签/timelock、netTreasuryTakeG cap - #3 checkpoint/#7 eligibility/#8 anti-snipe = 采纳 game-design §4/§5 原文 - QuestionRegistry=内嵌 PredictionMarketEngine(不占槽,留抽出缝) - 合约面=5 net-new 槽、Router V4=14 槽、HexGrid=库、无 APActionAdapter - HexGrid 改可逆打包键(旧 toKey 单向 keccak、无 fromKey,无法按 key 判邻接) 连带 ripple:删除 GATE 0 banner / M0-DECISIONS.md 工件 / 13 项签字 CI 门;时间线 省去旧 1.5w 决策门(全串行 ~13.5w、并行净 ~10.5w、最好 ~9w);CI gate(a) 改为 「改架构无 ADR → block」;§11 删 3 条已决风险行、补「架构被私自改」行。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…view loop 收敛) 新增 docs/architecture.md——把 v2 的系统架构讲清楚,采 greenfield 路线: 全新部署一套自洽合约,不改造、不迁移任何 v1 合约(旧 GameEngine/GTreasury/ CardLedger/ArenaEngine 继续服务 v1),新赛季起。 内容:为什么 greenfield(核心 5 合约两路都得写,改造只多叠迁移税;且旧 A 路 不可行——GameEngine hex mapping 无外部 setter);四层栈 Market→AP→Action 循环; 合约全景(V2Router/V2Treasury/PME+内嵌QuestionRegistry/MarketSettlementResolver/ APLedger/V2World/RNGProvider/HexGrid,复用 AgentRegistry 身份);一次完整数据流; 关键决策+依据;7 条经济铁律;权限边界;MVP 范围;仅剩待定(§12 数值 + M7 ORACLE)。 所有事实论断已对真实合约核验(GameEngine:76-78 无 setter、GTreasury creditG 泛 onlyOperator/spendG escrow 漏/withdrawSurplus onlyOwner、全链无 VRF、agentId 从1起)。 独立 review 后修正 §2 合约图箭头方向(PME 不驱动 V2World;creditFromMarket 起自 PME 非 Resolver)+ AgentRegistry/V2Router/Treasury 措辞 + RNG 活性兜底说明。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…iew loop 收敛) 承接 architecture.md(greenfield),把三份文档对齐为同一套 greenfield 架构,并修掉 独立 review loop(5 轮,subagent + 每条 finding 对抗式核验;codex 因 auth 失效未参与) 逐轮挖出的问题: - R1 blocker:architecture.md(greenfield) 与 dev-plan §3(改造) 对 Treasury/Router 新建-vs-升级互斥 → 把 dev-plan §3.2/§3.4 + §4/§5/§6/§9/§11/§0/§2 全部同步为 greenfield(全新 V2Treasury/V2Router、net-new=7、删 dual-read、迁移门→部署冒烟门) - R2 major:RNG 修复只落 architecture 未同步 dev-plan + 残留 Router V4/读V3旧址 → 同步 - R3 blocker:future-blockhash RNG 有免费 re-roll(seed 公开后输盘放任 expire 退款) → 改为 expire 也没收 AP(绝不退)、放弃≡判负、RNG-resolve keeper 列 MVP 承重; 并把「commit-reveal」正名为「commit + future-blockhash」(无秘密 reveal)、接口 request/resolve/expire - R4 major:game-design.md 仍把 World A/B、Treasury、迁移写成待定 → 顶部加 greenfield staleness banner + World A/B 表 / Treasury 二选一 inline「已取代」note;dev-plan:3 「一律以 game-design.md 为准」收紧为字段→game-design、Treasury/World/Router/迁移→architecture - R5:无 blocker/major,仅 minor/nit(feature-flag 非改造专属、Router.sol→V2Router、 banner 致 game-design 行号 +2 等)均已修 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
owner 反馈原文档「名词太多、看不懂文件组织、看不到要做什么和怎么验收」。 在 dev-plan 开头加「总览」(面向忙碌 owner,少名词): - A 建什么:8 个文件树 + 一句话职责 + [步N] 标明在哪步建 + 复用/不碰清单 - B 分几步(0 定接口 → 7 审计部署)+ 每步「怎么算做完」验收 + 约需工时 - C 总验收:AI 自跑核心闭环(押→赢AP→打地→地图变→自动开新盘) - D 必知设计(大白话)+ E 待定项 原 lane/join/PERT 详细内容降为「详细执行计划(给拆活的人)」、保持不变。 subagent review loop 6 轮(标准换成「忙碌 owner 一眼看懂 / 要做什么 / 怎么验收 / 少名词」+ 总览不得与详细部分·架构矛盾;codex auth 失效未参与),逐轮修: - AP 名称不一(行动力 vs 战力)、「能玩=步0-4」、步3/4 职责重叠、C 含第二阶段 - STATE 地图盘其实属 MVP(补步5、对齐架构) - 「发奖」一词两指(金库 vs 市场)→ 谁放钱 vs 谁下令 - 最早薄片误含步6接线 → 修正为步0-4 脚本演示 - 10-11 周缺人力前提 → 补「~4-5 人并行,否则串行 ~13.5 周」 - 押对赢什么(数学题盘只发 AP / 地图盘才赢彩池)、「各步可并行」→ 硬先后 - 一批黑话白话化(checkpoint/faucet/不变量测试/价值合约/预言机/盘…) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
owner 指出前端开发没排。按「只排期+验收、参考现有 frontend、具体活另派人」补: - 总览 B 步骤表加一行「前端」:基于现有 frontend 改 v2 玩家界面(市场/下注/ 我的G·AP/地图攻防回场/引导式下一步),验收=玩家界面跑通一圈,~3–4 周并行、需 1 名前端 - 步6 收敛为「对接真实合约+翻 flag」(前端 UI 建设单列、不再混在接线里) - 详细 §5 加 L-FE lane 行 + 交付物;§9 阵型 / §11 风险更新为 ~5–6 人(+1 前端) - 修总览里裸「M1」代号→「第1步」(总览只用步N);claim→领取奖金、地图盘命名统一 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
按 owner 反馈(代号未定义直接出、名词前后不一、组织不清晰),派 codex 独立读+改、 循环到收敛(codex 最终只读复审:四点全 PASS、可提交): - 新增「术语与图例」小节:L-A..L-T / C1 / M0–M7 / join / ⟂ / P1–P4 / 🔴🟡 / mock / ADR / SOP / DoD / PM / PERT 等代号一句话定义,确保首次出现即可懂 - 章节重组为 §1–§11 连续(旧 §0 TL;DR+§1 合并为 §1;修好 §10→§12 缺号) - 全文 §N 交叉引用按语义对齐新编号(join→§5 / 不变量→§7 / PERT→§9 / 风险→§10 / 数值→§11 / 已定架构→§2.x 等),修好 ADR(§8)、成就白名单(§11) 失效引用 - 名词统一:财库(金库)、奖池(原赌池);§N-values 文件名同步 全程硬约束「只改可读性/术语/组织、不动技术决策与数字」;逐项核验技术事实 (7 合约 / 10–11 周 / future-blockhash 判负与 expire 均没收 AP / V2Treasury / 5–6 人) 与改前备份完全一致。codex auth 本轮恢复,故由 codex 主导 review+fix。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
按 owner 意见,去掉相对旧版本的冗余对照(现在没有旧稿了): - §1「这份文档怎么读」:删「旧工程稿把里程碑写成线性链…本文把它拆成」开头,直接陈述本文做什么 - §1 架构定稿 callout:删「旧稿的13项M0决策签字门已删除」,正面陈述「已定稿、无签字门」 - §1 关键路径:删「省去旧1.5w决策门」对照 - §2 标题去掉「(取代旧「M0 决策门」)」;blockquote 删「旧稿这里是13行M0决策表——已删除」开头 - §10 风险表:删两条纯「旧稿误标/写反——已修正」的 changelog 行 保留所有指真实 v1 合约的「旧 GameEngine/旧合约/不碰旧/继续服务 v1」引用(非冗余)。 章节仍 §1–§11、§N 引用与技术事实(7 合约/future-blockhash/5–6 人…)均不变。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Gravity Town · 玩法与产品设计(v2)
产品是什么(先读这一段)
一句话: 一个链上领土争夺游戏,你和一群真人玩家、外加协议托管的 AI 对手抢一张六边形地图;进攻和防守要花的「行动力」买不到、刷不出,唯一来源是赢一场预测。
和你抢地的是谁。 同一张地图上有几十名真人玩家,外加一批由协议托管、LLM 驱动的 AI 对手。每个人占的每一块地都看得见归属和防御值。你做的每个动作、押的每一注,都在改写地图、给别人制造新的可押事件——世界因此一直在动。
这是什么产品。 你想抢相邻的地、加固自己的地,都需要一种叫行动力 AP(Action Points)的燃料。和别的同类游戏最大的不同——AP 只能赢来,钱买不到、也刷不出来。拿到 AP 的唯一办法,是带着游戏币 G(金币) 去押一场会被验证对错的预测,比如:
押对 → 拿到 AP → 花 AP 抢地或守地 → 地图变了 → 新归属又开成新的预测盘。这就是整个游戏的循环。
Alice 的第一局(开局 10 分钟长什么样)。 Alice 带着 100 G 进场,连下两注,赢一注、输一注:
这就是整个循环,进来十分钟就能跑通一圈——赢了往前推,输了换一注,永远有下一步。
为什么新 / 为什么有意思。 它把同类游戏里常见的「刷币 → 买战力」反过来做成「赢预测 → 得战力 → 改地图」。这一条改动同时做到三件事:(1) 逼你真去和市场博弈、判断未来,而不是无脑刷资源;(2) 制造「现在就出手,还是先押一注赚更多 AP」的持续抉择,策略张力全在这里;(3) 钱多的人也买不到战力,从根上挡住 pay-to-win——后面会讲的卡牌也只是攻防小加成,同样不是花钱变强。
你是谁。 你只驾驭一个 agent,它绑定你的链上钱包,你所有的 G 和 AP 都归这一个 agent。开一堆小号自己跟自己对赌想刷 AP?这条路被专门堵死了(见末尾「为什么砸钱和刷号都没用」)。
一句话讲完对手关系: 每个盘都是此消彼长的对赌——你押「会」,就一定有真人或别的 AI 押「不会」;没人跟你对赌,盘就不发 G。
怎么赢。 一个赛季结束时,总分最高者夺冠。总分来自你占的地、这季抢下过多少地、打赢过多少仗、押对过多少场有对手的预测。会打和会赌是两条独立的上榜路(见「怎么赢 / 怎么翻盘」)。
世界怎么运转 · 三层循环
整个世界是一个会自己转起来的循环,由三层首尾相接:① 市场 → ② 行动力 AP → ③ 行动 →(地图一变又长出新市场)→ 回到 ①。还有一个卡牌层挂在 ③ 上做攻防加成,是后续才上线、不在循环里的东西。看完这一屏,你就看懂了整个游戏。
整套经济一屏看完 · 一种 G,三个地方
钱永远只有一种,叫 G。 你以为看到的「各种 G」,其实是同一种 G 待在不同地方而已——它不会变成别的币,只是从一个地方流到另一个地方。
还有一种「冻在卡里」的状态(后续卡牌上线后才有):铸卡时可以把自己的一点 G 冻进卡里——它就像押进赌池的钱一样「锁住、谁也挪不走」,只是换了个地方存着,退卡时才可能拿回。这不是第四个地方、也不是新的池子,只是同一种 G 锁在了卡上。地方永远是这三个。
burn 不是一个地方,是一个动作。 每局结算的那一下,会烧掉极小一撮 G(永久消失)、一小口进公库、其余归赢家。所以输家失去的,略多于赢家拿到的——这点损耗正是堵自我刷分的关键。
两条铁律(这就是全部的安全感):
三类盘(押什么)
世界上值钱的东西只有一个来源:开一个会被验证对错的预测盘,让人对赌。赌是此消彼长的——你押「会」就一定有人押「不会」(真人或别人的 AI),押对了,你分到的正是看走眼那批人押进来的钱。
按「结果靠谁来判定」分三类,也是上线的先后顺序:
1+1=2、可验证的物理题赢家拿什么:AP 必有按难度,G 看池子。 这是最该记清的一点:
一句话:AP 奖励你的判断力,G 奖励你赢走了别人的赌注。 而最赚的玩法不是押你自己,而是押别人的命运——这是你的主要收入来源。
三个动作(怎么改世界)
一张六边形地图:你的地、对手的地、无主地,每块地标着防御值。首发只有三个动作,全都是直接花 AP 的普通动作——不是答题:
你做什么。 点自己的地,再点相邻目标,按「出击」。抢下那一瞬,地块爆一圈光晕换成你的颜色——你看得见世界因你而变。
讲究:不能缩在堡垒里。 防御有上限、会随时间衰减、堆得越高越费力,所以靠死守一块永不破的地是不可能的;而且打下来的地防御清零,你得重新经营。这逼着你不断用赢来的 AP 往外打——地图永远在流动。
卡牌(后续,不加任何新货币)
卡牌是首发没有、后续才挂上来的一层,挂在「行动」上做攻防加成、不进主循环。它只用现成的 G,不引入第二种钱、不引入新池子:
怎么赢 / 怎么翻盘
赛季总分。 加分只有四块:
不计分的:花掉的 AP、送分题白拿的 AP、钱包里的 G 余额。
两条上榜路。 因为「押对预测」也计分,会赌和会打是两条独立的路——一个不太能打、却极会看局的纯预言家,光靠看得准也能爬到很靠前;正面碾压的征服者则靠地和仗取胜。两条路都能登顶。
怎么翻盘:永远能东山再起。 被打到 0 地也不出局——花 AP 复活、重新落脚,再占一块地从头来;而免费的送分题保底,让你永远攒得回再打一仗的 AP。这个世界不存在「彻底死掉」,只有「暂时落后」。
一个赛季多长、结束会怎样。 每个赛季持续一段固定时间(例如一到两周;具体时长以开赛公告为准)。赛季到点结算:(1) 给所有人打总分、冠军加冕;(2) 地图清空、领地全部重置重开;(3) 你钱包里的金币 G 不清零——带进下一季继续用。 重置的是地图和排名,不是你的钱。
为什么砸钱和刷号都没用(公平规则)
这一节把上面散落的安全保证集中说清——你不必背,但知道它们存在,就不会去走死路。进场只要记住一句:每个盘都得有真对手,自己跟自己玩不出 AP。