We really want to try using Steam’s new Inventory api, but we’re having some issues with accessing steams libraries. Here’s my specific problem; but I’ll follow up with a generalized question:
Baseline Steam functionality is wrapped behind the Online Subsystem interface, so existing tutorials won’t cover things beyond that. Recommended practice is to go through the online subsystems to use Steam, but there doesn’t seem to be an existing subsystem for Steam Inventory. I think this is what the IOnlineEntitlements interface is meant to implement, but right now there is no such implementation for Steam.
That said, when you want to use external dependencies (like Steam), you should avoid plain old full include paths. UE’s build system is tailored to support modules easily, and you should use that to add your include dependencies as well as module dependencies. Currently, the project isn’t linking against Steam, which is why you’re getting unresolved symboles.
Since the Steam subsystem already pulls those dependencies, you can probably base yourself on it for inspiration. Look at OnlineSubsystemSteam.Build.cs, you’ll see it’s adding a third party dependency:
That should solve the linker error, at least. I don’t know if it also handles include dependencies, but I believe it does, since the Steam subsystem PCH uses partial paths for includes: