New version incoming! #45
Iakobs
announced in
Announcements
Replies: 1 comment
-
Excited for this ! Sounds like an awesome quality of life update ! |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hi folks! 👋
I've been receiving a lot of comments from you and I've learned a couple of things about the main pain points of the plugin, so I decided to make a complete overhaul of the plugin and release a new version in the next weeks. Consider it my holidays' gift to you 🎁.
What will change?
The main change of the plugin will be that from now on, it will only have one autoload, the
GodotPlayGameServices
one. The other autoloads (the clients, i.e.AchievementsClient
,LeaderboardsClient
, etc) will be Nodes that you add to your scenes. This way, you can connect to the signals from the editor and they will be only used where they are needed, not cluttering the autoloads of your game.I believe this follows Godot's philosophy much better, BUT! If you like the plugin as it is, and since there are no new features to add to it, you can always stick to version
2.0.0
.Problems with the sign in flow?
The sign in flow is by far the part of the plugin with the most questions. I reckon that I made a very opinionated decision when I first created the plugin, and some things are automated. Namely, the plugin initializes automatically when you start your game and checks if the player is authenticated.
But what about if you don't want to initialize the plugin straight ahead? Or what about if you don't want the game to check if the user is signed in (with the annoying window that asks to sign in if not) without your control? That's why I made yet another opinionated decision and revamped the plugin to give developers all the freedom in this regard.
Now you'll have to manually call the
GodotPlayGameServices.initialize()
method before being able to use the plugin. Then you will have to manually use thePlayGamesSignInClient
node and call itsis_authenticated()
orsign_in()
methods.Namespaces?
We all now that Godot doesn't have namespaces (yet?), so one of the most common problems with my plugin (and I feel so 😑 for not realising about this when I first created it) is that you have objects named
Player
, orEvent
, or evenGame
! Most of them are inner classes, so it's not taking the name for your game, but it's making the plugin usage a little bit too extra.I decided to change this and the plugin now will have the
PlayGames
prefix in everything. TheSnapshotsClient
will now be calledPlayGamesSnapshotsClient
and so on and so forth. I hope you apreciate this change.When can we expect this changes?
Hey, the code is ready! But you know what? My plugin is a bit too extra because I am also a bit too extra. So I want you to have the easiest possible integration with the plugin, and in order to do that, you require a fancy documentation.
The changes in the code will obviously require changes in the docs, so that's what's missing before I can release version
3.0.0
. The demo project will also have some changes, so you can see how to use the new version of the plugin.That's all, I promise!
Last but not least, this couldn't be possible without all of you complaining in the issues section of this repositroy. I learned a lot about my own plugin, looking at how you use it. Thanks a lot, really, from the bottom of my heart 🫰🫰🫰🫰
Beta Was this translation helpful? Give feedback.
All reactions