Skip to content

Tutorials

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 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

Exporting? Shipping? Yes!

Getting Your Game Exported And On Steam

Hey, gang! A few days ago we released an updated text tutorial that goes into more details on the process of exporting your game from Godot, setting up some basic things in the Steamworks partner site, and then shipping the game to Steam. Today, we are releasing the video version of that text tutorial on MakerTube.

You can also find the tutorial on the Godot Barn!

As usual, there will probably be some tweaks and updates to this over time. A new video tutorial, and updated text tutorial, will be out next month; this time covering Statistics and Achievements.