Steam SDK extension 1.7.0 pre-release

Disclaimer

This is a pre-release. It might contain bugs and other issues that could potentially be disruptive for you and your teams workflow. We appreciate your help testing this version before we set it as the latest stable release.

Add https://github.com/defold/extension-steam/archive/refs/tags/1.7.0.zip as a game.project dependency to start testing the pre-release.

General release notes

  • CHANGE: Updated to Steam SDK 1.62
  • CHANGE Updated the way polling of events and callbacks are done in the extension

Matchmaking

  • NEW: steam.matchmaking_request_lobby_list()
  • NEW: steam.matchmaking_get_lobby_by_index()
  • NEW: steam.matchmaking_join_lobby()
  • NEW: steam.matchmaking_leave_lobby()
  • NEW: steam.matchmaking_get_lobby_owner()
  • NEW: steam.matchmaking_get_num_lobby_members()
  • NEW: steam.matchmaking_get_lobby_member_by_index()

Networking

  • NEW: steam.networking_send_message_to_user()
  • NEW: steam.networking_receive_messages_on_channel()
  • NEW: steam.networking_accept_session_with_user()
  • NEW: steam.networking_close_session_with_user()
  • NEW: steam.networking_close_channel_with_user()
  • NEW: steam.networking_get_session_connection_info()

Remote Storage

  • NEW: steam.remote_storage_file_share()
  • NEW: steam.remote_storage_file_write()
  • NEW: steam.remote_storage_file_read()
  • NEW: steam.remote_storage_get_file_count()
  • NEW: steam.remote_storage_get_file_name_and_size()
  • NEW: steam.remote_storage_get_quota()

Friends

  • NEW: steam.friends_invite_user_to_game()

User Stats

  • NEW: steam.user_stats_get_leaderboard_sort_method()
  • NEW: steam.user_stats_get_leaderboard_display_type()
  • NEW: steam.user_stats_attach_leadboard_ugc()
14 Likes

Awesome!

This is just under the hood, right?

1 Like

Yes, it’s under the hood. We have changed to the ā€œManual Callback Dispatchā€ mode which is ā€œespecially useful for binding layers that expose the Steamworks SDK to languages other than C++ā€:

2 Likes

Implemented in Skull Horde and no issues on my machine. I have the build live on my experimental branch and will push it to main soon if there aren’t any noises. I don’t use the SDK for much in Skull Horde though - literally just the overlay for now.

Once 1.10.3 is out I’ll get a Bore Blasters build up - that does achievements and leaderboards.

5 Likes

This version of the API does not work for me — it does not initialise.
Version 1.6.0 works correctly.

Which OS are you testing on? What does the log say?

1 Like

Okay, okay, I really missed a lot of details:

  • Windows 10 64-bit system.
  • Steam is running.
  • The native Steam extension version 1.6.0 for Defold works flawlessly.
  • If you copy the lib-files from version 1.6.0 into the 1.7.0 extension, everything works.

Errors or logs? There are none. There is only one message: ā€˜Error initialising SteamAPI’.

static int Init(lua_State* L)
{
	DM_LUA_STACK_CHECK(L, 2);
	if(!SteamAPI_Init())
	{
		lua_pushboolean(L, 0);
		lua_pushstring(L, "Error initialising SteamAPI");
		return 2;
	}

Hmm, that’s odd. What if you run the sample project included with the extension?

@morgerion I just realised that I had mixed old and new libs. The new libs were in steam/libs while the old libs were still in steam/res. See discussion here: Native extension DLLs not copied to bundle output Ā· Issue #11104 Ā· defold/defold Ā· GitHub

I also remembered that I had manually copied libsteam_api.dylib and libsdkencryptedappticket.dylib into my /usr/local/libs folder two years ago. I removed both of these. Perhaps you also have old steam dylib/dlls somewhere?

Could you please try again with Release Steam 1.8.0 Ā· defold/extension-steam Ā· GitHub ?

4 Likes

Hurray! Everything works! Thank you very much!

3 Likes