Skip to content

Latest commit

 

History

234 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI Town

一个由 LLM 驱动居民生活的像素小镇模拟游戏

Godot 4.7 GDScript Development status

AI Town 小镇全景

AI Town 是一款使用 Godot 4.7 开发的单机生活模拟游戏。小镇居民由 LLM 驱动,他们会结合自己的性格、职业、关系、记忆、所在地和正在发生的事情,决定接下来去哪里、做什么、和谁交谈。

玩家可以从俯瞰视角观察小镇,也可以化身进入其中,与居民交流、发布公告或改变天气。玩家带来的影响会成为真实发生的事情,进入居民的经历,并在之后的生活中继续产生变化。

交流群

QQ群:130703560

最新更新

2026 年 8 月 25 日更新

  • 修复更换模型服务或 API Key 后旧小镇存档无法继续的问题;游戏会自动检查当前可用模型,尽量迁移失效的居民模型绑定,不会把 API Key 写进存档,也不会因为连接失败删除原存档。
  • 修复手机版居民模型分配页面被降级的问题;横屏手机现在使用正式页面并按屏幕比例适配,模型连接发生变化时会自动尝试切换到当前可用模型,失败时也会保留草稿并显示明确原因。
  • 修复模型自动恢复在正式启动检查阶段无法加载的问题,旧存档恢复流程现在可以正常进入后续验证。
  • beta1 至 beta5 的小镇存档可自动升级为 beta6,并保留原修订;beta6 存档可直接继续游戏。
  • 最新存档损坏时,会在 World 与 Agent 完整配对可验证的前提下恢复并发布新修订,不再覆盖原档。
  • 保存或恢复意外中断后,可以根据事务日志完成安全协调;证据不足时只提供诊断导出,不会猜测进度或建议删除存档。
  • 新增 Windows 超长路径回归,检查中断事务、重读和清理。
  • 修复坏档恢复时模型服务不可用导致无法进入小镇的问题;恢复完成后会提示玩家到暂停菜单的“模型设置”更换模型。

查看完整《更新日志》

小镇里的生活

居民在室内自然交谈

居民根据当下处境、关系和正在做的事自然交谈

居民在工作坊完成工作

工作由真实地点、设备、步骤和结果共同构成

居民经过小镇市集

居民不是等待玩家触发的对白角色。他们会在住处、工作地点和公共空间之间活动,处理工作、休息、交往、承诺和没有完成的事情。工作现场和共同任务也会成为真实的话题与搭话动机,交流内容由人物、关系、当前工作和已知事实共同决定。

发生过的事会留下来

AI Town 世界日志

世界日志记录小镇中已经确认的事件、活动和对话。玩家可以按居民、类型和日期查看事情怎样发生,也可以继续追踪一段正在进行的交流。

每名居民还会独立维护自己的经历、关系和未完成事项。同一件事可以被不同居民以不同方式理解,但客观经过始终由世界系统确认。重要经历会在之后遇到相关人物、地点和事情时重新影响决定。

核心体验

  • 自主生活:居民根据自己的处境作出决定,不沿固定日程或对白树机械行动。
  • 自然交流:对话承接人物性格、关系、记忆、当前工作和现场事实。
  • 持续记忆:经历、关系、承诺和未完成事项会跨越多次行动,并随存档恢复。
  • 真实世界结果:移动、工作、交谈和物品操作都由世界系统检查并返回实际结果。
  • 熟人社会:居民彼此认识,但私人关系从本局真正发生的经历中逐步形成。
  • 玩家介入:玩家可以亲自交谈、发布公告、发送照片或改变天气,再观察影响如何传播。

当前实现

仓库当前覆盖小镇运行、室内外移动、居民 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

授权说明

第三方字体、音效和其他资源沿用各自目录中记录的许可证。项目代码与自有素材的统一许可证仍在整理;根许可证发布前,请不要把整个仓库视为已经获得统一再分发授权。

About

我的AI小镇

Resources

Stars

684 stars

Watchers

7 watching

Forks

Releases

Packages

Contributors

Languages