Skip to content

Tutorials

New Godot, New GodotSteam, and More

Godot 4.7 is finally here and we are rolling out GodotSteam 4.20 (hey-o) too! It brings some small but mighty changes. There is also a new big tool coming for GodotSteamKit soon. The lobbies tutorial got a facelift too. So let's get into it!

GodotSteam 4.20

GodotSteam 4.20 is now live and contains a bunch of tiny changes. First, the Project Settings have been expanded to cover various app IDs like demos, playtests, and tools. You can now enter as many as you need then toggle between them using the new app type field. GodotSteam will then select the app ID used accordingly. In the next patch, I may expose a way to pull that in-use app ID just in case. However, if you need it now, you can still use GodotSteam's get_current_app_id() function.

There is now some automation going on. The first one is related to the above change where GodotSteam will automatically port your old app ID settings (if available) over to the new version for you. The second one is for GDExtension, Windows, and the Steam version of Godot specifically. GodotSteam will now check for the presence of the steam_api64.dll to see if it is outdated then overwrite that with its copy. This prevents conditions where the extension fails to load because Godot's shipped steam_api64.dll is out of date. Godot only seems to update this when a new version comes out so it has caused some problems since 4.6.3 launched.

Some new binds were added to the SteamPacketPeer for those using MultiplayerPeer, thanks to jdbool. This allows you to get the connection handle and packet state easier. A crash with MultiplayerPeer peer that can occur when a lobby member leaves, which triggers during the lobby_chat_update callback, thanks to bearlikelion.

Two small changes that might trip you up: initFilterText() had the parameter removed as it was unnecessary and lobby_data_update now passes a bool for "success" instead of an integer.

The rest is minor tweaks, adding of missing binds, etc. You can read the changelogs for more.

Also for those of you who were a bit dismayed by the LLM-related stuff recently, there is now a fixed 4.5.2 version of GodotSteam starting with the 4.20 patch. I'll keep popping out future builds too.

GodotSteamKit Input Tools

One of the biggest pain points in Steam is Input and GodotSteamKit is tackling that very soon. I have been working on adding a few different tools to the Kit to making this all easier: - An autoload script that handles most of the controller check and core functionality. - A new custom node for controllers specifically; it can be assigned to players and will track an individual controller's state and actions. - New glyph custom nodes for displaying glyphs for each controller type. - A starter kit for displaying glyph and prompt text quickly. - An in-game actions VDF editor that allows you to modify your actions VDF or create one via a form to make them less of a pain in the ass.

There is no ETA on when these will be ready but hopefully next week. Definitely one of the biggest updates to the Kit yet though. And, of course, some new tutorial material covering all of this.

No More Itch.io

GodotSteamKit initially launched on Itch.io then there started being some weird descrepancies with the revenue. I reached out to them but never heard back so I started offering other places to purchase copies: Ko-Fi and a tier on Github Sponsors. A month went by and I still never heard back from Itch about this so I disabled purchases on Itch. Well, that temporary pause has turned into a permanent one and I am still in the dark about what happened.

If you purchased the GodotSteamKit on Itch, you can contact me to get a copy on Ko-Fi while I work on setting up a better system to provide copies and updates.

Lobby Tutorial Update

Speaking of tutorials, the lobby tutorial got a fresh update based on the GodotSteamKit starter kit and it needed it. There was some skimpy information in there that has been really expanded and hopefully answers more questions about the lobby process.

There was also a new text filtering tutorial added recently for those looking to clean up any chat fields.

Oh, and I added the "last updated" information to the top of each tutorial so you have an idea of how fresh it is.

Licenses?

I had actually planned to change GodotSteam's license for this update to lean more towards GodotSteamKit's and restrict some usage; specifically where it could be shared or how it was included in things that weren't games which is what it was made for. That plan is temporarily scrapped though. I will revisit this when we get closer to Godot 5 so I can make a clean break along with a massive overhaul that is planned.

