Loading...
  OR  Zero-K Name:    Password:   

SmartSteamEmu with Zero-K

11 posts, 402 views
Post comment
Filter:    Player:  
sort
23 days ago
There was 0.5 (0.75 if you count me in) persons who wanted Zero-K to launch offline, but without steam. The team hasn't enough development resources for that, so it gave me a thought, can SmartSteamEmu be leveraged here? You basically distribute the game folder as used by steam, then have people drop the SmartSteamEmu there and it works. Theoretically, of course.

Any thoughts on this?
+0 / -0
23 days ago
Well, in case it didn't translate well, what I'm saying is that, hypothetically, using a steam client emulator could satisfy both parties with minimal effort on the developers' side.

Though I don't know what happens if, for example, an outdated client that was hitherto playing offline suddenly comes online.
+0 / -0

23 days ago
There is the itch.io page too, but idk if that would help in what you're looking for?
+0 / -0


22 days ago
Idk what SmartSteamEmu is but it sounds like something for games that don't want you to launch them without Steam.

For ZK you could do this: https://zero-k.info/mediawiki/Zero-K:Developing#Modifying_the_lobby_menu

Or I think putting steamfolder.txt in the directory also works.

However, if you do this, you're assumed to be able to deal with the fallout of nothing updating.
+0 / -0
22 days ago
GoogleFrog,

I was thinking somewhat along these lines. The itch.io launcher needs access to the internet, because it has no way of knowing which engine and chobby to start. But the steam launcher does. Theoretically (since I don't know the implementation details), it should then be possible to use the itch.io launcher to get updates and the steam launcher to launch the game when you don't have access to the internet. But the steam launcher might depend on the steam API (I don't know), so that is handled by SmartSteamEmu.

But really, the documentation is somewhat scarce, and the launcher developer didn't make any in depths explanations on the topic when commenting (on this forum or elsewhere, I don't remember). For example, it's not clear what exactly the itch.io launcher does, and how it differs from the steam launcher. So for example it's hard to tell why you can't e.g. launch the game and chobby manually.
+1 / -0
The itch and steam launcher are the same launcher, which should help.

Have you had a chance to try running ZK offline using the wiki page I posted?
+0 / -0
21 days ago
GoogleFrog,

quote:
Have you had a chance to try running ZK offline using the wiki page I posted?

No, I have not got around to that.

I do not have the time to look into the specifics, but without knowing what exactly your PlasmaDownloader does, it seems the Chobbyla class itself does little. In the semi-portable case it downloads the latest everything from the server, then makes an (I think redundant) API query to know which versions it must launch. The API query is made only for the engine, for chobby the "internal name", whatever it is, is obtained from the downloader.

If steamfolder.txt is present, it takes the engine version from steam_engine.txt and doesn't even touch the downloader. In case of chobby, it gets the tag from steam_chobby.txt, but then passes the info down to the downloader and I have no idea what happens there and if it even contacts the Internet, but hopefully it doesn't. From this point of view Chobbyla should be perfectly capable of launching whatever you want provided you know how to populate steam_engine.txt and steam_chobby.txt.

In case of steam_engine.txt it's fairly simple (well actually not really), tl;dr would be

curl -X POST zero-k.info/ContentService -d 'GetDefaultEngineRequest {"DefaultEngine": "stable"}'


But in case of the chobby tag, I don't have any idea, because, again, I do not have time to look at the PlasmaDownloader now. I tried uncompressing this file to get whatever chobby tags I even have

rapid/repos.springrts.com/chobby/versions.gz


I blindly chose "Chobby v0a.0.9.16" because it's "stable" and then run this command (I'm on penguinux) hoping it would work.

mono Zero-K.exe "Chobby v0a.0.9.16" 2025.06.2


It didn't.

Zero-K.exe Error: 0 : Unexpected error: System.NullReferenceException: Object reference not set to an instance of an object
    at ChobbyLauncher.Chobbyla.Prepare () [0x001de] in <1059340fd3d04927af37a03e15acbfbd>:0


I don't have the debug symbols, so I have no idea what happens here and can do no additional testing. It seemed to download the "Chobby v0a.0.9.16", so I tried putting that in steam_chobby.txt and "2025.06.20" in steam_engine.txt, but it doesn't launch, because somehow the chobby package is "corrupted". Apparently, "Chobby v0a.0.9.16" is not the tag used by the game.

tl;dr I need to know which is the chobby tag used by the game so I can put it in steam_chobby.txt and see if anything works.
+0 / -0
20 days ago
Put "Chobby v0a.0.9.16" in steam_chobby.txt and "2025.06.20" in steam_engine.txt, but this time without the trailing newline... It launches the game. Goes into offline mode automatically. The only two options available are Skirmish and Multiplayer, but neither work. Clicking on them just results in black screen. Both interesting and frustrating.
+0 / -0
20 days ago
I thought it was not working because it could not connect to steam. But installing the Goldberg steam client emulator did not solve anything. Not sure what's amiss, but maybe the game itself is tied to online too deeply.
+0 / -0
20 days ago
Thanks GoogleFrog, I figured it out. On penguinux the instruction to launch the game offline is something like this.

1. Run `mono Zero-K.exe` to update whatever.
2. Run `git clone --depth 1 https://github.com/ZeroK-RTS/Chobby Zero-K/games/zkmenu.sdd` to get the chobby.
3. Run `curl -X POST zero-k.info/ContentService -d 'GetDefaultEngineRequest {"DefaultEngine": "stable"}'` to get the name of the latest engine.
4. Run `echo -n "$engine_version" > steam_engine.txt`. Make sure there's no trailing newline.
5. Run `touch steamfolder.txt`. Consider it black magic.
6. Run `mono Zero-K.exe dev`
7. Enjoy.

To update the engine remove steamfolder.txt, run Zero-K.exe. To update the chobby, run `git pull`. I may put it somewhere on the wiki if you handhold me to the right location.
+0 / -0


8 days ago
A new page would be fine.
+0 / -0