Add NEO_INSTALL_ENGINE_BUNDLE, support for Linux and Windows#2026
Closed
sunmachine wants to merge 1 commit into
Closed
Add NEO_INSTALL_ENGINE_BUNDLE, support for Linux and Windows#2026sunmachine wants to merge 1 commit into
sunmachine wants to merge 1 commit into
Conversation
Install the engine binaries, hl2 and platform base content, and the launch chain from a local Source SDK Base 2013 Multiplayer install, plus a gameinfo.txt with plain relative search paths. Overlaid onto the game content the release pipeline already produces, the depot then runs without SDK Base installed. Relative search paths avoid |appid_243750| resolution, which breaks on case-sensitive filesystems: the engine lowercases the SDK install folder name when resolving those mounts, so all base content silently fails to mount on Linux. Engine binary filenames must also keep their exact casing (GameUI.so and ServerBrowser.so are loaded by name), so the depot pipeline must preserve case. The Linux layout is verified end to end through the Steam Play button. The Windows flow is untested and needs scrutiny before use.
Contributor
Author
|
@DESTROYGIRL Give the windows side a spin! |
sunmachine
commented
Jul 18, 2026
| option(NEO_INSTALL_ENGINE_BUNDLE "Install the engine, base content, and launch chain for a self-contained depot" OFF) | ||
| if(OS_WINDOWS) | ||
| set(NEO_SDK_BASE_DIR "C:/Program Files (x86)/Steam/steamapps/common/Source SDK Base 2013 Multiplayer" CACHE PATH "Source SDK Base 2013 Multiplayer install directory") | ||
| else() |
Contributor
Author
There was a problem hiding this comment.
There's no switch statement in CMAKE right? Google-fu failed.
Contributor
Author
|
LOL NOPE NOT THIS! Look at #2019 instead! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Following the
NEO_INSTALL_LIBRARIES/NEO_INSTALL_RESOURCESpatterns.Stages everything to run without the SDK installed as a dependency, created from the 2013 Source MP SDK.
bin/,hl2/,platform/: engine and base content, exact filename casing preservedntre.*gameinfo.txtwith plain relative search paths instead of|appid_243750|tokensFor local staging and testing. The payload comes entirely from the SDK install, so nothing needs to be compiled first. This PR should update the CI steps as well before leaving draft.
Overlay the output onto the existing game content. That's the depot.
Depot notes: Launch options must pass
-game neo.-steam onlywon't work and that's intentional at this point. The upload pipeline must preserve filename casing.Cause
The Linux launch is broken by two case-sensitivity bugs: the engine lowercases the SDK folder name when resolving
|appid_243750|mounts (so base content silently fails to mount), and the depot shipped lowercased binary names likegameui.sothat the engine dlopens by exact name. Relative paths skip the buggy (or exactly as designed? we'll never know) lookup entirely. Same packaging model as the original NEOTOKYO.Toolchain
TODO
Windows is completely untested at time of writing. Halp!
pathtable resolves every mount inside the install dir.hl2.exetontre.exe,hl2_win64.exetontre64.exe) match what the depot ships, then a Play-button run.