Back to the coding mines for me. See you next update!

❤ Gramps

Speaking Of: Voice and GodotSteamKit

Hey gang! A fresh update has just been released for the GodotSteamKit and an updated version of our Voice tutorial dropped too.

This update brings two new custom nodes: SteamAchievementIcons and SteamVoice. Achievement icon nodes are just like the avatar ones in that you just pass the achievement's API name then it fetches that texture and displays it. They also come in the same Sprite2D, Sprite3D, and TextureRect variants.

The bigger update is the SteamVoice node, which coincides with the updated Voice tutorial. After a very helpful PR by LuxyCeremy, our Voice tutorial is greatly improved and trimmer than before. This also led to the revival of the getAvailableVoice() for GodotSteama 4.19 on; it really was just a nice, quick check for voice data.

The SteamVoice node handles all the major parts of voice chat and you just have to hook them up to your game since the networking methods you use to send voice data will vary (RPC, Steam Messages, Steam Sockets, etc.). It also includes properties for using loopback in audio testing and setting the "optimal" sample rate from the Steam client. However, when I used this optimal sample rate in my tests, everything sounded high-pitched so your mileage may vary.

Since getAvailableVoice() doesn't exist in GodotSteam 4.16 to 4.18.1, the tutorial covers how to use voice in both versions and the custom node handles this by checking for it and skipping ahead if the function isn't present.

I think that is it. Next all of this stuff will be added to Skillet's codebase and the next version of GodotSteam finished up to be ready for the Godot 4.7 and 4.6.3 releases.

❤ Gramps

GodotSteam For Godot 4.6.1

Hey gang! While there is nothing in the way of patches, GodotSteam is now updated to Godot 4.6.1 for precompiled bundles of both the standard version and Server version. GDExtension, thankfully, needs no updating.

No Android?

You may notice a lack of the Android version though; seems the exported templates do not contain the Steamworks shared library files so they just fail. I found this out during testing on the Steam Frame and decided not to include them in the 4.6.1 until that gets resolved. They should make a comeback in 4.18 though. In the meantime, Android works perfectly well with the GDExtension version.

Discord Closue Soon

Yeah, we are closing it down in about two weeks so you may want to get yourself migrated. We are still rocking the new Stoat community and IRC channel. Stoat has been slammed since the most recent Discord debacle of ID verification so some people have had issues getting on. We are also going to test out Fluxer as a possibility and quite a few folks also suggsted Chatto (not to be confused with some AI chat thing) but that is not ready for use yet.

Oh, and finally booted up a little Steam group too. Since you can't have the word "Steam" in the group name and this is GodotSteam, there had to be a little trickery involved.

Get Inputted

There is also a new tutorial for Steam Input thanks to HarmanSS and Furd! You can check it out in the Getting Started / Tutorials section of the site. I hope to be going through it and building out a little example for it soon.

That's all for now!

❤ Gramps

GodotSteam Beginning-of-year Updates

Hey gang! Starting off the year with a fresh update with the all-new Godot 4.6 and a bit for Valve's upcoming Steam Frame. Not too long ago, Valve updated their docs for the Steam Frame which lists Godot as one of three engines for OpenXR support and briefly mentions GodotSteam as supporting Android and Linux ARM64, which it did not... until now.

To actually make this true, we are rolling out GodotSteam 4.17.1 in both the usual precompiled bundle and GDExtension fashion. This includes said Android and Linux ARM64 variants with matching precompiled editors too. The actual patch itself is relatively small though. The Server version has also received a quite small bump too for these new Godot 4.x versions.

Goodnight, Discord!

Last year there were a few mentions that if/when Discord decided to IPO, the community would get moved off their servers. Well, that time has finally come as Discord allegely plans to do so in early March. In preparation, I've started up a new Stoat community and IRC channel for GodotSteam with plans to shutter our Discord presence. Going to aim for mid-March at this point. Hope to see you in better places!

