trdwll / SteamBridge

An Unreal Engine implementation of the Steamworks API.
https://trdwll.com/experiments/steambridge/
MIT License
134 stars 20 forks source link

Plans/Ideas/Thoughts #4

Open trdwll opened 3 years ago

trdwll commented 3 years ago

In general, I want this to be as close to a 1:1 as much possible. However, maybe a branch for a light version with methods renamed or even do that as the main branch? (for example BLoggedOn renamed to IsLoggedOn etc)

Remove unnecessary params. I've already done this and have been, but it's possible that I've missed some. (this could be stuff like bufferlen - where we can just pass MAX_uint32, etc instead) Re-evaluate whether methods should be const or Pure. (ie (BlueprintCallable, BlueprintPure=false) or (BlueprintPure)) Determine what methods should be async if any or even if the entire library should be converted to async. Possible future plan? Facepunch.Steamworks does this. Convert timestamps (int32/uint32) to FDateTime for easier management? Convert for loops to range-based for loops where it makes sense.

Add a project to test functionality and to show examples of how to implement things.

What else? Let me know your thoughts.

ApostolosBouz commented 3 years ago

Personally I am totally on-board with the 1:1. Unfortunately (in my experience) most developers are unfamiliar with the internals of steam SDK. For those folks, a "light", more callback-compacted branch might be more useful. I'd say, keep up with 1:1 for the time being and when everything is mapped appropriately (hopefully with the aid of other contributors), then decide what to compact to bigger functions further down the line.

devinjdawson commented 3 years ago

How much of this overlaps with AdvancedSessions and AdvancedSteamSessions? Is it alright to keep both plugins installed?

trdwll commented 3 years ago

How much of this overlaps with AdvancedSessions and AdvancedSteamSessions? Is it alright to keep both plugins installed?

I'm not familiar with those plugins. SteamBridge is a wrapper for the entire Steamworks API.

devinjdawson commented 3 years ago

Alrighty. I guess I’ll do some exploration.

Those two plugins seem to be the community standard way to connect to steam or basic online services with blueprints. However. your plugin is way more comprehensive so I would love to mess with it in unison or just yours if it can entirely replace it.

Thanks

On May 11, 2021, at 9:09 AM, Russ Treadwell @.***> wrote:

 How much of this overlaps with AdvancedSessions and AdvancedSteamSessions? Is it alright to keep both plugins installed?

I'm not familiar with those plugins. SteamBridge is a wrapper for the entire Steamworks API.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.

unclemusclez commented 3 years ago

Is there an easy way to generate a dummy set of "SteamFriends/GetSteamFriends" data within the editor, and if not, would you consider adding it to the plugin? I am trying to create test data so I can troubleshoot friends lists within the PIE editor, but it has become a project in itself trying to replicate some of the functionality in blueprint. It would be nice to generate random sets for the other get functions like SteamApps, SteamUser, etc., as well.

That being said, a better solution I have come across would be to link SteamBridge to Editor Preferences -> Level Editor -> Play Credentials, if possible. I have found very little documentation on the Play Credentials being utilized successfully, and most responses lead to the subsystems aside from EOS being disabled in PIE.