KNOWLEDGE MODULE 01

Memory 与代码工程

保存跨 tick 状态、恢复对象引用、清理过期数据,并逐步理解模块拆分、segments 与全局缓存。

7 篇文章3 个学习阶段1 / 8 模块

WHO IT IS FOR

适合谁学习

已经完成新手路线,准备从固定名称代码进入可维护结构的玩家。

LEARNING GOAL

完成后能解决什么

理解哪些数据应该跨 tick 保存、怎样安全恢复对象,以及如何把不断增长的主循环拆成清楚的代码模块。

01

LEARNING STAGE

状态基础

先理解 Memory、死亡数据清理和工作状态切换。

  1. 01Screeps Memory 是什么:跨 tick 状态、JSON 边界与使用成本Screeps 基础工程 · 8 分钟阅读

    解释Game对象、模块全局变量和Memory的生命周期差异,演示Creep角色状态、版本迁移、对象ID保存和Memory体积控制。

  2. 02Screeps 如何安全清理死亡 Creep 的 MemoryScreeps 基础工程 · 6 分钟阅读

    比较Game.creeps与Memory.creeps,删除已不存在Creep的残留数据,并同步清理受控任务索引、限制日志频率和避免误删其他模块状态。

  3. 03Creep 如何在取能和工作之间稳定切换状态Screeps 基础工程 · 7 分钟阅读

    用Creep.store边界和memory.working建立两阶段状态,处理首次初始化、部分Energy、无容量、目标缺失、动作结果和移动结果。

02

LEARNING STAGE

对象与模块

学习通过 ID 恢复对象,并用 require 拆分代码。

  1. 04Game.getObjectById() 怎么配合 Memory 安全恢复目标Screeps 基础工程 · 7 分钟阅读

    把对象ID和目标房间写入Memory,每个tick重新取得实时对象,并区分目标消失、ID损坏和远程房间暂时没有视野。

  2. 05Screeps 如何用 require 和 module.exports 安全拆分代码Screeps 基础工程 · 8 分钟阅读

    把角色行为、Memory维护和房间逻辑拆成Node.js风格模块,统一导出契约、错误隔离、角色分派和global reset后的可重建状态。

03

LEARNING STAGE

高级存储与缓存

继续了解 segments 和全局缓存的使用边界。

  1. 06RawMemory segments 怎么跨 tick 安全读取和写回Screeps 进阶开发 · 7 分钟阅读

    解释 RawMemory.setActiveSegments 的下一 tick 时序、0–99 ID 与同时激活上限,并提供空内容、损坏 JSON、版本字段和安全写回的完整示例。

  2. 07Screeps 全局缓存为什么会失效:重建、过期与对象恢复Screeps 进阶开发 · 8 分钟阅读

    解释模块顶层缓存与 Memory 的区别,使用按房间 Map、版本号和过期时间缓存 Source ID,并在全局重置、缓存过期或对象失效后安全重建。