news 2026/8/16 14:18:38

Nucleus Co-op 完整指南:3 步把 PC 单机游戏变成本地分屏多人游戏

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Nucleus Co-op 完整指南:3 步把 PC 单机游戏变成本地分屏多人游戏

Nucleus Co-op 完整指南:3 步把 PC 单机游戏变成本地分屏多人游戏

【免费下载链接】nucleuscoopStarts multiple instances of a game for split-screen multiplayer gaming!项目地址: https://gitcode.com/gh_mirrors/nu/nucleuscoop

周末,三个朋友挤在你家客厅。想一起玩点游戏,却发现 Steam 库里全是单机大作——《无主之地 2》只支持单人剧情,《求生之路 2》虽然能联机,却必须各开一台电脑。四个人对着四台屏幕隔着耳机喊话,总少了点沙发上抢手柄、互相嘲讽的气氛。

你心想:要是这台电脑能像主机一样分屏就好了。

Nucleus Co-op 就是为了解决这个遗憾而生的免费开源工具。它专攻"PC 游戏本地分屏多人",能在一台 Windows 电脑上同时启动同一款游戏的多个实例,让每个玩家用独立的手柄或键盘各自操作,画面按你的设置排布成上下、左右或 2×2 网格。本指南会带你 3 步跑通首个分屏游戏,再深入原理、实战案例与避坑技巧,让你真正用起来。

项目名片:Nucleus Co-op 是什么、解决什么问题、适合谁

一句话定义:Nucleus Co-op 是 Windows 平台上的"本地分屏启动器",通过多实例运行游戏,把单机游戏变成客厅派对游戏。

它解决的核心痛点有三个:

痛点Nucleus Co-op 的解法
游戏默认只支持单人同时启动多个游戏实例,每人一个"独立游戏"
多个实例抢同一份存档/配置用符号链接创建独立游戏文件夹,互不干扰
多个手柄无法区分输入为每个手柄注入专属 xinput 库,一对一绑定

适合谁?

  • 想在家用一台电脑和朋友打本地合作游戏的玩家
  • 有 2~4 个手柄或想用键盘+手柄混搭的玩家
  • 喜欢折腾游戏配置文件、愿意尝试新玩法的进阶用户

需要说明的是:Nucleus Co-op 只负责"启动多个实例 + 分配输入 + 排布窗口",游戏本体仍需要你自己拥有(支持 Steam 版、部分支持非 Steam 版)。

环境准备:安装前需要满足哪些前提条件

在动手之前,先花两分钟确认环境,能省掉后面 80% 的报错。

硬件与系统要求

  • 系统:Windows 7 及以上(工具深度依赖 Windows API 与进程管理)
  • CPU:至少 4 核;分屏人数越多,需要的核心越多
  • 内存:8GB 起步,16GB 更稳(每个游戏实例都是独立进程)
  • 显卡:支持多窗口渲染的独显为佳
  • 手柄:建议准备 2 个以上 XInput 兼容手柄(Xbox 手柄最省心)

软件依赖清单

依赖说明
.NET Framework 4.5+项目主程序基于 .NET,详见Master/Nucleus.Coop.App/Nucleus.Coop.App.csproj
Visual C++ 运行库部分游戏与注入组件需要
游戏本体如《求生之路 2》《无主之地 2》《异形:反应坠落》等

获取项目文件

在本地任一目录执行:

git clone https://gitcode.com/gh_mirrors/nu/nucleuscoop

仓库中的Master/目录即完整源码工程,游戏配置脚本都集中在Master/Nucleus.Coop.App/games/下。

极速体验:3 分钟跑通第一个分屏游戏

别急着研究源码,先获得一次成功的正反馈,这是最快建立信心的方式。

第一步:找到你已有的游戏

打开主程序后,点开"自动搜索"(对应源码中的AutoFindGames.cs),添加你的 Steam 游戏库目录或游戏安装目录,让工具自动识别受支持的游戏。识别依据是games/文件夹里有没有对应的.js脚本。

第二步:选定游戏并配置玩家数

以《求生之路 2》为例,它的脚本在Master/Nucleus.Coop.App/games/550-Left4Dead2/game.js,单屏最多支持 8 人。选定后:

  1. 选择玩家数量(建议从 2 人开始)
  2. 为每位玩家分配输入设备(手柄 / 键盘)
  3. 选择分屏布局(左右、上下、2×2)

第三步:点击 Play,坐等窗口排布

Nucleus Co-op 会自动完成备份存档、创建实例、注入输入库、定位窗口等一系列操作。几秒到几十秒后,多个游戏窗口就会按你选择的布局整齐铺满屏幕。

至此你已经完成了第一次分屏。是不是比想象中简单?接下来我们拆解一下它到底做了什么。