I had previously posted about using Matrix but mostly due to user error (clearly me), I have abandoned this plan. Taking down the now pretty broken Matrix server is rather difficult due to how Matrix works so you may want to avoid any links that take you there as it will be removed as soon as possible.

GodotSteamKit Round... Something

So I've talked off and on again about GodotSteamKit; working on it then deciding to shelve it. However, funding open-source projects is really hard to do. People love using it but few actually support it. So time to dust off the GodotSteamKit plan again to see if it is possible to raise more funds for the general GodotSteam work!

What was GodotSteamKit again, you ask? An upgraded version of GodotSteam that includes:

  • Overhauled the standard codebase
  • Converter for updating any GDScripts from normal GodotSteam code
  • Remove some dictionaries in favor of specialty nodes and objects
  • Starter-kit-esque scenes
  • Additional tools like Steam uploader, VDF editors, etc.

The plan is to roll our the first two at some point soon-ish to our current sponsors and get some feedback about how it is all working. Then probably launch it on Itch.io since I can't quite think of another good place to put it.

Over time, different parts will be released to the wider public as free updates to the main GodotSteam project; similar to how some other open-source projects I've seen.

The plan to keep the whole thing closed-source is still in action though.

More on all that in February!

Tutorials And More

Last but not least, there are two updates to our tutorial section: Rich Presence and Workshop/UGC. The Rich Presence one is nothing majorly new, just a little housekeeping to bring it up to speed with the others. However, the Workshop/UGC one actually has a lot of new information which was pulled from the now-public Skillet UGC Editor. This covers creating, editing, and viewing items but not using them just yet as we haven't gotten to that part in Skillet's slow development. But expect an update soon!

As mentioned in a previous post, I'm going to spend most of the time now working on GodotSteamKit and more resources.

Until then!

❤ Gramps

GodotSteam 4.16 Is Finally Here

If you're reading this, back-up all your projects right now. What a few months this has been; various things have gone awry like a massive data loss which nuked all my patches in one go except the 4.16 version of Godot 4. I have also been deep in the middle of a migration to Codeberg.org from Github due to Microsoft's latest round of shenanigans with the platform; though I had started this back in, I think, February and should have completed it sooner. More on that in a bit.

Nonetheless, the day has come and GodotSteam 4.16 is now live for Godot 4.x with versions for both 4.4.1 and 4.5 and well as new MultiplayerPeer variants and GDExtension! The changelog is quite sizeable as I finally tweaked a lot of stuff that needed tweaking which may break some people's projects a bit. But it is also packed with various QoL updates and some minor things to make maintenance easier for me. There will be another large patch for 4.17 coming after I get both the Godot 3 branch updated and both of the GodotSteam Server versions updated. So expect a lot more updates in the coming weeks... followed by even more updates after that.

This update also brings us compatibility with MinGW finally thanks to a patch by DanielSnd which now lives in the extras/ folder in the main Godot 4 branch. You will want to run this patch on the Steamworks SDK before compiling with MinGW; if you are a compiler.

The new MultiplayerPeer version authored by Chris Ridenour aka FriarTruck, sponsored by the awesome folks at BippinBits, is now fully live and availabe in Godot 4.4.1 and 4.5 glory with the new GodotSteam 4.16 patch included. This also drags him in as a maintainer too; sorry, Chris!

Back to the migration points; due to Codeberg's minor limitation on file sizes, we will still be hosting a few things over on Github and keeping the Discussions section intact. However, all of the actual code and the bulk of the releases have been nuked from space. While not all of them have been fully migrated due to error on my part, I can recreate older versions upon request if someone needs them. Just holler at requests@godotsteam.com if so.

Lastly, I finally added LiberaPay as an option for sponsoring the project to start migrating away from Github Sponsors where possible. Either is fine, whatever works for those of you who choose to chip in.

OK, back to the coding pits with me; still so much more to do. See you all again for the next round of updates!

❤ Gramps