拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Goldberg Steam模拟器怎么用?一文讲透如何离线玩Steam游戏与搭建局域网联机

Goldberg Steam模拟器怎么用一文讲透如何离线玩Steam游戏与搭建局域网联机【免费下载链接】gbe_forkFork of https://gitlab.com/Mr_Goldberg/goldberg_emulator项目地址: https://gitcode.com/gh_mirrors/gbe/gbe_forkGoldberg Steam模拟器是一款免费开源游戏模拟器核心能力是让你不必启动 Steam 客户端就能离线畅玩依赖 Steamworks 的单机游戏并和朋友在局域网里直接联机对战。它同时是一把研究游戏机制的好工具成就、存档、DLC 的判定逻辑都可以被拆开观察。本文不打算堆一份照着抄的操作流水账而是先讲清楚它为什么能骗过游戏再带你完成从安装到配置的完整过程。游戏是怎么确认我在Steam上的深夜两点你终于下好一款惦记很久的游戏双击启动Steam 客户端却死活登不上去。这个场景大概是很多人接触模拟器的最初动机。要理解 Goldberg Steam模拟器先要回答一个更基础的问题一款普通的单机游戏凭什么认定我必须有 Steam 才能玩答案藏在游戏目录里的一个小文件——steam_api.dllLinux 下叫libsteam_api.so。它是 Valve 官方 Steamworks SDK 的入口游戏的所有联网、成就、存档、好友功能都要通过这个文件向真正的 Steam提问我的 AppID 是多少你是谁请给我 ISteamUser 接口我是谁请给我 ISteamFriends 接口我的朋友列表呢这个成就解锁了吗我的进度呢你把这些请求想象成一位客人在前台点名要见不同部门就很好理解了。Goldberg Steam模拟器做的事就是整座楼换了个前台——它把游戏目录里的steam_api.dll整个替换掉然后对游戏的每一个问题都给出一个听起来很合理的答案你说 AppIDsteam_appid.txt文件里写着呢。你要 ISteamUser、ISteamFriendssteam_interfaces.txt文件列了哪些我就准备哪些。成就、存档、好友我都记在本地的假账号里。游戏问了一圈每个问题都得到了回答于是它放心地以为 Steam 正在后台运行。这就是为什么它被称为开源游戏模拟器——它不是模拟某款游戏而是模拟Steam 这个平台本身。搞懂了这一点后面所有配置都会变得顺理成章所谓安装本质就是告诉前台该准备哪些部门。Goldberg模拟器安装教程从克隆仓库到生成接口文件第一步其实是第零步准备编译环境这个项目需要自己动手编译好在门槛不高。Windows 用户安装 Visual Studio 2022 Community记得勾选C 桌面开发工作负载然后运行项目根目录的build_win_premake.bat等它把依赖和主程序全部编译完。Linux 用户以 Ubuntu 20.04 及以上为例先装好编译工具链sudo apt install -y build-essential gcc-multilib g-multilib libglx-dev libgl-dev然后运行build_linux_premake.sh。如果你只玩离线单机那些libgl开头的依赖可以暂时不装但建议一次装齐后面体验覆盖层功能时不用返工。拿到源码两个容易踩的坑获取项目用这条命令git clone --recurse-submodules -j8 https://gitcode.com/gh_mirrors/gbe/gbe_fork这里有两条容易被忽略的细节先说清楚为什么--recurse-submodules项目依赖不少第三方库JSON 解析、图像处理、手柄支持等它们以子模块形式挂在仓库下。不带上这个参数编译到一半会报找不到头文件。-j8只是让 Git 并行下载 8 个子模块能快一些。Windows 上建议先关闭自动换行转换git config --local core.autocrlf false。否则 Git 会把源码里的换行符改来改去Windows 下编译时容易出现符号名被破坏之类的诡异报错。生成部门清单steam_interfaces.txt编译完成后先别急着拷贝文件。项目 README 里有一句反复强调的话每次都要用generate_interfaces工具生成接口文件。这个工具位于tools/generate_interfaces/运行它之后会产出一个steam_interfaces.txt。它的作用就是前面说的前台部门清单——游戏要什么接口、要哪个版本都由这个文件决定。不同游戏、不同 SDK 版本需要的接口不一样所以不要图省事从别处抄一份每款游戏都应当用这个工具重新生成一次。如何离线玩Steam游戏第一次配置的全过程现在进入正题。假设你已经编译完成目录里出现了一个steam_settings.EXAMPLE文件夹——先别动它它只是示例模板。配置的核心是整理出下面这个结构以 Windows 为例文件/文件夹放在哪干什么用steam_api64.dll游戏根目录替换原文件模拟器本体游戏的所有 Steam 请求都由它应答steam_settings/和 DLL 同一目录所有配置的家steam_settings/steam_appid.txtsteam_settings 内告诉游戏你的 AppID 是多少steam_settings/steam_interfaces.txtsteam_settings 内声明游戏要的接口版本列表steam_settings/configs.main.ini等steam_settings 内模拟器行为配置按需裁剪1. 替换 Steam API 文件把编译产物steam_api.dll/steam_api64.dllLinux 是libsteam_api.so复制到游戏根目录覆盖掉原来的文件。动手前建议把原文件备份到一个安全的地方——不是因为它有用而是万一你想还原找不到就麻烦了。2. 建立 steam_settings 文件夹在游戏根目录新建steam_settings文件夹把刚才生成的steam_interfaces.txt放进去再新建一个steam_appid.txt写入这款游戏的 AppID一个纯数字就是 Steam 商店页面 URL 里那一串。为什么不直接放游戏根目录而放进steam_settings因为模拟器的查找顺序是先看 steam_settings再看游戏运行目录。统一放进steam_settings能让每款游戏的配置自洽成一包管理起来清爽很多。3. 拷贝配置文件并做减法从steam_settings.EXAMPLE里把configs.main.ini、configs.user.ini、configs.app.ini、configs.overlay.ini四个示例拷进你的steam_settings删掉文件名里的.EXAMPLE后缀。这里有一条官方反复叮嘱的原则只保留你真正需要的配置项不要什么都写进去。这些 ini 文件里有上百个选项绝大多数都有合理的默认值。新手常见的翻车原因就是把示例文件原封不动搬进去——比如某选项默认是关闭的示例里恰好打开了游戏反而出问题。官方文档原话配置全部完成后把整个steam_settings文件夹放在模拟器 DLL 旁边即可。项目有额外 DRM非 Steamworks的游戏需要先移除 DRM 才能谈模拟。4. 存档位置先知道它会在哪首次运行后模拟器会在系统目录建立存档文件夹默认路径是Windows%appdata%\GSE Saves\Linux$HOME/.local/share/GSE Saves/或$XDG_DATA_HOME/GSE Saves/每款游戏的存档、成就、统计都会按 AppID 分门别类存在这里。游戏内存档和 Steam 云存档是两回事——模拟器管的是Steam 层的存档成就、统计、排行榜游戏自己的存档文件依然写在该游戏原来的位置。Steam游戏局域网联机方案同网络下的发现与握手离线单机只是开胃菜局域网联机才是这个模拟器最有魅力的地方。原理同样不复杂每台运行模拟器的机器都会在局域网里持续广播我在这我在玩 AppID 为 xxx 的游戏同时监听一个固定端口等待回应。当两台机器发现彼此玩的是同一款游戏它们就能直接建立连接——中间不经过任何 Steam 服务器。这个端口默认是UDP 47584。注意所有参与者必须使用同一个端口否则互相之间听不见。官方还特别提醒同一台电脑上不要同时运行两个相同 AppID 的游戏否则网络广播会打架联机表现会变得诡异。想玩宿舍联机派对按这个思路检查一遍所有人在同一个局域网内防火墙放行 UDP 47584游戏版本和模拟器版本尽量一致避免协议对不上如果游戏有服务器浏览器模拟器默认会把所有服务器标成 LAN 服务器在configs.main.ini里有对应开关如果广播找不到人可以在steam_settings/custom_broadcasts.txt里手动写 IP 或域名模拟器会额外向这些地址发送广播包。对于有大厅Lobby机制的游戏实验构建的覆盖层里还会弹出某某邀请你加入游戏的通知甚至可以用auto_accept_invite.txt实现自动接受指定好友的邀请。这已经接近真正的Steam 体验了。游戏存档管理位置、改名与便携模式很多人玩到一半想换电脑才发现存档找不着。这里把存档管理的三个关键词讲透改名字如果你觉得GSE Saves这个文件夹名太丑或者想让每款游戏各用各的存档根目录在configs.user.ini里设置saves_folder_name即可。模拟器会用这个名字替代默认的GSE Saves。便携模式如果你想游戏文件夹走到哪存档跟到哪在steam_settings/configs.user.ini里设置local_save_path。一旦设置模拟器会完全忽略全局存档目录所有数据都写入你指定的本地路径。这非常适合放在移动硬盘或同步盘里的绿色游戏。备份无论哪种模式存档本质上就是一堆本地文件。定时把GSE Saves目录复制到别处就是最朴素的云存档。如果你想跨设备同步把存档根目录指到同步网盘的本地目录就是最省事的方案。让游戏看起来更完整语言、成就与DLC内容模拟模拟器能装到什么程度答案是只要你愿意写配置它可以做到让游戏以为你拥有完整的账号、订阅过 DLC、解锁过成就。语言游戏默认用系统语言如果它不认识你的语言会自动退回英语。想让游戏用你指定的语言在steam_settings/supported_languages.txt里列出游戏支持的语言代码即可。列在第一个的语言会被当作默认语言——所以把你想用的语言放第一行。成就与统计游戏会调用解锁成就更新统计这类接口。模拟器对它们的处理规则是在achievements.json和stats.txt里定义过的成就和统计才有效未定义的一律拒绝configs.main.ini里有allow_unknown_stats开关可以放宽。想研究某款游戏的成就触发机制这两个文件就是现成的观察窗口。DLC内容模拟部分游戏会通过Depot ID来检查 DLC 是否已安装。在steam_settings/depots.txt里列出已安装的 depot ID游戏就会认为对应的 DLC 内容就绪。这对想体验完整版内容的玩家很实用格式参考steam_settings.EXAMPLE/depots.EXAMPLE.txt。其他锦上添花的文件items.json定义游戏内物品、leaderboards.txt定义排行榜、subscribed_groups.txt模拟已订阅的创意工坊小组有的游戏会据此解锁专属内容。项目还提供了一个generate_emu_config命令行工具能自动抓取并生成大部分这类配置——与其手写不如先跑一遍工具再手工微调。控制器自定义配置让手柄说出游戏听得懂的话现代游戏普遍用 SteamInput 读取手柄而 SteamInput 的按键含义并不是A 键 确认这么简单——游戏读的是动作名Action比如跳跃奔跑。每个动作名对应手柄上的哪个物理按键由配置决定。模拟器在steam_settings/controller/目录下按动作集管理这些映射每创建一个动作集文件文件名就是动作集名就在里面声明动作和按键的对应关系。格式分两种# 数字型动作按键动作名按键名 JumpA InteractX # 模拟型动作摇杆、扳机动作名模拟输入输入源模式 MoveLJOYjoystick move一个动作也可以绑定多个按键用逗号分隔例如JumpA,B。可用的按键名DUP、LSTICK、LBUMPER、DLTRIGGER等和模拟输入名LTRIGGER、RTRIGGER、LJOY、RJOY、DPAD在官方文档里都有完整列表。需要提醒两点控制器支持目前仅限XInput手柄。非 XInput 手柄Windows 上可以借助第三方工具把它伪装成 XInput 设备steam_settings.EXAMPLE/controller.EXAMPLE/glyphs/目录里自带一套免费的按键图标游戏如果调用获取按键图标接口会用到这些资源。想换成 Steam 官方图标可以从 Steam 安装目录的tenfoot资源里复制。常见问题速查表现象大概率原因解决思路游戏启动后直接崩溃或闪退接口文件缺失或过旧用generate_interfaces重新生成steam_interfaces.txt并放入steam_settings提示找不到 Steam / 未登录没放steam_appid.txt或位置不对确认文件在steam_settings内且内容只有数字 AppID手柄完全没反应非 XInput 设备或没配置动作集先转成 XInput再在steam_settings/controller/配好动作映射局域网找不到朋友端口、防火墙或版本不一致确认都是 UDP 47584、防火墙放行、双方版本一致杀毒软件报毒Windows 版带有一个自签名的假证书确认是误报不要把它安装进系统证书库游戏能进但成就/统计异常相关配置未定义检查achievements.json、stats.txt是否存在且格式有效想还原原版没备份原文件平时就把原始steam_api.dll单独存好再往前一步覆盖层、调试与社区基础配置玩熟之后这个项目还有几层可以继续挖。内置覆盖层实验构建在configs.overlay.ini里打开enable_experimental_overlay1游戏内按SHIFTTAB就能呼出类似 Steam 的界面能看到成就、好友、聊天通知甚至成就解锁时的音效放一个overlay_achievement_notification.wav到steam_settings/sounds/即可。它是实验功能个别游戏可能崩溃但体验一下非常值得。调试模式如果游戏行为异常换用 debug 构建版运行它会在 DLL 旁边生成一份STEAM_LOG.txt记录游戏对每个 Steam 接口的调用过程。排查哪个接口没被正确应答时这份日志就是现场录像。Mod 与外观模拟器支持把steam_settings/mods/数字ID/目录伪装成创意工坊 Mod 供游戏读取还能配合mod_images/放预览图。资料在哪post_build/steam_settings.EXAMPLE/是活教材每个配置文件都带注释post_build/README.release.md是官方使用说明全集CHANGELOG.md记录了每个版本的改动动机dev.notes/里甚至有几篇开发者写的心得比如Steam 接口的不同版本是如何分发的。想看懂底层从这几份文档入手最实在。另外提醒一句你拿到的gbe_fork是社区维护的分支作者在 README 里明确欢迎任何人 fork 和提 PR。如果你在配置中发现了 bug 或顺手修好了什么往上游提交贡献就是对这个项目最好的支持。动手吧今晚就能玩上的最小流程如果只看一篇就够了请记住这五件事克隆仓库时记得带上--recurse-submodules编译完成后用generate_interfaces生成接口文件并把它放进steam_settings替换游戏目录里的steam_api(64).dll或libsteam_api.so同时放入steam_appid.txt配置文件只保留需要的选项别整篇照抄示例存档默认在GSE Saves目录想便携就设local_save_path。选一款你已经拥有的游戏从离线单机开始确认能跑通之后再尝试和朋友联机。当你在局域网里成功连上好友的那一刻你会真正理解这个开源游戏模拟器的价值——它让游戏属于玩家自己这件事变成了可配置、可研究、可分享的现实。祝玩得开心。【免费下载链接】gbe_forkFork of https://gitlab.com/Mr_Goldberg/goldberg_emulator项目地址: https://gitcode.com/gh_mirrors/gbe/gbe_fork创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门