原理深潜:用"影子分身术"讲透多实例运行方案

要理解 Nucleus Co-op 的本地分屏原理,可以把它想象成一场精心编排的"影子分身术"。

第一层:分身——每个玩家一个独立副本

游戏通常不允许同时运行两个进程,因为会读写同一份配置文件。Nucleus Co-op 的做法是:用符号链接(symlink)把整个游戏文件夹复制出一份"影子副本",每个实例启动时都指向自己的副本,读写互不干扰。这就是脚本里Game.SymlinkGame = true的含义。

第二层:配钥匙——每个手柄专属的"通道"

只分身还不够,两个手柄插在同一台电脑上,游戏默认会把它们当成同一个输入源。解决方案来自项目集成的 x360ce 技术:为每个手柄生成一份专属的 xinput DLL,它只响应该手柄的信号,并把信号"翻译"成游戏能识别的标准输入。相当于给每把锁配了一把专属钥匙。

第三层:对表——进程与窗口的实时监控

所有实例启动后,工具会以固定频率(如Game.HandlerInterval = 100,即每秒 10 次)轮询进程状态,找到每个游戏窗口并精确摆放到分屏格子里,同时监控崩溃与卡死。

整个过程在GameManagerBackupManager与各Module的协作下完成,核心代码集中在Master/Nucleus.Gaming/Coop/。你不需要读懂它,但理解这个流程,后面排错会非常有底。

实战走通:两个代表性场景的完整操作流程

场景一:《求生之路 2》四人同屏求生

这是社区支持最成熟的案例,脚本位于games/550-Left4Dead2/game.js

完整流程:

  1. 确认游戏已安装,且能正常单人启动
  2. 打开 Nucleus Co-op,自动搜索到《Left 4 Dead 2》
  3. 玩家数选 4,分屏布局选 2×2
  4. 输入设备:2 个手柄 + 2 套键盘分区(游戏支持键盘玩家)
  5. 点击 Play,等待 4 个实例依次启动
  6. 在每个窗口内各自建房或加入同一局域网房间

为什么它能稳定运行?脚本里做了几处关键声明:KillMutex提前清理游戏的单例互斥锁,让第二个实例能启动;FileSymlinkExclusions排除autoexec.cfgconfig.cfg等敏感文件;StartArguments加上-window强制窗口化。这些配置让"多实例"从不可能变成可能。

场景二:《无主之地 2》双人刷宝

双人联机刷装备是很多玩家的梦想。它的脚本games/Borderlands2.js提供了更精细的控制:

  • 每位玩家可单独指定Save ID(存档槽位),互不覆盖
  • 启动参数自动附带-AlwaysFocus -windowed,避免窗口失焦卡顿
  • 游戏内分辨率由工具按分屏格子自动计算注入

操作要点:双人模式下,用"左右分屏 + 2 个手柄"的体验最佳;若一人用手柄一人用键盘,脚本会自动为键盘玩家追加-NoController参数。

场景三(进阶预览):《异形:反应坠落》自定义关卡

《异形:反应坠落》的脚本(games/AlienSwarmReactiveDrop.js)内置了数十个战役关卡的名称与命令行映射,选好关卡后工具会直接以指定地图启动,省去控制台输入。

进阶调优:性能优化与自定义玩法的关键参数

性能优化清单

优化项具体做法
画质每个实例使用中等画质,关闭抗锯齿
垂直同步关闭,减少输入延迟
分辨率手动降低分屏格子分辨率,换取更高帧率
存储优先使用固态硬盘,加快多实例加载
后台程序关闭浏览器、直播软件等占内存应用

理解游戏脚本的关键参数

每个游戏的.js脚本本质是一份"配置说明书",几个常用参数值得认识:

Game.MaxPlayers = 4; // 最大玩家数 Game.SymlinkGame = true; // 是否对游戏目录做符号链接分身 Game.SupportsKeyboard = true; // 是否允许键盘玩家 Game.StartArguments = "-windowed -AlwaysFocus"; // 追加的启动参数 Game.Hook.XInputNames = ["xinput1_3.dll"]; // 注入的输入库名称

想自定义?把games/下任意脚本复制一份改名,改完参数后在游戏库中刷新即可生效。但要注意:参数含义以脚本注释与社区文档为准,不要盲目修改

布局与按键的高级玩法

  • 混合布局:4 人场景中,2×2 比 4×1 更省性能、更护眼
  • 键盘分区:一个键盘可通过按键映射软件划分出多套按键区,实现"一键盘两用"
  • 保存配置模板:每款游戏的布局与设备分配会被记住,下次一键复用

避坑手册:分门别类整理常见报错与解决办法

