| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
村民可见性日志钩子(P24)
- drawMapStructures 用 RoofRidge/RoofEave + WallWood/WallWindow + Door 精灵替换原矩形色块。
- LV_NPC_VISIBLE_LOG=1 每秒打印 visible-npcs=K of 30,作为大世界村民渲染证据。
|
| |
|
|
|
|
|
| |
- Params.ExtraRiversideHouses(默认 0);paramsForSize 仅对 >256x192 设为 10,
从既有路网泊松散布 3x2 民居并接门入网(structureRng 确定性),512x384 共 18 座。
- 64x48/256x192 仍 4 座、checksum 6042052/1284656962 不变(新增用例锁定)。
- 新增 512 民居数量/可达/确定性用例;Desktop 130 -> 134。
|
| |
|
|
|
|
|
|
| |
- 记录 paramsForSize 尺寸自适应(河道每 ~96 行一条、噪声尺度封顶 4x)、
64x48/256x192 逐字节不变、v2 存档边界与 v1 兼容、生成耗时(512x384 约 134-248ms)、
512x384 巡游 perf-summary(mean 153.84/min 51.64/max 228.81)与 VmRSS 185.9-201.9MB。
- 补 LV_RIVERSCAPE_WIDTH/HEIGHT 与 LV_MAPGEN_SHOT 512x384 取证命令及 /tmp/opencode/lv-p23-art/ 快照。
- 默认世界仍 256x192,本轮只交付能力与证据。
|
| |
|
|
|
|
| |
生成器世界(P23)
- 默认仍是 256x192,不改默认世界;仅让巡游/性能取证可跑 512x384。
|
| |
|
|
|
|
|
|
|
| |
- paramsForSize:河道数量随高度约每 96 行一条(64x48/256x192 仍 2 条,512x384 得 4 条),
第 3 条起在核心上/下方逐层外扩,互不重叠且不压核心。
- 噪声特征尺度封顶 4x,避免 512x384 退化成过度平滑的放大图。
- 64x48/256x192 生成结果逐字节不变(新增 checksum 锁定用例)。
- 新增 512x384 同 seed 逐字节一致/异 seed 分化/四河道连续/30 spawn 与桥两岸可达用例。
- Desktop 测试 124 -> 130。
|
| |
|
|
|
|
|
|
|
| |
边界回归(P23)
- Sim.configureBounds 512 384 下 v2 存档 round-trip 且同 world 两次保存逐字节一致,
读回再保存仍与原文一致;v1 的 64x48 兼容由既有用例覆盖。
- DriverHarness 长跑 20000 tick 断言 avatar 与全部 NPC 有限且留在 [0,max] 内。
- Kernel 测试 90 -> 92。
|
| | |
|
| |
|
|
|
|
|
|
| |
- 代表帧改为真实游戏内帧(HUD 近白像素判定),覆盖昼/黄昏/夜三档共 9 张,
覆盖旧标题/启动误帧;补 23:30 夜档巡游取证命令。
- 新增「大世界默认开启评估」:256x192 已是默认(P20 第三步),复核 FPS/内存/
生成耗时与风险,结论维持默认、保留 LV_LEGACY_MAP 回退;记录 NPC 规则网格
与孤立砖石小块两项遗留观察(仅记录不改)。
|
| |
|
|
|
|
|
| |
世界也能长时帧率采样(P22)
- sample 脚本跑完一轮后若未到 soak 秒数则回到开头继续,用于与 256x192
巡游做同口径的解锁帧率对比;默认 0 行为不变。
|
| |
|
|
|
|
|
|
|
|
| |
新增「大世界」一节:世界参数/回退开关/可达核心/实测性能(P21)
- 256x192 生成器参数、world-mode 回退开关、BFS 可达核心保证机制。
- 实测 Desktop Release(Xvfb 1280x720x24,LV_UNLOCK_FPS=1)60s 采样:
mean 230.4 / min 199.5 / max 302.8 FPS;VmRSS 181.9–183.4 MB;
headless ticks/s 189,595–445,377、alloc≈3.03MB、gen0=0、digest 953775FA…。
- 补 P21 取证命令与 /tmp/opencode/lv-p21-art/ 快照位置。
|
| |
|
|
|
|
| |
- LV_UNLOCK_FPS=1 关闭 vsync/固定步长以测真实渲染上限;
LV_PERF_SUMMARY=1 退出时用 PerformanceSummary 打印 mean/min/max。
- LV_RIVERSCAPE_SECONDS=N 让巡游循环到 N 秒,支撑 60s 稳定采样。
|
| |
|
|
|
| |
- PerformanceSummary.summarize:丢弃 warmup 后求每秒 FPS 的均值/最低/最高,
空样本返回 None;含 3 条单测(TDD)。
|
| |
|
|
| |
LV_AUTOPLAY_SAMPLE 非巡游保持旧 64x48,仅 LV_RIVERSCAPE_TOUR=1 启用生成器世界。
|
| |
|
|
|
| |
LV_AUTOPLAY_SAMPLE(非巡游)仍走旧 64x48 以确保既有录像可复现;
LV_RIVERSCAPE_TOUR=1 时才启用 256x192 生成器世界。新增 world-mode 启动日志。
|
| |
|
|
|
|
| |
- 记录默认 256x192 生成器世界接入、LV_LEGACY_MAP 回退、桥头灯笼与
bridgeLanternTiles、序列化确定性与测试计数(Desktop 121 / Kernel 90)。
- 补 p20c-* 昼夜巡游取证命令与快照位置、性能门槛复述。
|
| |
|
|
|
|
|
|
|
|
|
|
| |
第三步 B)
- Game:默认 256x192 生成器世界(核心可达区站位),LV_LEGACY_MAP=1 /
LV_MAP_SCALE>1 / LV_MAP_TOUR=1 回退旧路径;StartNewGame 走同一站位。
- VillageArt.drawWorld 新增 pixel 与 mapGen option:Some 时按生成器瓦片绘地面
并叠加桥面/沿河民居/门,跳过 64x48 样例平面与道具;水波沿用 waterFrameTickAt。
- 新增 bridgeLanternTiles;夜间 LanternGlow 沿用既有预乘同心圆(无过曝白芯),
生成器世界用桥头灯笼。
- 新增 LV_RIVERSCAPE_TOUR 真走位巡游与 LV_RECORD_NAME 录屏前缀(证据用)。
|
| |
|
|
|
|
|
|
|
|
|
| |
- MapGen.serialize:生成结果的确定性序列化(尺寸/seed/瓦片/Rivers/Bridges/
Paths/Buildings),同 seed 逐字节一致,供回归与跨机核对。
- WorldBootstrap.initialWorldWithPlacement:显式站位建世界;旧 64x48 路径
(initialWorld/initialWorldWithOccupation)字节口径不变。
- WorldBootstrap.initialWorldInMap:用生成器核心可达区做站位,30 spawn 全落
可达核心;新增 serialization/placement 两条测试。
- fsproj:MapGen 先于 WorldBootstrap 编译。
- Desktop 119->121,Kernel 90 不变。
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
第二步)
- 河道改为贯穿全图连续水带(每列一段、宽度 >= RiverWidth),置于核心区上下
两侧且不相交;新增不变量测试:逐列水段数恒定、每段宽度下限、任意水格
>=2 个水邻居(禁止断裂缺口与孤立水点)。
- Result 新增 Rivers/Bridges/Paths/Buildings/BridgeCrossingsOk;每河 2 座桥、
横贯主路 + 垂直连接路 + 远岸路 + 白墙黑瓦民居(门朝路)。
- 公开 isWalkable/floodFill;ReachabilityOk 现覆盖 30 spawn + 所有门 + 所有桥面,
BridgeCrossingsOk 保证每桥两岸同连通域。
- 回归:Desktop 115->119、Kernel 90 不变;final_digest 与基线一致。
|
| |
|
|
|
|
|
|
|
|
| |
- 新增纯函数 MapGen:尺寸参数化(默认 64x48,可 256x192),splitmix64
随机游走河道 + 2-3 octave value noise + 泊松式布点;核心区整平后以 BFS
校验 5x6=30 个 spawn 全部可达,不可达确定性修整并复验。
- visibleTileRange/visibleTileCount 纯函数,drawWorld 改为调用之(行为不变);
drawMapFitted/drawMapViewport 仅证据用。
- 存档沿用 v2/v3 边界字段,补参数化边界 round-trip 测试,未改 Sim 语义。
- 回归:Desktop 109->115、Kernel 89->90;final_digest 与基线一致。
|
| |\ |
|
| | |
| |
| |
| | |
中性白平衡,黄昏暖橙保留)
|
| |\|
| |
| |
| | |
89)
|
| | |
| |
| |
| | |
双窗口光照 + 时段标签对齐)
|
| | |
| |
| |
| | |
复验全绿;30x20 批验 systemd 启动;P18 已派发
|
| |\|
| |
| |
| | |
108/Kernel 89)
|
| | |
| |
| |
| | |
路径生效(resolveStartTick 纯函数 + 回归 + 重拍证据)
|
| | |
| |
| |
| | |
证据与 docs 记录
|
| | |
| |
| |
| | |
过渡窗口参数化,分数小时平滑)
|
| | |
| |
| |
| | |
tick 节奏)
|
| | |
| |
| |
| | |
街边中式细节物(石灯笼/水缸/摊贩摊位)图集扩展 28 格
|
| | |
| |
| |
| | |
复验发现起时钩子失效,黄昏证据不成立;P17-FIX 已派发
|
| |/ |
|
| | |
|
| |\
| |
| |
| | |
Desktop 106/Kernel 89)
|
| | |
| |
| |
| | |
真实菜单证据补拍
|
| | | |
|
| | |
| |
| |
| | |
顶部窄信息条(时段/时间/倍速/体力/钱币)+ 冬夜冷色 + 面板/提示渐变重绘
|
| | |
| |
| |
| | |
开始界面收敛三项(开始/读档/退出)+ CJK 补字 238
|
| |/ |
|
| |\
| |
| |
| | |
谣言工作集容量上界+按天淘汰+窗口扫描去中间表(独立复验全绿)
|
| | | |
|
| | |
| |
| |
| | |
谣言窗口扫描去中间表——最新在前早停递归替代 takeWhile/filter/sort,零分配且等价
|
| | |
| |
| |
| | |
谣言裁剪回归——容量内零拷贝与逐字节一致/按天淘汰/单调 id/DayIndex 存档往返
|
| | |
| |
| |
| | |
派生字段/纯函数 trim/窗口化扫描/O(1) nextId
|
| |/ |
|
| |\
| |
| |
| | |
职业玩法收口——开局职业选择/货郎书生模板/CJK补字/全链路回归(独立复验全绿)
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
全链路回归(既有事件通道)
- 从 WorldBootstrap.occupationStateFor(选择职业入口)取四职业第一天 Offered 任务,
acceptTask 转 Active,再用该模板对应信号推到 Done:交易/对话模板走 InteractionEvent
→ signalOfInteraction(玩家买/卖、玩家对话),到达瓦片/夜水边/观察由调用方折叠信号。
- 覆盖农夫送粮、渔夫夜捕、货郎收货、书生观察记事等四职业首日模板,验证池内生成与终态。
- Desktop 94 / Kernel 83 全绿;不改 Sim.step 数值路径。
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
开局职业选择页——新档四选一+暂不选择,接入 v3 存档与当日任务
- MenuState:新增 OccupationSelect 页与 StartNewGameWith 命令;occupationOptions=农夫/渔夫/货郎/书生/暂不选择,
默认高亮「暂不选择」= 不写职业的旧行为;四选一确认后发 StartNewGameWith,ESC 返回主菜单(既有 MainMenu
行为与测试不变)。
- WorldBootstrap.occupationStateFor/refreshOccupationToday:按 seed+职业种子生成/跨日刷新当日 Offered 任务。
- Game:主菜单「开始新游戏」→ 职业选择页;选定后 initialWorldWithOccupation 注入 Money/Energy 与 Today,
m5View.Task 随之写入 v3 存档;游玩中按日刷新;autoplay/flow 默认走「暂不选择」保持旧演示行为;DrawMenu 渲染职业页。
- 测试 Desktop 93(新增 6):职业页选项顺序/默认 None/标签、确认命令与返回、bootstrap 四职业 Money/Energy+当日池内
Offered 任务、四职业 v3 round-trip(职业+任务逐字段)、T 面板显示所选职业的模板名与「待接受」、跨日刷新保持同日。
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
197->228),requiredUiLabels 锁定防复发
- CjkGlyphAtlas 字表 + Assets/cjk-glyphs.txt + cjk-glyph-atlas.png 重生成(384x360,15 行):
新增 职/业/收/货/转/事/论/理/粮/工/翻/土/捕/渔/询/送/帮/农/夫/郎/书/生/待/接/受/今/日/任/务/行/中
共 31 字,覆盖职业选择页与 T 面板全部模板/状态文案,消除方框缺字。
- ChineseText.requiredUiLabels 增职业/模板/状态标签,既有 FormalChineseUiLabelsUseTheRealGlyphAtlasBoundary
与 RequiredUiLabelsAreFullyCoveredByTheGlyphTable 继续强制全字形可渲染。
- PrototypeTests 几何常量同步 197->228、13->15 行、312->360 像素。Desktop 87 全绿。
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
既有事件通道信号桥(Kernel 纯函数 TDD)
- TaskTemplateId 扩出 BuyGoods(收货)/Resell(转卖)/ObserveNotes(观察记事)/ReasonDebate(论理),
taskPoolOf 货郎=[收货,转卖]、书生=[观察记事,论理],四职业池均非空。
- TaskSignal 增 Purchased(玩家买入)/Observed(观察),satisfiesCompletion 给出四模板完成判定;
新增 occupationSeedOf/refreshToday(跨日才重生成,同日含 Done/Failed 终态保留)。
- signalOfInteraction/advanceTask:仅 playerId 发起的 DialogueEvent/TradeEvent 产生信号,
NPC 互动不派任务;Offered 须先 acceptTask,终态不可复活。WorldSave 模板 token 双向同步。
- 测试 83 全绿(新增 6:池非空、货郎书生逐日池内确定、模板中文名、完成信号正负、
事件桥含玩家买/卖与 NPC 忽略、既有 DialogueEvent→accept→Done 全链路、refreshToday 逐日)。
- 不动 Sim.step 数值路径;旧档 v3 模板 token 仅新增合法值,未知模板仍拒绝。
|