DLC accessibility for poor internet.

ValleyBase shared this feedback 2 months ago
Submitted

I was told that this, somehow, is not a bug in the bug forums. Some aspects of DLC, most notably paint, and character skins aren't accessible if the game is ran through offline steam. It's DLC. It doesn't work online. This is a serious issue. Many enjoy your game, but only have internet for a few hours a day, often times hours that the game can't be played in due to schedules, and they miss out on what they pay for.

Comments (1)

photo
1

On the topic of skins: Skins are tied to the inventory, and can be traded away or scrapped at any time; an offline client has no notification that such an operation has occurred by an online client, which justifies their online requirement. However, skins have no impact on single-player gameplay at all, and are a purely cosmetic option. I'm 100% fine with skins requiring an internet connection, as a result.


On the topic of DLC: To the best of my understanding, Space Engineers uses the best-practices method of invoking `ISteamApps::BIsDlcInstalled(AppId_t)` to determine if DLC content is permitted to be used. However, it appears that this function might only work while Steam has an internet connection; I do not know if this is by design, but it is technically out-of-scope for Keen to fix (though it is in-scope for them to implement a workaround).

photo
1

I don't see why it involves steam to begin with. Just, when you download the dlc, the skins should be in there. There's no need for third party software.

photo
1

The way things work, everyone with the game needs to be able to see the skins and blocks, and have whatever interactions with the blocks as well; without this, everyone on a server would be limited to the subset of skins/blocks that everyone on the server has access to, since some people otherwise wouldn't have the information for the skins/blocks in their game.


Skins are a purely-cosmetic addition; they don't cost in-game resources, and can be swapped at any time for no cost. In an offline scenario, losing access to skins is acceptable; they don't affect what happens in the single-player game at all, as the only thing they do is change the textures (to my knowledge; it is possible they can also change the mesh, but I haven't seen this yet) on the player model, for no cost once skins have been unlocked. However, skins can be traded and marketed by consumers; this functionality on Steam requires that skins are counted as inventory items, which are only available while online (due to a number of reasons, including security). This is a limitation that is out of Keen's hands, but is honestly acceptable in my eyes.


DLC blocks, on the other hand, modify what happens in the game. Any block that has a nonstandard collider (e.g. most of the decorative blocks) by necessity will impact the physics engine; any block that has an interaction (e.g. the ATM or lockers) will impact actions made by clients (i.e. other players). Additionally, these blocks are present in free scenarios for the game, so they must remain available to the code at all times. As a result, the actual content for each DLC item is included in every update, since there is no feasable alternative method for delivery without falling into requirements for everyone to own the DLC. As such, the game needs an alternative method for determining if a player owns a DLC rather than just using whatever content is installed. This is another place where Steamworks comes into play; it provides a function that lets an app determine if a DLC is "installed" (specifically, if it is enabled for the application in question; this requires owning the DLC and downloading any depot data it might refer to). However, it appears that Steam might currently have a restriction on this function which results in it only operating when there's a connection to Steam servers; for games with traditional depot-driven DLC, this isn't much of an issue (since the game would just use the downloaded depot contents and skip using this function altogether), but for a game which requires the use of this function, it's a shortcoming which can unfortunately only be solved by Valve (though Keen can implement a sort of workaround, either by adding depots with files that enable the DLC or manually caching the enabled DLC in the case that a connection with Steam can't be established).


As for why Steam needs to be involved, how do you get the game in the first place? Where do you buy the DLC from? Steam is responsible for ensuring you have actually purchased the applications and DLC items, and haven't just downloaded them from some third-party site. Steam also provides additional functionality, like blueprint and mod sharing on the workshop.


Further information on how to develop DLC for Steam titles can be found here, in the Steamworks documentation.

photo
2

Steam should be a retailer, nothing more.

photo