add readme
This commit is contained in:
168
README.md
168
README.md
@@ -1,13 +1,167 @@
|
||||
从小一直是修仙网文的读者,从最早最早的蜀山仙侠传,到比较新的赤心巡天,修仙网文陪伴了我非常多的时间。
|
||||
# 修仙世界模拟器 (Cultivation World Simulator)
|
||||
|
||||
由于我本人也是游戏AI行业的工作者,对LLM这两年的进步感触很深。我认为,现在的LLM智能水平,已经足够支持起来一些仙侠风格的世界模拟了。
|
||||
一个基于规则和AI驱动的修仙世界模拟器,旨在创造一个真正活着的、有沉浸感的仙侠世界。
|
||||
|
||||
但是,纯粹只有LLM为NPC提供决策和对话能力是不够的。首先,要有可信的规则打底,作为修仙世界的“世界模型”。之后,才是接入LLM,使其生动起来。
|
||||
## 简介
|
||||
|
||||
我是希望,能够有纯粹的、快乐的、直接的、活着的修仙世界的沉浸感。
|
||||
修仙世界模拟器是一个结合传统游戏规则系统和现代AI技术的仿真项目。通过建立完整的修仙世界模型,包括地形、角色、修炼体系、人际关系等要素,创造一个可以自主运行、充满生机的虚拟修仙世界。
|
||||
|
||||
有一些游戏公司其实有宣扬过自己可以实现类似的功能,但是最后都沦为了纯粹的宣传工具。
|
||||
项目的核心理念是:**先建立可信的规则体系作为"世界模型"基础,再接入AI使世界生动起来**。
|
||||
|
||||
也不是像斯坦福小镇那样的纯粹的研究,而是能给玩家提供代入感和沉浸感的实际世界。
|
||||
## 截图预览
|
||||
|
||||
我想了下,不如干脆自己来干吧。先动手,动起手来比什么都强。
|
||||

