savegame on Steam not working?

Hi! I have an unpublished steam game but it is registered, own Appid, etc etc.
My problem is savegames. seems not working when installed and running from steam platform but it does works in the editor.

Any help?

Do you have ‘cloud save’ enabed ( called something like that )?

Can be quite confusing if you’re testing. When you delete the save game, the cloud system puts it back again… :joy:

2 Likes

I think @ClockworkOcean is right, so check that. If that is not the case, you must understand, there is difference between the Debug build you use for your editor, and Shipping build you probably use on Steam. Shipping builds cannot see savegames of Debug builds and vice versa.

Also, open steam games link: https://partner.steamgames.com/apps/cloud/0000000 (replace zeros with your Steam game ID), then scroll a bit down. Then check root paths and set your savegame directory.

3 Likes

yeah actually I was researchng that path inside steamworks…

I am using Steamcore Pro as the main tool to interface with Steam and is amazing
worths each penny.

Just In case I will share the proccess to create, save and load on Steam Cloud Usin Steamcore Pro:

this is how I init the save game. if doesnt exists it creates one etc.

and this is how I save:

(I always store my savegames in Gaminstance for persistence)

this nodes are from Steamcore pro:

image

image

image

you must enable and setup a few things on steamworks side:

I notice you have a dev path for the save game in your examples. When you’re using a shipping version, the path is inside the user profile, not in the project directory. I think @Bojann mentioned that.

2 Likes

there are two sides: the players install and the cloud…what happens is when the game starts it loads the data from SteamCloud and dumps locally in the user install folder. when you add changes you do them in the local savegame and then upload it again to SteamCloud. That is what I understand.

I already tested with shipping build and logging my profile in different computers (different installs) and the data persists.

1 Like

Well, I am not sure why you use this write file thingy. I use it like this, and it works perfectly

You can also use AsyngSaveGameToSlot.

This is working perfectly for my savegames in my game that is both on GOG and Steam.

If you cannot see your savegames at all, then this is because you are trying to use Shipping savegames in Debug (editor) build. They read it from different location, and it cannot work.

1 Like

I thought the movement to the cloud and back was managed by Steam. Does SteamCore also talk to that system? ( I use it, but not for a while… )

yeah…traditional savegame always worked for me but its the first time I face Steam.
Somehow just doesnt works. does not saves anything. I can try again just in case but was not working for me.

I mean…works locally (editor or not using steam)

And the reason for that is exactly what I have explained. Shipping build cannot read debug savegames and vice versa.

If you are just testing things on Steam, make a DebugBuild, and it will work. If your game is published, then you can create branch, and test it on the branch. Just make sure you don’t publish the DebugBuild :smiley:

image

Also, one more tip. Don’t force your game in to Steam. Always make abstract calls. If your game goes to GOG too (and I don’t see the reason why not), Steam API will cause the game to crash as soon as you start it on GOG subsystem. Make sure you have implementation of the Steam API in one place only, and that you can remove it for GOG, or any other build.

For my game, sales are quite similar on GOG and Steam, so there is no reason not to go for GOG.

1 Like

Sigh…i just tested again creating a temp regular savegame,
adding a counter when I press a key and showing the results in a widget…

IT WORKS

on debug AND shipping…

it seems I did something wrong before and I blamed Steam for no reason :frowning:

  1. Abstracting the target platform is a great advice. I started working with Steam Advanced sessions and migrated to Steamcore Pro because this last one exposes EVERYTHING inside the Steam API. It took time to make everything working again and I did not astracted it. You are totally right with that advice…because for my game I plan to go for Steam and consoles (playstation, xbox and nintendo).

I’ve never heard about GOG…is it so good?!

Thanks for your advice man!

due your advice I will ‘interface’ and move all steam implementation inside a single place
so tomorrow things will be easier.

GOG is platform created by CD Project Red. It is DRM free, and this is why people love it. As I said, my sales there are almost equal as on Steam.

How I did it is I have C++ class EOS helper where i handle a lot of online stuff that use Epic Online Subsystem.

Then it has PlatformBasedHelper interface that has things based for every platform (Steam and GOG in my case). It has two implementation based on the current online subsystem - Steam or GOG, and their API’s are used there only. Nowhere else in my game. So my EOS helper has method RequestAvatar that uses PlatformBaseHelper->RequestAvatar. And this is how it works.

I still use AdvancedSessions, it has more than enough stuff. My game uses Leaderboards, Avatars, OnlineSessions… and many other things. Some stuff, like Avatar loading, is done manually by myslef as per platform. Some things work in EOS quite normally, so I did not need any additional library.

2 Likes

hey! I’m back! :slight_smile:

I was thinking about savegame safety…
is not safer to keep savegame on steamCloud instead local .sav file?
because .sav stays in the player unit and can be mishandled.

using Steamcloud savegame would be harder to hack/modify

just saying…

1 Like

Like I say, I think Steam controls the cloud. If you put the save game in the default place ( in the user windows profile for a packaged game ), Steam automatically copies it to the cloud periodically.

of course, but you will have a local copy in the player (the original savegame to be copied).

the other way you can just use a remote steamcloud savegame that is never locally saved (you create an instance at runtime only)

1 Like

Why would you care about this? There is no way in this world you can protect your offline game from cheating. Let the people cheat if they want to. Trainers will be out anyways. Same happened to my game :slight_smile: .

Don’t bother yourself thinking about this unless this can directly affect online play and people can cheat online. If that is the case, than you need much more expensive solution - servers.

If your game is offline only, better focus on functionality and making your game as fun as possible :slight_smile: .

2 Likes

image

2 Likes