一个由 LLM 驱动居民生活的像素小镇模拟游戏
AI Town 是一款使用 Godot 4.7 开发的单机生活模拟游戏。小镇居民由 LLM 驱动,他们会结合自己的性格、职业、关系、记忆、所在地和正在发生的事情,决定接下来去哪里、做什么、和谁交谈。
玩家可以从俯瞰视角观察小镇,也可以化身进入其中,与居民交流、发布公告或改变天气。玩家带来的影响会成为真实发生的事情,进入居民的经历,并在之后的生活中继续产生变化。
QQ群:130703560
- 修复更换模型服务或 API Key 后旧小镇存档无法继续的问题;游戏会自动检查当前可用模型,尽量迁移失效的居民模型绑定,不会把 API Key 写进存档,也不会因为连接失败删除原存档。
- 修复手机版居民模型分配页面被降级的问题;横屏手机现在使用正式页面并按屏幕比例适配,模型连接发生变化时会自动尝试切换到当前可用模型,失败时也会保留草稿并显示明确原因。
- 修复模型自动恢复在正式启动检查阶段无法加载的问题,旧存档恢复流程现在可以正常进入后续验证。
- beta1 至 beta5 的小镇存档可自动升级为 beta6,并保留原修订;beta6 存档可直接继续游戏。
- 最新存档损坏时,会在 World 与 Agent 完整配对可验证的前提下恢复并发布新修订,不再覆盖原档。
- 保存或恢复意外中断后,可以根据事务日志完成安全协调;证据不足时只提供诊断导出,不会猜测进度或建议删除存档。
- 新增 Windows 超长路径回归,检查中断事务、重读和清理。
- 修复坏档恢复时模型服务不可用导致无法进入小镇的问题;恢复完成后会提示玩家到暂停菜单的“模型设置”更换模型。
居民根据当下处境、关系和正在做的事自然交谈 |
工作由真实地点、设备、步骤和结果共同构成 |
居民不是等待玩家触发的对白角色。他们会在住处、工作地点和公共空间之间活动,处理工作、休息、交往、承诺和没有完成的事情。工作现场和共同任务也会成为真实的话题与搭话动机,交流内容由人物、关系、当前工作和已知事实共同决定。
世界日志记录小镇中已经确认的事件、活动和对话。玩家可以按居民、类型和日期查看事情怎样发生,也可以继续追踪一段正在进行的交流。
每名居民还会独立维护自己的经历、关系和未完成事项。同一件事可以被不同居民以不同方式理解,但客观经过始终由世界系统确认。重要经历会在之后遇到相关人物、地点和事情时重新影响决定。
- 自主生活:居民根据自己的处境作出决定,不沿固定日程或对白树机械行动。
- 自然交流:对话承接人物性格、关系、记忆、当前工作和现场事实。
- 持续记忆:经历、关系、承诺和未完成事项会跨越多次行动,并随存档恢复。
- 真实世界结果:移动、工作、交谈和物品操作都由世界系统检查并返回实际结果。
- 熟人社会:居民彼此认识,但私人关系从本局真正发生的经历中逐步形成。
- 玩家介入:玩家可以亲自交谈、发布公告、发送照片或改变天气,再观察影响如何传播。
仓库当前覆盖小镇运行、室内外移动、居民 Agent、职业与工作链、居民对话、玩家化身、记忆与关系、世界日志、天气、存档以及主要游戏界面。项目仍在持续开发,现阶段重点是让居民在工作、生活和关系变化中保持自然交流,并让行为结果、记忆与界面呈现形成完整闭环。
当前仓库提供源码。可直接下载的桌面版本将在准备完成后发布到 GitHub Releases。
- Godot 4.7 稳定版
- 可用的 LLM Provider 与 API Key
- 支持 Godot 4.7 的桌面系统
- Windows 发布版默认使用兼容渲染,可通过 Direct3D 11(ANGLE)运行,并在需要时回退到原生 OpenGL
git clone https://github.com/mewamew/my_ai_town.git
cd my_ai_town使用 Godot 打开 game/project.godot,运行项目后在模型设置页配置 LLM Provider。模型密钥只应通过游戏内设置保存,不要写入仓库。
WASD或方向键:移动玩家化身E:与附近目标互动
assets/ README 使用的展示资源
game/ Godot 工程根目录
game/agent/ 居民决策、提示词、记忆和模型接入
game/world/ 世界数据、运行规则、地图与表现层
game/ui/ 启动流程、HUD 和各类游戏界面
game/tests/ 合同测试、集成测试与运行验收
tools/ 地图与角色素材制作工具
欢迎通过 Issue 反馈问题,或通过 Pull Request 提交改进。提交代码时请附上与改动范围相匹配的验证结果。
QQ群:130703560
第三方字体、音效和其他资源沿用各自目录中记录的许可证。项目代码与自有素材的统一许可证仍在整理;根许可证发布前,请不要把整个仓库视为已经获得统一再分发授权。