游戏启动失败类

现象排查思路
第一个实例正常,第二个起不来检查脚本KillMutex是否声明了游戏的单例锁名称
提示缺少 DLL安装最新 Visual C++ 运行库
游戏闪退先单人模式确认游戏本身可运行,再以管理员身份运行 Nucleus Co-op
只有"半屏"出现确认布局格子数与玩家数一致,检查显卡是否支持多窗口

输入设备冲突类

现象排查思路
两个手柄控制同一个角色检查 xinput 注入是否生效,确保每个手柄有独立 ID
键盘玩家无法操作确认脚本声明了SupportsKeyboard,并正确分配按键区
手柄时好时坏更新手柄驱动,插拔后重新识别

存档与配置异常类

  • 存档被覆盖:正常情况下工具会在会话结束自动还原备份(BackupManager负责),若还原失败,可手动把备份文件拷回原目录
  • 画质设置被重置:脚本已通过FileSymlinkExclusions排除关键配置文件时不会发生;若发生,多半是排除列表不全

性能不足类

  • 帧数过低:降低分辨率与画质,或改用 2×2 之外更省资源的布局
  • 内存吃紧:关闭后台程序,或减少同时运行的实例数

生态与想象:社区贡献、扩展能力与未来可能

Nucleus Co-op 的生命力在于社区——它支持的游戏清单,靠的就是玩家们源源不断提交的.js脚本。

想支持一款新游戏?三步走

  1. 参考模板:打开Master/Nucleus.Coop.App/games/下任意脚本,对照理解各参数
  2. 编写脚本:定义可执行文件名、启动参数、互斥锁、输入方案等
  3. 测试并分享:用调试模式反复验证,稳定后提交给社区

官方支持的游戏参考

从项目仓库可见的脚本来看,目前已覆盖多类热门作品:

类型代表参考脚本位置
射击生存求生之路 2games/550-Left4Dead2/game.js
角色扮演无主之地、无主之地 2games/Borderlands2.js
合作射击异形:反应坠落games/AlienSwarmReactiveDrop.js
生存建造饥荒联机版games/DontStarveTogether.js
动作冒险黑道圣徒 3games/SaintsRow3.js

未来想象

多实例 + 符号链接 + 输入注入这套方案,理论上对任何"允许重复进程"的引擎都通用。随着硬件核心数持续增长,本地多人复兴的趋势下,这类工具的价值会越来越大——它让"和身边人一起玩"重新成为游戏的一部分。

行动收尾:现在就开始你的第一局分屏游戏

Nucleus Co-op 的价值一句话概括:把"各自抱着电脑联机"变成"围着一台电脑抢手柄",而且完全免费、开箱即用。

接下来请这样做:

  1. git clone https://gitcode.com/gh_mirrors/nu/nucleuscoop获取项目
  2. 装好 .NET Framework 4.5+ 与 C++ 运行库
  3. 用自动搜索定位你的游戏,从 2 人分屏开始第一局
  4. 稳定后逐步尝试 4 人布局与更多游戏

💡温馨提示:多实例运行会明显吃内存和 CPU,开局前关掉多余程序;另外请务必先备份重要存档,虽然工具自带还原机制,但双保险永远不嫌多。祝你和朋友们,玩得开心!

【免费下载链接】nucleuscoopStarts multiple instances of a game for split-screen multiplayer gaming!项目地址: https://gitcode.com/gh_mirrors/nu/nucleuscoop

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/16 14:13:58

UE里怎么播放视频和打开外部网页

UE里怎么播放视频、打开外部网页? 先说结论:在 UE 里播放视频、打开外部网页,不用自己写解码器,也不用接 FFmpeg——直接用一个 Web 控件就能搞定。 视频交给 Chromium 内核的 GPU 解码管线,网页、iframe、弹窗都走标…

作者头像 李华
网站建设 2026/8/16 14:13:10

DeepseekHarness源码安装-EBUSY: resource busy or locked问题

问题描述通过源码,安装deepseekHarness的时候,pnpm install的时候出现这个问题。[ERR_PNPM_EBUSY] [symlinkAllModules] EBUSY: resource busy or locked, symlink C:\Code\deepseekHarness\deepseek-harness\node_modules.pnpm\......解决方式1.使用管理…

作者头像 李华
网站建设 2026/8/16 14:05:57

通过网口对690t动态固件更新

LAN-404信号处理板采用飞腾D2000ZYNQ690T架构。产品要求通过ZYNQ 配置 690T 动态加载功能。本文档说明如何通过 ZYNQ 使用动态配置 Slave SelectMAP 方案为 690T FPGA 加载固件,包含操作流程与注意事项。. 操作流程图 …

作者头像 李华