a261eaa8abfffe7a3aa58e78aeb237fe8c662fa1
- Add EventLog.cs: scrollable event log panel showing game events - Color-coded entries for different event types - Toggle visibility, clear button, timestamps - Auto-scroll to newest entries - Add Chinese font support (Source Han Sans SC) - SourceHanSansSC-Regular.otf font file - ChineseFontSetup.cs editor tool for TMP font asset generation - Configure as fallback font for TextMeshPro - Fix particle system velocity curve warnings in WeatherEffects.cs - Ensure all velocity axes use consistent curve mode - Add comprehensive README.md with project documentation - Architecture overview, features, tech stack - Quick start guide, Unity client structure - Communication protocol, development notes 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The Island - 荒岛生存模拟游戏
一个实时多人互动的荒岛生存模拟游戏,玩家可以通过命令与 AI 角色互动,帮助他们在荒岛上生存。
项目架构
the-island/
├── backend/ # Python FastAPI 后端服务
│ └── app/
│ ├── main.py # 应用入口
│ ├── server.py # WebSocket 服务器
│ ├── engine.py # 游戏引擎核心逻辑
│ ├── models.py # SQLAlchemy 数据模型
│ ├── schemas.py # Pydantic 消息模式
│ ├── llm.py # LLM 集成 (对话生成)
│ └── database.py # 数据库配置
├── frontend/ # Web 调试客户端
│ ├── app.js # JavaScript 客户端
│ └── debug_client.html # 调试页面
├── unity-client/ # Unity 6 游戏客户端
│ └── Assets/
│ ├── Scripts/ # C# 游戏脚本
│ ├── Fonts/ # 字体资源 (含中文支持)
│ └── Editor/ # 编辑器工具
└── island.db # SQLite 数据库
功能特性
游戏系统
- 生存机制: 角色有 HP、能量、心情三大属性
- 昼夜循环: 黎明 → 白天 → 黄昏 → 夜晚
- 天气系统: 晴天、多云、雨天、暴风雨、炎热、雾天
- 社交系统: 角色间自主社交互动
- 休闲模式: 自动复活、降低难度
玩家命令
| 命令 | 格式 | 金币消耗 | 效果 |
|---|---|---|---|
| feed | feed <角色名> |
10g | +20 能量, +5 HP |
| heal | heal <角色名> |
15g | +30 HP |
| talk | talk <角色名> [话题] |
0g | 与角色对话 |
| encourage | encourage <角色名> |
5g | +15 心情 |
| revive | revive <角色名> |
10g | 复活死亡角色 |
| check | check |
0g | 查看所有状态 |
| reset | reset |
0g | 重置游戏 |
AI 角色
- Jack (勇敢) - 蓝色
- Luna (狡猾) - 粉色
- Bob (诚实) - 绿色
每个角色有独特性格,会根据性格做出不同反应和社交行为。
技术栈
后端
- Python 3.11+
- FastAPI - 异步 Web 框架
- WebSocket - 实时双向通信
- SQLAlchemy - ORM 数据持久化
- SQLite - 轻量级数据库
- Anthropic Claude - LLM 对话生成
Unity 客户端
- Unity 6 LTS (6000.3.2f1)
- TextMeshPro - 高质量文本渲染
- NativeWebSocket - WebSocket 通信
- 2.5D 风格 - 精灵 + Billboard UI
快速开始
1. 启动后端服务
cd backend
pip install -r requirements.txt
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
2. 启动 Unity 客户端
- 使用 Unity 6 打开
unity-client文件夹 - 打开
Assets/Scenes/main.unity - 点击 Play 运行游戏
3. Web 调试客户端 (可选)
在浏览器打开 frontend/debug_client.html
Unity 客户端结构
核心脚本
| 脚本 | 功能 |
|---|---|
NetworkManager.cs |
WebSocket 连接管理、消息收发 |
GameManager.cs |
游戏状态管理、角色生成 |
UIManager.cs |
主 UI 界面 (顶部状态栏、底部命令输入) |
EventLog.cs |
事件日志面板 (显示游戏事件) |
AgentVisual.cs |
角色视觉组件 (精灵、血条、对话框) |
EnvironmentManager.cs |
环境场景 (沙滩、海洋、天空) |
WeatherEffects.cs |
天气粒子效果 (雨、雾、热浪) |
视觉特性
- 程序化生成的 2.5D 角色精灵
- Billboard UI (始终面向摄像机)
- 动态天气粒子系统
- 渐变天空盒 (随时间变化)
- 海浪动画效果
中文字体支持
项目使用 思源黑体 (Source Han Sans SC) 支持中文显示。
手动配置步骤
- 选择
Assets/Fonts/SourceHanSansSC-Regular.otf - 右键 → Create → TextMeshPro → Font Asset → SDF
- 打开 Edit → Project Settings → TextMesh Pro
- 在 Fallback Font Assets 中添加生成的字体资产
通信协议
WebSocket 端点
ws://localhost:8000/ws/{username}
事件类型
# 核心事件
TICK # 游戏心跳
AGENTS_UPDATE # 角色状态更新
AGENT_SPEAK # 角色发言
AGENT_DIED # 角色死亡
# 时间系统
PHASE_CHANGE # 时段变化 (黎明/白天/黄昏/夜晚)
DAY_CHANGE # 新的一天
WEATHER_CHANGE # 天气变化
# 玩家互动
FEED # 喂食反馈
HEAL # 治疗反馈
TALK # 对话反馈
ENCOURAGE # 鼓励反馈
REVIVE # 复活反馈
# 社交系统
SOCIAL_INTERACTION # 角色间社交
AUTO_REVIVE # 自动复活 (休闲模式)
环境变量
创建 .env 文件:
ANTHROPIC_API_KEY=your_api_key_here
开发说明
添加新命令
- 在
backend/app/schemas.py添加事件类型 - 在
backend/app/engine.py添加命令处理逻辑 - 在
unity-client/Assets/Scripts/Models.cs添加数据模型 - 在
unity-client/Assets/Scripts/NetworkManager.cs添加事件处理
调试
- Unity 控制台查看日志
- Web 调试客户端查看原始消息
- 后端日志查看服务器状态
许可证
MIT License
Description
项目名: 《荒岛:人性的试炼》 (Project: The Island)
设定: 10 个性格迥异的 AI 被投放到荒岛。有老实人、心机女、暴躁哥等。目标是活到最后。
互动循环:
白天(探索与社交): AI 搜集资源,彼此聊天。
观众互动: 免费发弹幕可以作为“风声”干扰 AI。
付费点: 大哥刷礼物空投物资包。AI 会为了争夺物资包大打出手,或者某人独占后分给其他人(建立社交地位)。
黄昏(投票与审判): 每天结束时,AI 们围坐在火堆旁,讨论今天谁贡献最少,投票流放一人。
核心付费点(赎罪券): 如果某个 AI 即将被流放,它会哭诉求饶。此时,如果有人为它刷特定礼物,它会获得“免死金牌”。该 AI 会极其感激这位救命恩人,并在后续游戏中成为恩人的死忠粉。
夜晚(梦境与密谋): AI 睡觉。
高级玩法: 大哥进入 AI 梦境(私聊),告诉它明天陷害谁。
Languages
C#
63.2%
Python
20.2%
ShaderLab
8.5%
GLSL
2.4%
HLSL
2.2%
Other
3.5%