|
||||
|
||||
## 功能开发进度
|
||||
|
||||
### 🏗️ 基础系统
|
||||
- ✅ 基础世界地图系统
|
||||
- ✅ 多样化地形类型(平原、山脉、森林、沙漠、水域等)
|
||||
- ✅ 时间系统(年月日历)
|
||||
- ✅ 前端显示界面(pygame)
|
||||
- ✅ 基础模拟器框架
|
||||
- ✅ 项目文档(README)
|
||||
- [ ] 配置文件系统(config)
|
||||
- [ ] Web前端支持(从pygame切换)
|
||||
- [ ] ECS并行工具(后期考虑)
|
||||
|
||||
### 🗺️ 地块系统
|
||||
- ✅ 基础tile地块系统
|
||||
- [ ] 同tile内NPC相互交互
|
||||
- [ ] 乡村和城镇的机制
|
||||
- [ ] 灵气分布与产出设计
|
||||
- [ ] 地块间移动(move_to_region action)
|
||||
|
||||
### 👤 角色系统
|
||||
- ✅ 角色基础属性系统
|
||||
- ✅ 修炼境界体系
|
||||
- ✅ 灵根系统
|
||||
- ✅ 基础移动动作
|
||||
- [ ] 角色关系系统
|
||||
- [ ] 性格系统设计
|
||||
- [ ] 角色特殊能力
|
||||
- [ ] 战斗相关
|
||||
- [ ] 属性点分配
|
||||
- [ ] 技能系统
|
||||
- [ ] 装备系统
|
||||
- [ ] 法宝系统
|
||||
- [ ] 阵法
|
||||
- [ ] 技能学习系统:
|
||||
- [ ] 可学习技能
|
||||
- [ ] 个人技(灵活融入代码)
|
||||
- [ ] 生活技能
|
||||
- [ ] 凡人角色支持
|
||||
- [ ] 角色突破机制
|
||||
|
||||
### 🏛️ 组织系统
|
||||
- [ ] 宗门系统
|
||||
- [ ] 世家系统
|
||||
- [ ] 朝廷系统(待定)
|
||||
- [ ] 组织间关系网络
|
||||
|
||||
### ⚡ 动作系统
|
||||
- ✅ 基础移动动作
|
||||
- [ ] 有明确规则的定义动作
|
||||
- [ ] 影响人际关系的LLM动作
|
||||
- [ ] 动作执行框架
|
||||
|
||||
### 🎭 事件系统
|
||||
- [ ] 世界范围大事件:
|
||||
- [ ] 拍卖会
|
||||
- [ ] 秘境探索
|
||||
- [ ] 比武大会
|
||||
- [ ] 规则发起事件
|
||||
- [ ] NPC发起事件
|
||||
- [ ] 自然事件:
|
||||
- [ ] 自然灾害
|
||||
- [ ] 天灾
|
||||
- [ ] 战争
|
||||
- [ ] 兽潮
|
||||
|
||||
### ⚔️ 战斗系统
|
||||
- [ ] 战斗方式设计
|
||||
- [ ] 优劣互克关系
|
||||
- [ ] 胜率计算系统
|
||||
- [ ] 战斗规则引擎
|
||||
|
||||
### 🎒 物品系统
|
||||
- [ ] 基础物品框架
|
||||
- [ ] 物品属性系统
|
||||
- [ ] 物品交易机制
|
||||
|
||||
### 🌿 生态系统
|
||||
- [ ] 魔兽系统
|
||||
- [ ] 动植物生态
|
||||
- [ ] 生物间相互关系
|
||||
|
||||
### 🤖 AI增强系统
|
||||
- [ ] 角色AI系统(规则AI + LLM接口预留)
|
||||
- [ ] LLM驱动的NPC对话
|
||||
- [ ] 智能决策系统
|
||||
- [ ] 动态剧情生成
|
||||
- [ ] NPC观测空间设计
|
||||
- [ ] NPC之间关系交互
|
||||
- [ ] LLM接口集成
|
||||
|
||||
### 🏛️ 世界背景系统
|
||||
- [ ] 上古历史生成
|
||||
- [ ] 世界观设定
|
||||
- [ ] 背景故事框架
|
||||
|
||||
## 使用方法
|
||||
|
||||
### 环境要求
|
||||
- Python 3.8+
|
||||
- pygame
|
||||
- PyYAML
|
||||
|
||||
### 运行步骤
|
||||
1. 克隆项目到本地:
|
||||
```bash
|
||||
git clone https://github.com/your-username/cultivation-world-simulator.git
|
||||
cd cultivation-world-simulator
|
||||
```
|
||||
|
||||
2. 安装依赖(如需要的话):
|
||||
```bash
|
||||
pip install pygame pyyaml
|
||||
```
|
||||
|
||||
3. 运行模拟器:
|
||||
```bash
|
||||
python run.py
|
||||
```
|
||||
|
||||
### 基本操作
|
||||
- 启动后会自动生成随机地图
|
||||
- 可以观察角色在世界中的移动和行为
|
||||
- 按ESC退出程序
|
||||
|
||||
## 项目背景
|
||||
|
||||
从小一直是修仙网文的读者,从最早的蜀山仙侠传,到比较新的赤心巡天,修仙网文陪伴了我非常多的时间。
|
||||
|
||||
作为游戏AI行业的从业者,对LLM这两年的进步感触很深。我认为,现在的LLM智能水平,已经足够支持起来一些仙侠风格的世界模拟了。
|
||||
|
||||
但是,纯粹只有LLM为NPC提供决策和对话能力是不够的。首先,要有可信的规则打底,作为修仙世界的"世界模型"。之后,才是接入LLM,使其生动起来。
|
||||
|
||||
我希望能够创造出纯粹的、快乐的、直接的、活着的修仙世界的沉浸感。不是像一些游戏公司的纯粹宣传工具,也不是像斯坦福小镇那样的纯粹研究,而是能给玩家提供真实代入感和沉浸感的实际世界。
|
||||
|
||||
## 技术架构
|
||||
|
||||
- **前端显示**: pygame (计划未来支持Web)
|
||||
- **模拟引擎**: 自研事件驱动模拟器
|
||||
- **世界模型**: 基于规则的确定性系统
|
||||
- **AI集成**: 预留LLM接口,支持混合决策
|
||||
|
||||
## 贡献指南
|
||||
|
||||
欢迎对修仙世界模拟器项目的贡献!无论是代码、创意还是测试反馈都非常宝贵。
|
||||
|
||||
## 许可证
|
||||
|
||||
本项目采用 [LICENSE](LICENSE) 文件中指定的许可证。
|
||||
|
||||
## 联系方式
|
||||
|
||||
如果您对项目有任何问题或建议,欢迎提交 Issue 或 Pull Request。
|
||||
|
||||
BIN
assets/screenshot.png
Normal file
BIN
assets/screenshot.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 371 KiB |
@@ -147,8 +147,8 @@ def get_new_avatar_from_ordinary(world: World, current_year: Year, name: str, ag
|
||||
birth_year = current_year - age.age
|
||||
birth_month = random.choice(list(Month))
|
||||
cultivation_progress = CultivationProgress(0)
|
||||
pos_x = random.randint(0, 100)
|
||||
pos_y = random.randint(0, 100)
|
||||
pos_x = random.randint(0, world.map.width)
|
||||
pos_y = random.randint(0, world.map.height)
|
||||
gender = random.choice(list(Gender))
|
||||
|
||||
return Avatar(
|
||||
|
||||
@@ -67,7 +67,6 @@ class Tile():
|
||||
class Map():
|
||||
"""
|
||||
通过dict记录position 到 tile。
|
||||
TODO: 有特色的地貌,比如西部大漠,东部平原,最东海洋和岛国。南边热带雨林,北边雪山和冰原。
|
||||
"""
|
||||
def __init__(self, width: int, height: int):
|
||||
self.tiles = {}
|
||||
|
||||
Reference in New Issue
Block a user