Skip to content

Patches

GodotSteam Road-Map

Seems like I have been working on this forever and it has been a bit quiet lately so here's a little update and road-map of what is going on with GodotSteam! There are no specified timelines on all of this but it is the general order of how things are being worked on and will be released.


GodotSteam 3.30 / 4.16 & Big Docs Update

A big patch for both Godot 3.x and Godot 4.x that fixes a variety of functions and callbacks as well as adds in some missing things from the SDK. Why is this taking so long? I am combing through the entirety of the SDK to check for inconsistencies and missing things.

Simultaneously I am updating the docs which are also missing some information from a few patches already and also missing stuff found in this SDK check. The docs post-update will have better explanations of the function arguments, what versions of GodotSteam things are added or removed, expanded explanations of the enums per class, and finally a list of constants with explanations. This will transform the docs into a hybrid of the SDK's information, Valve's docs (which are somewhat outdated), and the existing GodotSteam notes. My attempt to finally blend these together to be as useful as possible to you all.

GodotSteam 3.31 / 4.17

Finally completing the push to the Flat API system which was started a few versions ago. Regrettably, I totally spaced that all of the calls needed changed out and that was a lot of work. These changes are being backported from the GodotSteamKit version but will take some time. Functionally there will be no differences you'll notice but since it require every single function to be changed, it is coming as a separate update. Plus whatever weird quirks and fixes that are found during yet another full-code deep-dive.

Tutorials

A bunch of tutorials based on Skillet's development are next in line, including their video versions for MakerTube. I missed a few video tutorial targets I had due to moving and personal stuff but there will be a 1-to-1 tutorial release during this period.

Skillet Release

Yes, the open-source, massive example project game that has a very barebones repo will finally be released! Progress is coming along and after these two big updates, I will start sharing more files, images, and such. I'll need folks to help test out mulitplayer but we can get into that when the time comes; however, this will probably be done using Steam playtest features so I can also write up some tutorial information on how that works.

GodotSteam 5?! & Starter Kits

I am abandoning my plans for the GodotSteamKit release to limit the already cumbersome list of repos and projects to manage. Instead I will be releasing that version as our GodotSteam 5 variant which will get be available to all sponsors initially. When Godot 5.x finally drops at some point, that will be rolled out as the standard version. Why, you may ask? Because it finally breaks apart GodotSteam into separate classes to match the SDK and would basically break everyone's projects. So to limit confusion, it will wait for a major Godot version when we'll have to migrate to something different anyway.

That being said, people who have access to it can use it for projects but I'd only really start fresh projects unless you want to rename a bunch of calls.

Another thing that was planned were GodotSteam Starter Kits that are based off Skillet's code and will let people skip putting together some of the more cumbersome or repetitive parts of Steamworks like lobbies, networking, Inventory, Workshop, etc. There will be a new repo for those too.


Well, back to the documentation pit with me! Excited to finally roll all this stuff out soon. If you have been enjoying the project and want to help with development, feel free to sponsor the project too!

❤ Gramps

GodotSteam 4.15 Out Now

Both the pre-compiled module and GDExtension versions got updated today to mainly fix the embedded callbacks issue in 4.14. Now you should be able to correctly use it both through the Project Settings option or when passing true to steamInit or steamInitEx. Apparently trying to bind it to the _process function does not work with an object. There were some other small changes and updates; mostly some missing functions or minor tweaks. As I've been creeping from Steam class to Steam class to get our documentation updated, I have found a few things that got overlooked. Currently I'm only at Users / User Stats so there maybe be another chunk coming for 4.16. Including finally porting over all the Flat API changes.

Keen eyes may notice that the 4.1-4.3 version of the GDExtension is now deprecated. This last update fixes the embedded callback portion and that will be the last update 4.3 or earlier gets.

More coming soon!

❤ Gramps

GodotSteam Updates For All Branches

Finally got all the updates for Godot 4.4.1 and Steamworks SDK 1.62 finished and rolled out some hefty changes for all the GodotSteam branches: godot4, godot3, gdextension, server4, server3, and server gdextension! Steamworks SDK 1.62 brought a bunch of new Remote Play features and some minor changes to a few other classes; the docs still need updated for these changes and that will be coming this week. The current in-editor docs should reflect these updates though; with the exception of the GDExtension ones. For whatever reason, they are failing to display correctly again and that is another problem for another time.

One massive change is the ability to auto-initialize Steam before the game starts; thanks to TriMay. This should fix the overlay issues with Forward+ that people have had. While this does not fix overlay when running from editor, it should fix it if you were not able to get overlay running from the Steam client. If you need this, you can enable it from a brand-new project settings: Steam > Initialization:

Project Settings

Wait, instead of calling steamInit or steamInitEx, now what? You can just easily replace either call in your code with get_steam_init_result and this will pass back the expected dictionary of values so very little has to change in your code if you use this initialization process.

In these new project settings, you can also set both your app ID and whether you want callbacks embedded here. Setting them here means you do not have to set them if you call either steamInit or steamInitEx. However, you will want to set app ID here if you are using auto-initialization.

Also, the initialization functions themselves have changed. steamInit now returns a bool, as Valve intended. Both it and steamInitEx now only take two arguments: app ID and embed callbacks. Originally, the first argument was a bool for pulling statistics or achievements at boot but that was removed in SDK 1.61 and we kept it to prevent breakage in projects. However, it has now been removed which bumps up app ID and callback embedding. Used to be Steam.steamInitEx(true, 480, true) but now is Steam.steamInitEx(480, true).

Expect an initialization documentation update for this and a new short video too. Also, embedding callbacks is now available on the GDExtension version too!

That being said, the planned tutorial for Statistics and Achievements got pushed back and instead the next one will be Leaderboards instead. This way I can also release the leaderboards scene for Skillet to pair with that.

Speaking of Skillet, since there is more time currently, production is ramping back up and this week I will put together Github Project cards for tasks that need finished to better keep track of where the game is. Those of you who expressed interest in working on the game will finally be able to chip in. I will write up more on where Skillet is and what needs done in the next news update.

❤ Gramps

Servers 4.5.2 and 3.5.1

Seems like we just updated the servers not too long ago and now there is a new patch to fix an apparently long-standing glitch which caused the servers to crash any time IP addresses were converted internally.

The functions now use a somewhat rolled back method from a few versions ago which seems to work good.

Everything has been pushed public and things are compiled and ready to go! You can find the Godot 4 server here and the Godot 3 server here, with the GDExtension version on the Godot Asset Library.

These IP conversion functions will get backported to the standard branches soon too.

Godot 4.4 and GodotSteam 4.13

Hey, gang! So Godot 4.4 was just released yesterday and we are now rolling out versions of GodotSteam 4.13 too! The Godot 4 pre-compiles, GDExtension, and MultiplayerPeer have been updated and are now available on Github in the release section, linked through the website, or on the Godot Asset Library; well, at least for GDExtension.

Github Actions still has not been fully updated to create Angle and Direct3D versions yet so that will take a bit more time but are expected to be released (hopefully) this week. The Server builds will also be updated for Godot 4.4 but that won't be until tomorrow.

For the full list of changes, check out the change-log for Godot 4.