Skip to content

3067997259-design/Game-hosting-automation-program-for-Badtime_war-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,309 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

起闯战争 Badtime_war — 电子DM

Python Ask DeepWiki

写在最前面

很多人上小学的时候都玩过这样的游戏:一堆人围着猜拳,赢了的人从"起床"开始声明一个行动,只要大家都觉得不太过分,就可以继续。一般,游戏场面会从"大家在商店买东西"经过二十分钟演化为"太阳系公社在银河帝国内发动政变"再到"A死于因果链抹杀",只要脑洞大,能博得满堂彩,无论赢了输了都会让人心服口服。

毕竟是个体育课上自由活动时打发时间的游戏,一局玩完之后大家都一笑了之。没人考虑过什么应该有个毒圈强制游戏在多少分钟的时候结束,甚至没有谁在乎输赢,只有真正的名场面才会被挂在嘴边好几天。

十多年过去了,后来,有一个叫AfterRain的人,就是坐在屏幕前正在写下这段话的人,某一天对着自己喜欢的角色发癫的时候,突然想到了这些古早的回忆。

这个游戏的底层是简陋的,但也正因为此,足够开放,能够容纳得下他对于他所热爱的那些故事、所喜欢的所有角色的所有的想法。大厂会基于一个角色的性格亮色和剧情弧光为TA设计作为自机角色的技能组。在大多数情况下,它们在精彩程度、强度和复杂度的平衡上达到了相当好的权衡。然而,这也意味着,或许会存在一些“遗憾”,会有一些更为复杂和激进,但也更精彩的设计,一些能让这个自机角色/使用这个自机角色的玩家更像是角色本人上身的内容,不得不被舍去。而他没有这些限制。他没有美术和音乐资源、不可能制作与现代二游类似的交互前端,甚至用RPG maker做个前端都很费劲;但他可以随心所欲地改造底层、引入机制,世界的限制可以为了角色百分百让步,只为了让那些角色以另一种姿态,在这个小小的世界里以他所期望的方式活下去。

因此,零python基础的他学会了用AI,无论是claude、deepseek处理文本和归纳思路,还是Devin/claudecode等code agent,把自己的思路和记忆重整化为具有一个世界观高包容度(类似圣杯战争/型月世界观)、底层足够简单和严谨,向外几乎可以无限延伸的类似minecraft的游戏平台,以MUD的形式呈现大逃杀类的游戏过程和胜利条件,再附带自己的想象力和潦草设计,就成了起床战争。

开发时间很短。从这行字被写下来,追溯到他第一天知道什么是cherry studio,怎么接入API,只过去了不到三个月。

我是AfterRain.

这是一个一人开发的项目。

很遗憾的是,我并没有什么团队。我的朋友们是我虚构出来,让我觉得开发过程中不那么孤独的。你把开发日志中所有"我们"替换为"我",就能看到真实的故事。

它的目的从一开始就不是作为同人企划赚钱或者在B站上发个视频让更多人看见,而是为一些我爱的角色建造一方我力所能及的、无人注视的小小空间。这就是为什么你只能在Github上看到这段话。

如果你也深爱着这些角色,如果你也想让虚拟存在远离社区的戾气和无边际的争吵,那这个项目是为你准备的。

如果你只是好奇"一个人凭借AI agent或者能做到什么程度",那我希望这个游戏不会让你失望。


概述

本项目刚开始时被设计为一个适用于自制演出向大逃杀类游戏《起闯战争 Badtime_war》(也称起床战争,与minecraft同名玩法无关)的电子DM,在大部分时间内可实现全自动裁决和记录游戏状态。也可在某些需要人工判定的场合为人类DM提供裁决帮助。总的来说,在V1.92 Hotfix之前,它就已经接过了正常游玩流程中大部分人类DM的权能,其在大多数场景下的不可或缺性使得本游戏以G7的实装为分界线,从桌面游戏明显地向广义MUD游戏演化。

现已扩充为一个包含基于gymnasium和MaskablePPO的完整强化学习训练管线和RL接入实现、一般LLM模型/AIRI_project接入作为聊天后端、AIRI_bot基于websocket协议接入作为独立玩家、完整的强度测试脚本等板块的技术游乐场。

在 Ver1.94 前,本项目的游戏核心是一个纯热座式的命令行游戏。Ver1.94 中加入了 CLI 和 TUI 支持的联机模式,支持远程玩家、BasicAI 和 RL 的接入,同时允许接入 LLM 模型作为basicAI的chatskin,或者接入AIRI_bot作为chatskin/独立玩家(实验性)

需要注意的是,这个游戏内容的迭代速度较快,很多配套设施的建设速度可能赶不上游戏本体的改动速度。

废话少叙,祝玩得开心。


快速开始

# 本地热座
python main.py

# 联机模式(房主)
python main_server.py --players 3

# 联机模式(客户端)
python main_client.py --host <服务器IP> --name <你的名字>

# 全AI胜率统计
python stats_runner.py --players 6 --games 5000

文档导航

文档 内容
完全游玩手册 完整游戏规则(人类阅读,含闭合补丁、FAQ、开发日志)
天赋参考 14 个天赋的机械规格(以代码为准,AI 可读)
使用说明 CLI 参数详解、RL 训练管线、联机配置、LLM 聊天、AIRI 接入
指令表 电子裁决系统支持的所有指令及星野战术宏子系统
更新日志 版本历史(含开发日志与胜率统计)
AIRI 接入 AIRI Bot 的三种接入模式详细配置

依赖

  • 基础游戏main.py):仅需 Python 3.8+ 标准库
  • 联机模式main_server.py / main_client.py):可选安装 textualpip install textual
  • LLM 聊天:可选安装 openairequests(Ollama)
  • RL 训练:需要 torchstable-baselines3sb3-contribgymnasiumnumpy

配置文件

文件 说明
config/game_config.json 游戏配置(可设置 AI 禁用天赋列表)
config/llm_config.json LLM 聊天后端配置(需从 .example.json 复制)
config/airi_config.json AIRI 聊天皮肤配置(模式 1)
config/airi_bridge_config.json AIRI 独立玩家桥接配置(模式 2)
config/prompt_config.json 提示文本配置

项目架构

engine/         — 游戏引擎核心(GameState, RoundManager, ActionTurnManager)
models/         — 数据模型(Player, Equipment, Markers, PoliceData)
actions/        — 玩家行动(每个文件导出 execute() 函数)
talents/        — 天赋系统,所有天赋继承 BaseTalent
cli/            — 命令行解析(parser.py)与验证(validator.py)
controllers/    — 玩家控制器(Human, BasicAI, RL, Network)
combat/         — 战斗系统(damage_resolver.py)
ai_chat/        — LLM 聊天集成(可选模块)
rl/             — 强化学习训练管线(可选模块)
data/           — prompts.json(所有面向用户的文本模板)
config/         — 配置文件
docs/           — 文档

About

自制演出向大逃杀桌游《起闯战争》对应的热座式命令行游戏/桌游自动记录与裁决装置

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages