# my_ai_town
**Repository Path**: hegp/my_ai_town
## Basic Information
- **Project Name**: my_ai_town
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-09-13
- **Last Updated**: 2026-09-13
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
AI Town
一个由 LLM 驱动居民生活的像素小镇模拟游戏

AI Town 是一款使用 Godot 4.7 开发的单机生活模拟游戏。小镇居民由 LLM 驱动,他们会结合自己的性格、职业、关系、记忆、所在地和正在发生的事情,决定接下来去哪里、做什么、和谁交谈。
玩家可以从俯瞰视角观察小镇,也可以化身进入其中,与居民交流、发布公告或改变天气。玩家带来的影响会成为真实发生的事情,进入居民的经历,并在之后的生活中继续产生变化。
## 交流群
QQ群:130703560
## 最新更新
### 2026 年 9 月 2 日更新
- 修复居民同时接触多段对话时,旁听内容可能因轮次编号相同而被漏掉的问题;室内像素场景也会继续保持清晰,不会被错误的平滑采样模糊。
- 修复 30 人小镇从加载游戏页更改居民模型时可能引用不存在住宅、导致改绑页面无法使用的问题。
- 优化玩家发送照片与居民聊天:照片只在转换期间临时保存在内存中,不再写入照片文件;居民会先把图片转换成文字,之后只把文字作为对话和记忆的一部分。
- 修复照片引用进入旁听、看诊、日志、存档和居民后续决策的问题;图片转换完成后会立即清理原始图片和临时引用,减少长时间运行后的请求堆积与卡顿。
[查看完整《更新日志》](更新日志.md)
## 小镇里的生活
居民根据当下处境、关系和正在做的事自然交谈
|
工作由真实地点、设备、步骤和结果共同构成
|

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

世界日志记录小镇中已经确认的事件、活动和对话。玩家可以按居民、类型和日期查看事情怎样发生,也可以继续追踪一段正在进行的交流。
每名居民还会独立维护自己的经历、关系和未完成事项。同一件事可以被不同居民以不同方式理解,但客观经过始终由世界系统确认。重要经历会在之后遇到相关人物、地点和事情时重新影响决定。
## 核心体验
- **自主生活**:居民根据自己的处境作出决定,不沿固定日程或对白树机械行动。
- **自然交流**:对话承接人物性格、关系、记忆、当前工作和现场事实。
- **持续记忆**:经历、关系、承诺和未完成事项会跨越多次行动,并随存档恢复。
- **真实世界结果**:移动、工作、交谈和物品操作都由世界系统检查并返回实际结果。
- **熟人社会**:居民彼此认识,但私人关系从本局真正发生的经历中逐步形成。
- **玩家介入**:玩家可以亲自交谈、发布公告、发送照片或改变天气,再观察影响如何传播。
## 当前实现
仓库当前覆盖小镇运行、室内外移动、居民 Agent、职业与工作链、居民对话、玩家化身、记忆与关系、世界日志、天气、存档以及主要游戏界面。项目仍在持续开发,现阶段重点是让居民在工作、生活和关系变化中保持自然交流,并让行为结果、记忆与界面呈现形成完整闭环。
## 获取与运行
当前仓库提供源码。可直接下载的桌面版本将在准备完成后发布到 GitHub Releases。
### 环境要求
- Godot 4.7 稳定版
- 可用的 LLM Provider 与 API Key
- 支持 Godot 4.7 的桌面系统
- Windows 发布版默认使用兼容渲染,可通过 Direct3D 11(ANGLE)运行,并在需要时回退到原生 OpenGL
### 从源码启动
```bash
git clone https://github.com/mewamew/my_ai_town.git
cd my_ai_town
```
使用 Godot 打开 `game/project.godot`,运行项目后在模型设置页配置 LLM Provider。模型密钥只应通过游戏内设置保存,不要写入仓库。
### 基本操作
- `WASD` 或方向键:移动玩家化身
- `E`:与附近目标互动
## 项目结构
```text
assets/ README 使用的展示资源
game/ Godot 工程根目录
game/agent/ 居民决策、提示词、记忆和模型接入
game/world/ 世界数据、运行规则、地图与表现层
game/ui/ 启动流程、HUD 和各类游戏界面
game/tests/ 合同测试、集成测试与运行验收
tools/ 地图与角色素材制作工具
```
## 参与开发
欢迎通过 Issue 反馈问题,或通过 Pull Request 提交改进。提交代码时请附上与改动范围相匹配的验证结果。
## 交流群
QQ群:`130703560`
## 授权说明
第三方字体、音效和其他资源沿用各自目录中记录的许可证。项目代码与自有素材的统一许可证仍在整理;根许可证发布前,请不要把整个仓库视为已经获得统一再分发授权。