OhMyGame
OhMyGame은 AI로 게임을 만들 수 있는 오픈소스 스튜디오로, 디자인·구축·플레이테스트·출판을 하나의 앱에서 모델 키와 함께 수행합니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기旨在创造一个现代化的,AI赋能的coc跑团游玩平台
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗CoC Player 是一个本地优先的 AI 跑团桌面应用:AI 担任主持人和 NPC,玩家可独自开团,也可在可信局域网内邀请其他玩家加入。
规则系统只实现了《克苏鲁的呼唤》第七版。规则相关逻辑走插件式 RuleEngine,接别的规则系统在架构上是通的,但目前只有 CoC 一套引擎——项目因此叫 CoC Player 而不是泛化的名字。
当前项目适合本地桌面使用、开发测试和可信局域网联机。它没有面向公网部署所需的账号体系、强身份认证、TLS 终止、权限隔离和抗滥用措施,请勿直接暴露到互联网。
首页一键体验原创示例团《雾港失灯事件》,自动准备预设调查员;缺少 AI 配置时先进入设置,连接测试成功后返回继续;
模组导入与 AI 结构化解析,支持文本、PDF、Word 和常见图片格式,图片解析需要视觉模型;
CoC 七版完整车卡向导、掷骰/自定义属性、职业与技能、Excel 导入、AI 生成、草稿和角色编辑;
AI 主持、NPC/队友协作、SSE 流式叙述、事件历史、滚动剧情摘要、上下文预算与规则书/模组 RAG;
标准工具调用驱动的 CoC 检定、理智、场景状态和 NPC 行动,并保留文本指令兼容路径;
CoC 结构化战斗、追逐、已知地点调查板和分头行动;规划器确认开战后,即使 KP 漏调工具,后端也会确定性进入战斗轮;
多席位房间、房间码、等待大厅、真人认领与可信局域网主机连接;局域网可达性默认关闭, 需房主在「设置 → 联机」显式开启并重启应用(详见下文「联机」);
Tauri 桌面外壳、PyInstaller 后端 sidecar、SQLite 本地数据和 macOS/Windows 构建流程。
CoC 规则的确定性/裁量/未实现边界见规则覆盖矩阵——孤注一掷、幸运消耗、不定性疯狂与魔法目前不在确定性引擎内。
X-Player-Token,只能用于可信网络中的轻量席位归属。上述「规划中」项目里有几项需要仓库外的授权素材/签名凭据/更新源才能落地,具体完成条件见 发布与产品缺口门禁。
日常游玩优先使用桌面构建,前后端同源运行,数据保存在系统应用数据目录。当前仓库尚未提供可公开下载的审计安装包,需要在本机完成构建:
pnpm install
cd server
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[packaging]"
cd ..
pnpm desktop:build
桌面构建需要 Node.js 20.19+、pnpm、Python 3.10+ 和 Rust。macOS/Windows 的产物位置、平台限制和排查方法见 桌面打包文档。公开分发前必须先完成该文档中的内容审计。
首次进入应用后:
安装前端和后端开发依赖:
pnpm install
cd server
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
alembic upgrade head
cd ..
同时启动 FastAPI 和 Vite:
pnpm dev
也可以分别运行 pnpm dev:server 与 pnpm dev:web。前端默认地址为 http://localhost:5173,后端为 http://localhost:8000,Vite 会代理 /api 请求。
AI 配置优先通过应用设置页管理,存放在本地数据目录旁的 ai_settings.json。不要提交真实 API Key。
# 前端
pnpm --filter web exec vitest run
pnpm --filter web typecheck
pnpm --filter web build
pnpm --filter web lint
# 后端
server/.venv/bin/ruff check server/app server/tests
server/.venv/bin/pytest -q
cd server && .venv/bin/python -m evals.run --smoke
应用日志同时写 stdout 和 logs/ 目录(开发态 server/logs/,桌面构建在应用数据目录的
logs/):
app.log:全部应用日志,按 5 MB × 3 份轮转;timing.log:只留各环节的「耗时|…」行与「本回合 N% 的输出是模型思考」告警,
排查「一个回合为什么慢」直接看这一个文件即可。日志目录可用 LOG_DIR 覆盖;日志级别由 LOG_LEVEL 控制(默认 INFO,设成 WARNING 会连耗时行
一起静音,排查期间别调)。桌面构建由 Tauri 拉起的后端 stdout 不落到
~/Library/Logs/com.trpgplayer.app/TRPG Player.log,以文件日志为准。
终检与去口癖默认先用「副手」快模型,结果不可用(解析失败、改写稿为空/长度失真、口癖没减少)
时自动回退叙事模型;想全部走叙事模型,在 .env 设 CHECKS_USE_FAST_MODEL=false 后重启。
后端默认只监听本机,同一网络里的其他设备也连不上。要让朋友加入:
两道闸决定谁能连进来(server/app/services/net_access.py):监听地址是主闸,
开关关着就根本连不上;请求来源校验是补充,关掉开关立即对新请求生效,
并且即便端口被误转发到公网,来自互联网的请求也一律拒绝。
这只适用于可信网络。 本应用没有账号体系也没有传输加密,同一网络里知道地址和房间码的人 就能读写房间、消耗房主配置的 AI 额度。
房主的凭据与素材库不在这个范围内:AI 配置的增删改查、素材库的删改、新手团开局等 「管理本机资产」的端点只接受本机来源,客人一律拒绝(ADR-007)。 客人模式下这些页面读写的是客人自己的机器。
和不在同一网络的朋友开团:用 Tailscale 一类覆盖网络把双方接进同一个虚拟内网 (其地址段已放行),不要做端口转发或公网隧道——见 跨网联机:用 Tailscale 和不在同一网络的朋友开团。
| 层 | 选型 |
|---|---|
| 前端 | React 19、TypeScript 6、Vite 8、Tailwind CSS 4、Zustand 5 |
| 后端 | Python 3.10+、FastAPI、SQLAlchemy、Alembic |
| 数据 | SQLite、本地素材目录、fastembed RAG |
| 桌面 | Tauri 2、PyInstaller onedir sidecar |
| AI | OpenAI 兼容协议与 Anthropic 协议,可配置模型与上下文窗口 |
核心数据流为:
玩家动作 → TurnPlan 裁定 → KP 工具循环/规则引擎/子代理 → 持久化事件 → SSE → 游戏界面
主要目录:
apps/web/ React 前端
server/app/ FastAPI、服务、AI、规则和数据模型
server/tests/ 后端测试
server/evals/ 叙事与指令评估
src-tauri/ 桌面外壳
server/openapi.json REST OpenAPI 契约真源
docs/ 架构决策、设计、实施和打包文档
项目代码采用 Apache License 2.0。这不自动授权规则书、商业模组、用户上传内容、字体、模型权重或其他第三方素材。详细范围和公开分发要求见 内容与素材声明。
仓库中的开发数据库、种子目录或缓存不应被默认视为可公开分发内容。发布者必须逐项完成来源和许可证审计,只把原创或已明确授权的内容放入安装包。