I've been working on getting steam implemented for a new project and have been running into roadblock after roadblock with it. I feel like I must be doing things wrong and would love some advice from others who work over version control.
For starters, the steam SDK path is part of the project files and can't generally be set differently on different machines, so if my collaborator and I both want to make steam builds but our sdks aren't in exactly the same file path then we end up colliding frequently. I ended up having to set up .gitignores for the relevant extension setting files, which seems to be working, but feels like a weird solve? (I've never had to do that for other parts of the project before).
Secondly, we work with some people who don't make steam builds, like artists and sound designers. However, if Steamworks-Ext in our project, all our builds would fail without a valid steam sdk path on the user's machine. And if we removed the Ext from the build (something I ended up needing to isolate across collaborators using another .gitignore on the extension .yy file) then the build would crash because steam functions that run on startup like steam_initialized() would fail. This seems like it would be a problem for future platform ports too. Previously, when steam features were part of the engine, we'd have steam_* functions all over the place which would simply silently fail on non-Steam platforms, but now we need a way to make sure those functions never run unless we're definitely on steam.
The solution I wound up using is the screenshotted try-catch, which feels SUPER janky. Surely... surely there's a better way for the game to reason around these things, right? I'm aware I could do something with build configs, but I strongly prefer an automatic solution that doesn't require me to remember to set my game to be Steam or not-steam before compiling, especially because we are using configs to segment other aspects of the game like demos, and having a steam vs. non-steam config would be multiplicative with our existing numerous configs.
anyways this is partly a whinge post but I'm genuinely curious if there's a known good workflow for this.