My steam game does not work in steam offline mode

mbeytekin

Member
All I want is to check if a user who owns my game on Steam has this game every time the game is opened. Even if Steam is in offline mode. I am currently checking as follows;


GML:
 global.steam_api = false;
if steam_initialised()
    {
    
        global.steam_api = true;
        
    }

global.user_id="noone"
if steam_is_user_logged_on()
    {
    global.user_id = steam_get_user_account_id();
    }
if global.user_id="noone"
{
    show_message("Steam connection error")
    game_end();
}
if !global.steam_api {exit;}
I think steam needs to be online in the "if steam_is_user_logged_on ()" section. That's why it gives an error here when steam is in offline mode.

How can I solve this problem?
 

O.Stogden

Member
What is the purpose of this check? You explain it, but I'm not sure I 100% follow what you mean.

Some Steam functions won't return accurate values if you're in offline mode. Getting if a user is logged on won't return true because the user is not logged on, that's the point of Offline Mode. It severs connections to Steam servers, and along with that, severs checks with Steam. Offline Mode is sometimes used to allow people to play LAN games together (using 1 account and 1 copy of the game) and skip Steam's DRM checks to a degree. I probably wouldn't spend more time trying to integrate DRM using Steam functions. If that's what you're trying to do here.

DRM in general is not worth it for indie games. You can apply some basic protection, but it's easier to break into something than it is to secure something, and it only takes 1 person to break something to make it available to everyone. The people who want steal your game are going to steal it regardless of what DRM you put in place. So your time might be better spent improving your game for those that buy it.

Steam's integrated DRM has long since been broken, so even checking with Steam to see if the person owns your game can be by-passed by someone downloading a program.
 
Last edited:

mbeytekin

Member
Yes my only goal is to use Steam DRM. Other than that, the game does not use any feature of Steam. Multiplayer does not exist anyway. So all I need is to see if the user has this game or not. If I cannot do such a thing in steam offline mode, I will only open the game once in Steam and activate it with classical methods.
 

O.Stogden

Member
Yeah, I'm not sure how GM implements Steam, but it does seem as though it has no DRM included.

Clicking the "enable Steam" tickbox in GM, still allows you to run the game without Steam even running, so there is no default level of DRM that requires Steam to be open to run, like some games require (Most give you a pop up saying Steam needs to be running before you can boot the EXE). I presume you'd need an extension to implement that.
 
Yeah, I'm not sure how GM implements Steam, but it does seem as though it has no DRM included.
There definitely is something. If you have the "enable steam" checkbox checked in GM, people won't be able to open the game without owning it in their steam library. It's quite possibly very easy to circumvent this if you know what you're doing, but the average user will not know how to.
 

O.Stogden

Member
There definitely is something. If you have the "enable steam" checkbox checked in GM, people won't be able to open the game without owning it in their steam library. It's quite possibly very easy to circumvent this if you know what you're doing, but the average user will not know how to.
This isn't the case. You can still boot a game with the "enable Steam" checkbox without even having Steam installed/running. All it does is allow the "Steam" API to work, but it doesn't seem to offer any DRM protection.

Games on Steam don't inherently have DRM built-in, you can release DRM free games on Steam.
 
Top