Steam

创建于:2016-04-06

创建人: Humble Ray

297 信息 1302 成员
Steam聚集地
投票帝国开发者@Steam 的内容(查看所有内容
开发日志:让帝国“吵”起来 —— 引入 Ollama 本地大模型驱动的回合评论

最近在《投票帝国》(前称《民选帝国》)的开发中,我一直在思考一个问题:如何让冷冰冰的政令数值变成有血有肉的世界反馈?

如果只是弹出一句“支持率下降 5%”,玩家很难感受到那种身处权力漩涡的紧迫感。我想要的是那种“推特”式的、充满了情绪化、偏见甚至阴阳怪气的民众声音。于是,我决定在游戏中集成 Ollama,利用本地大模型(Local LLM)为每个回合、每种突发事件生成实时的民众评论。

以下是这次技术集成的核心思路和一些避坑指南。

为什么选择本地 LLM?

很多独立游戏会选择接入 OpenAI API,但对于《投票帝国》这种需要频繁交互的游戏来说,这并不理想:

  • 零成本: 玩家不需要支付额外的 API 费用,我也没必要承担高昂的服务器开销。
  • 隐私与离线: 玩家的所有决策和评论生成都在本地完成,无需联网。
  • 可控的延迟: 我们选择了 Qwen 3.5 0.8B 这种超轻量模型,在现代显卡上几乎是瞬时响应。

技术实现:把 Ollama “塞”进 Electron

我们没有要求玩家自行安装 Ollama,而是直接将其二进制文件和模型文件(GGUF)打包进了游戏的 extraResources 中。

1. 自动化环境审计

AI 虽好,但不能拖垮玩家的电脑。我在代码里加入了一套严苛的硬件检测逻辑:

  • 内存门槛: 系统内存必须 6GB$。
  • 显存优先: 为了保证生成速度,我通过 nvidia-smi 和注册表查询,确保玩家至少有 2.5GB 的可用显存(VRAM)。如果检测不达标,系统会优雅地回退到传统的静态文案,避免由于硬件过载导致的程序崩溃。

2. 私有端口与进程隔离

为了不干扰玩家电脑上可能已经安装的 Ollama 服务,我们强制指定了私有端口 20120。

此外,针对 Windows 平台常见的一个坑——关闭游戏后推理引擎可能变成“僵尸进程”持续占用显存,我写了一个清理机制:在游戏退出时,通过 taskkill 强制清理整个进程树。

TypeScript

// 针对 Windows 的“僵尸进程”补丁
if (process.platform === 'win32' && ollamaServerProcess.pid) {
exec(`taskkill /pid ${ollamaServerProcess.pid} /t /f`, (err) => {
if (err) console.error('[ollama] 强制清理进程失败:', err);
});
}

赋予 AI “人格”:Prompt 的设计逻辑

为了避免那种一股子“AI味儿”的官话,我们在 ScenarioConfig 中为每种场景(如:战争爆发、通胀、失业潮、选举舞弊传闻)定义了非常具体的系统指令。

我们的核心规则只有几条:

  1. 拒绝助手感: 严禁出现“好的,这是为您生成的评论”之类的废话。
  2. 严格字数限制: 模仿社交媒体,必须在 140 字以内。
  3. 情绪化: 允许并鼓励民众表现出恐惧、愤怒、盲目爱国、愤世嫉俗或冷嘲热讽。

示例(通货膨胀场景):

System Prompt: "你是帝国的一名普通公民。物价涨得比反应速度还快。用愤怒或苦涩的幽默发一条短动态。不要有助手的语气,不要引述,不要标语。"

目前的进展

目前,本地 AI 运行环境已经能够随游戏启动无感初始化。正如日志图里显示的,模型已经成功加载并在后台就绪。

下一阶段,我将进一步优化评论的“记忆力”,让 AI 能根据玩家之前的名望和历史政策,产生更具连续性的抨击或赞美。


(转发自:原日志地址
超现实硬核政治模拟游戏即将上线

作为一个艰难生存(不好宣传,懂得都懂)的政治模拟游戏,我们的游戏主系统已经搭建完成了,接下来就剩把军事、外交、外贸和卡牌系统内嵌进来即可。


说到我们的游戏,我可以毫不夸张地说,应该算是市面上最全面的政治经济外交外贸模拟游戏了(毕竟我们团队里面有专门学经济学的硕士)。其实写游戏不是特别难,难的是读论文以及做数学题……

Image title

上面只是用到的数学方程图的一部分,可以从右侧的滚动条看到我们用了多少公式。(‾◡‾)

Image title

在游戏里面,我们挑选出了现实里面具有影响力的国家(经济上/政治上/军事上),将它们做成可以交互的国家。还加入了一些非国家政治体(比如贩Du集团、金三角电诈集团等等),而且每一个不同的集团都会对游戏的主数值产生影响。如果根除了某些电诈集团,那么国内被诈骗的人也会变少,同时经济效率也将得到提升。最重要的是:还可以成为玩家的一个政绩。

说到政绩,这就不得不和我们的宣传以及人口系统连接起来了。

在游戏里面,百姓都被归结到了一个个的人口单位。每个人口单位代表的是选区内的数万名人民。每个人口单位都有自己的就业、工资、房贷、房产数据,也因此他们都具有自己的需求。想要满足他们的需求说简单也简单,但是说复杂也可以很复杂。

Image title

最简单的方式是用宣传给百姓洗脑,树立一个又一个的敌人,转移他们的注意力,最终让他们变成你的NC粉。但是要高效地洗脑就需要在国会中通过一个又一个的法案,才能解锁国家力量为自己宣传;

次简单的方法则是和军方搞好关系。毕竟手无寸铁(噢,要让百姓手无寸铁,你得通过禁枪法案)可敌不过军队。

而最难的则是要真正为大众谋利益谋发展,让大家的生活变好,让大家真的因为你的能力而拥戴你。


除了国内民众,你还需要和国际上的国家周旋。

你可以先用经济制裁、关税让目标国家经济崩溃,继而导致军事能力一落千丈。然后下令让美军长驱直入,去经济掠夺对方。

你也可以和对方的领导人在台面下达成肮脏的交易,出卖你自己国家,来为你博得筹码。

而与国内外对手博弈是通过我们的卡牌战系统进行的。你当然可以用卡牌永远地清除对手,但这会给你留下把柄,让其他对手借此攻击你。

你也可以选择用你自己豢养的特务,甚至是在修改法律后用公权来暗中调查对手,用他们的弱点来打败对方。

Image title

没有足够的钱来豢养特务?你忘记了你是总统了吗?

你大可以在宣布利好政策之前大举买入股票,然后宣布之后直接卖出,20%+的利润不就到手了?

还不够的话,没看到还有一堆资本家正等待着要给你政治献金吗?收下来,用他们的钱做你自己的事情即可。

Image title

而我们游戏中不像其他的游戏,可以让你天然地就能无限游戏。我们游戏有两个限制:1. 美国宪法的两任限制 2. 寿命。

如果你要在八年后一直进行游戏,恐怕你不得不去做出很多越矩行为,包括但不限于掀起世界大战、垂帘听政、将自己打造成宗教领袖等等。否则你将会在八年后,按照宪法,不得不黯然下台结束游戏。


总之,我们的目标是打造一个超现实的政治模拟游戏,在这里,你可以尽情使用你的兵法策略(阴谋诡计)来达成你的目的。

(转发自:原日志地址
《民选帝国》的幕后故事(一)

🏛️《民选帝国》的幕后故事:从“川皇构想”到“用PPT拯救AE”的两天修仙实录

你可能会觉得,把美国变成帝国是个疯子才会想出来的主意。
我承认,我就是那个疯子。

但我要说,这个想法是川普亲自赐给我的。

🧠 一切的起点:川皇二度加冕带来的“灵感”轰炸

川宝的第二任给了我太多素材:
谁能想到这个人,上任前突然宣布发币,一口气吸金数十亿美元;
上任后跟全世界打起贸易战,一副“全球都欠我一个Deal”的样子;
上任不到 3 个月,纳指狂跌四分之一,全球资本瑟瑟发抖;
最狠的是,就连他的核心亲信Elon Musk都选择了叛逃——完美诠释了“狡兔死,走狗烹”。

于是我想,如果川普是个“游戏角色”,那游戏玩法应该会是:

  • 操纵议会,买通法院,改宪法上王位;
  • 发币割韭菜、炒作媒体、用战争转移注意力;
  • 最后,让整个国家变成你的家族企业。

我把这个点子写进了《民选帝国》。

🎬 做宣传片?本来以为是After Effects,结果成了After Exhaustion

宣传片最开始是用 AE 做的。
我还天真地跟着 YouTube 上的 Puppet Pin 教程(就是这个:https://www.youtube.com/watch?v=2oCZTsUt0EE),梦想着让川皇内挥手登基、怒指宪法。

结果呢?

AE的 Puppet Pin 把我整得像一只木偶人。
动作别扭、节点错位,做了一天只做出川普一个“抖肩摊手”的动作,像一个Air Dancer而不像是人……

于是我扔掉了那套方案,换成B站上一个更稳定的流程(传送门:https://www.bilibili.com/video/BV1gM411P7Xw),终于做完了20秒的视频……只用了两天一夜+硬件燃烧换来的。

💻 引用一下我电脑配置(给想尝试的同学一些信心):

  • CPU:Intel Core i7 12800HX
  • GPU:RTX 4070 Laptop
  • RAM:48GB结果呢?AE 依然卡,而且难度太高耗时太长,于是我想到了一个非常有创意的方案。 

💡 用 PPT 动画拯救 AE 的艺术尊严

我后来发现,PPT 其实才是我的最终武器。
很多片段我直接在 PowerPoint 里加动画、做图层动画,再录屏导出合成。

Image title


成本下降 90%,创意提升 300%。
AE?留给高配玩家吧,我有鼠标+PPT,天下我有。

(当然最后的合成还是用的AE)


🎨 川皇的进化史:四轮美术换脸计划

川普(不对,是“川皇”)这个角色从第一版的“细节爆炸”到最终版的“三白眼二缺”共迭代了六轮:

v1: 细节多到爆炸,修改了几百次把我心态打崩的天崩开局版

Image title


v2: 细胳膊细腿的抽象丑版Image title

v3: 在v2基础上重修让他看起来稍微慈祥一点的版本Image title

v4: Procreate手绘版Image title

v5: 感觉v4的脸有点丑,重绘的版本

Image title

v6: 基于v4+v5创意融合并矢量化的最终成品

Image title



我还找了好几个朋友帮忙看图,前期几乎所有意见我都改了,

直到他们开始互相矛盾,我知道——是时候停手了。

众口难调 = 视觉差不多了。


📉 愿望单带来的“毒打”现实:魔鬼才不是《魔鬼猎手》

《民选帝国》商店页面上线后,结果……愿望单两天只有一个。

真·无人问津

这让我立刻回忆起了我之前上线的另一个项目《魔鬼猎手》(开发日志Steam页面)—— 一个已经被做烂的肉鸽游戏,玩法系统全靠抄,《吸血鬼幸存者》+《黎明前20分钟》的血统味重得能发酵。

但我当时心想:“玩黎明20分钟时候,那么瞎眼都有那么多人玩,那我重做一个,加入很多新Feature,做完了应该就会有人来看吧?”

现在我知道了:你游戏做得再好、宣传不发、没人鸟你。(当然游戏也做得不好,因为玩法抄袭毁所有)

所以我决定从第三天开始,亲自写文章、发社区、做 GIF、写推文,
只要能拯救愿望单数据,我哪怕去 B 站投弹幕都干。


🗳️ 小结:这是个疯狂的游戏,但我们不是在搞笑

《民选帝国》看起来是个“讽刺川普”的游戏,
其实我们想做的是:


一个让你在“道德与手段之间反复拉扯”的现代政治模拟器。


你不需要了解法律、不需要有底线,
你只需要一张嘴、一张牌,和对权力的理解。

游戏正在筹备 6 月新品节 Demo,
欢迎你加入帝国的“预备议员”行列。

👉 访问 Steam 页面:https://store.steampowered.com/app/3677060/_/

(转发自:原日志地址

加入 indienova

  • 建立个人/工作室档案
  • 建立开发中的游戏档案
  • 关注个人/工作室动态
  • 寻找合作伙伴共同开发
  • 寻求线上发行
  • 更多服务……
登录/注册