Announcement

Collapse
No announcement yet.

UWorks (Steamworks C++/BP)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

    UWorks is 30% off for the duration of the Marketplace Spring Sale event!

    Comment


      V10 is now available for download!

      The changes made in this version were mostly unplanned, but made possible after the work on V09. Since I didn't want to ignore a great opportunity for improvement, this forced me to split V10 and upcoming versions in two variants:

      - Regular: VXX-V10.
      - Deprecated: VXX-V10-DEPRECATED.

      The difference between them is that regular versions contain a single set of interfaces and renamed classes. Upgrading to V10 isn't expected to be much of a hassle in C++ (ReplaceAll does 90% of the work), but BP implementations would break entirely. For that reason, I will continue to support the old way by providing versions marked as "DEPRECATED" until the plugin is complete.

      The Marketplace will contain the regular versions. Those of you who have Marketplace access and wish to use the deprecated versions, send me a screenshot of your Epic Games receipt and I will provide Gumroad access.

      Interfaces aside, here are the major changes brought by V10:

      - Improved NAT traversal (re-added STUN code because it doesn't hurt).
      - Connecting to a server via Steam IDs as well regular IPs.
      - Running any number of listen servers and clients on a single machine.

      Some extra notes:

      - Available V10 variants:

      - V17-10-DEPRECATED
      - V18-10-DEPRECATED
      - V19-10-DEPRECATED
      - V18-10
      - V19-10

      - Gumroad: A while ago, a customer sent me a screenshot of a receipt for an Epic account which didn't belong to him. Aside from the fact that I track this back-and-forth access, I found out because the rightful owner unknowingly sent me his own request and he was using the same e-mail for Epic Games and Gumroad. It is your sole responsibility to NOT get tricked into sending screenshots of your receipt to other people!

      - Trust: Because this is a public server, I will reply to anyone who mentions me, but I reserve the right to NOT talk to anyone who loses my trust for whatever reasons (i.e. ask for a free license because you hired a contractor who owns the plugin and that contractor bailed on you so you have the plugin but can't use it).

      - Support: I've already stated that I will ignore private messages. I would prefer to NOT have to disable them completely on my account. There is quite a large number of people who don't "understand" the reasons this Discord server exists:

      - Make tracking easier (I can just scroll up and down for issues and feedback).
      - Find answers in my absence (it's unlikely someone's problem is unique).
      - Connect with other people with similar issues and/or objectives (if multiple people want to build the same friends list, I shouldn't have to tutor all of them in private).
      Last edited by vlad.serbanescu11; 03-17-2018, 04:28 AM.

      Comment


        Is there any ETA on the OnlineSubsystem module ? Its my understanding we are unable to host, join and search for games without this correct?

        Comment


          Does shipping builds work right out of the box? Or I have to figure how to make shipping builds? I'm pulling out my hair to figure out how to make a shipping build with Steam Integration. It works with developer and with standalone. I might be doing something wrong but does plugin works out of the box with shipping builds?

          What I mean is can I install this plugin on a project then set it up for spacewar appid as a shipping build?
          Last edited by SkeetonYu; 05-02-2018, 07:06 PM.
          Checkout Project "TwinBlaster" my current game in progress.
          [FREE] - 2D ROPE! Find out more here!
          Forgive my username... It's an old game name and wrote it down as a habit.

          Comment


            Originally posted by OverRated_AU View Post
            Is there any ETA on the OnlineSubsystem module ? Its my understanding we are unable to host, join and search for games without this correct?
            Your understanding is wrong. Host/join/search functionality are possible and included as examples, without the need of an OS module, but it's a different framework.

            There is no ETA for the OSU module. The Session and Identity interfaces are coming in the next version (V11).

            Also note that the BP "CreateSession" node is broken on dedicated servers, by design, from Epic (it expects the PlayerState to be valid, which it isn't, on a dedicated server). Therefore, even with the OSU module, people would still have to use the example provided on dedicated servers.

            Originally posted by SkeetonYu View Post
            Does shipping builds work right out of the box? Or I have to figure how to make shipping builds? I'm pulling out my hair to figure out how to make a shipping build with Steam Integration. It works with developer and with standalone. I might be doing something wrong but does plugin works out of the box with shipping builds?

            What I mean is can I install this plugin on a project then set it up for spacewar appid as a shipping build?
            Yes, works out of the box. There is no "magic" required for shipping builds, unlike with OSSteam. This is one of the biggest advantages of the plugin, but its presentation needs a drastic rework after V11.

            Here's a WIP example from V10: https://www.dropbox.com/s/66hv4xxgec...lient.zip?dl=0

            Comment


              Sorry i was more or less thinking of the steam subsystem built into the engine, I didn't know that your supplying another method with the plugin thanks for the info.

              Comment


                Hey,
                Can this be used to find the language of the user steam app so that we can switch the game to the same language?

                Thanks,
                -Adrian
                PLANET ALPHA

                Comment


                  Originally posted by AdrianLazar View Post
                  Hey,
                  Can this be used to find the language of the user steam app so that we can switch the game to the same language?

                  Thanks,
                  -Adrian
                  Yes. The following function is imported in the plugin: https://partner.steamgames.com/doc/a...ntGameLanguage

                  Comment


                    Versions 19-11 and 18-11 are now live on Gumroad and submitted to Epic! You can find the updated documentation here: https://www.dropbox.com/s/b3skpmu7o8...ation.pdf?dl=1

                    For this version, my focus has been on finishing the networking and sessions parts, which are both done and stable. For V12, my focus is on splitting the plugin into 3 more "aimed" and less expensive components:

                    - Single Player Edition (will provide UGC, User, UserStats, Friends etc.)
                    - Multiplayer Edition (will provide Matchmaking, MatchmakingServers, GameServer, GameServerStats etc.)
                    - Subsystem Edition (will contain only the OnlineSubsystemUWorks module)

                    Notes (about the split):

                    - The full version will always be available for purchase.
                    - The combined price of the 3 components will always match the price of the full version.
                    - The Web module will only be available to the full version.
                    - It's impossible to tell whether Epic will accept this business model or not so I'll rely on Gumroad.
                    - Part of the focus will be on adding new examples to each component so feel free to ask if you'd like to see something in particular!

                    Notes (general):

                    - I think the tabbed example included in UWorks could be useful to other potential sellers so I will distribute that as a free plugin soon.
                    - I've updated the packaged example project to showcase the V11 changes: https://www.dropbox.com/s/mv27rx618e...ample.zip?dl=0
                    - I'm updating the product presentation in the next few days, to be in line with the current state of the product.
                    - For minor bug fixed and/or features, I'd prefer if you mentioned it in the next few days so I can refresh my list.

                    As always, for whatever's broken, mention me and I'll solve it.

                    Comment


                      Hi! First of all, I want to tell you that I am impressed by this great plugin. It is making the Steam integration much easier, as for some, asynchronous programming is a real hassle and this makes it very easy in Blueprints. Thank you for the work! Secondly, I've been looking over this thread for almost an year, and I finally decided to write, as I see you are going to release v12, the update that introduces UWorks Subsystem. I have a few questions before making the decision to buy this, as $109 dollars are not easy to spend after $100 on Steam Direct hehe. How is the new plugin going to work? I understand that Multiplayer has something, Singleplayer has something, but what does the subsystem part include? And would you recommend this for a P2P game?

                      Tine-o tot asa! (Keep up the good work!)

                      EDIT: I have one more question. If I buy the plugin in the close future, I will get the future updates with the subsystem etc., right?
                      Last edited by JohnnyZer0; 05-29-2018, 08:04 AM.

                      Comment


                        Originally posted by JohnnyZer0 View Post
                        Hi! First of all, I want to tell you that I am impressed by this great plugin. It is making the Steam integration much easier, as for some, asynchronous programming is a real hassle and this makes it very easy in Blueprints. Thank you for the work! Secondly, I've been looking over this thread for almost an year, and I finally decided to write, as I see you are going to release v12, the update that introduces UWorks Subsystem. I have a few questions before making the decision to buy this, as $109 dollars are not easy to spend after $100 on Steam Direct hehe. How is the new plugin going to work? I understand that Multiplayer has something, Singleplayer has something, but what does the subsystem part include? And would you recommend this for a P2P game?

                        Tine-o tot asa! (Keep up the good work!)

                        EDIT: I have one more question. If I buy the plugin in the close future, I will get the future updates with the subsystem etc., right?
                        Actually V11 introduced the subsystem. V12 will address some now-apparent bugs in the subsystem (to be expected, I guess).

                        The subsystem edition will exclusively the subsystem module. This means developers will be able to set it in the config and nothing more. No BP nodes, no additional functionality. It's meant for people who want to use Advanced Sessions (or C++ or something similar) with UE4's regular framework (Create/Join/Find etc.).

                        Given the bugs (inconsistencies) I've discovered yesterday in V11, I wouldn't recommend it just yet (probably in V12). Listen servers (technically P2P assumes a decentralized architecture; "listen" is more correct) have been a pain ever since V01.

                        Aaaaand yes, future updates are always included.

                        Comment


                          Woh, if networking/sessions are stable, I'm definitely gonna give this another look.

                          Would you know if 4.19's VOIPTalker (spatialized VoIP) feature works with UWorks? It's known to not work with OSS—only OnlineSubsystemNull and "MCP" (whatever that is) were confirmed to be supported.

                          Comment


                            Originally posted by Zenteran View Post
                            Woh, if networking/sessions are stable, I'm definitely gonna give this another look.

                            Would you know if 4.19's VOIPTalker (spatialized VoIP) feature works with UWorks? It's known to not work with OSS—only OnlineSubsystemNull and "MCP" (whatever that is) were confirmed to be supported.
                            I haven't look into 4.19's VOIPTalker yet, but I assume it's an OnlineSubsystem-specific thing, particularly specific to the OnlineVoiceInterface class. In that case, no, I haven't got to that yet.

                            However, the UWorksCore module (the plugin has 3 module and 1 full example project; the Core module is the only one I'm currently advertising "officially") supports voice chat by using the raw Steam SDK in conjunction with replication/RPCs and/or Steam's own networking interface. It's also worth mentioning that playing voice seemed to have a very unpredictable bug, which I think I fixed in V11 (6th or 7th attempt), but this particular bug was something I was never able to replicate on my end so I can't say for sure.

                            EDIT: MPC is an OnlineSubsystem framework used internally at Epic. It consists of proprietary code that they use for games such as UT, where the developers had been distributing it for ages, despite not being allowed to.

                            Comment


                              Originally posted by vlad.serbanescu11 View Post

                              I haven't look into 4.19's VOIPTalker yet, but I assume it's an OnlineSubsystem-specific thing, particularly specific to the OnlineVoiceInterface class. In that case, no, I haven't got to that yet.

                              However, the UWorksCore module (the plugin has 3 module and 1 full example project; the Core module is the only one I'm currently advertising "officially") supports voice chat by using the raw Steam SDK in conjunction with replication/RPCs and/or Steam's own networking interface. It's also worth mentioning that playing voice seemed to have a very unpredictable bug, which I think I fixed in V11 (6th or 7th attempt), but this particular bug was something I was never able to replicate on my end so I can't say for sure.

                              EDIT: MPC is an OnlineSubsystem framework used internally at Epic. It consists of proprietary code that they use for games such as UT, where the developers had been distributing it for ages, despite not being allowed to.
                              Hah, good to know someone else is getting gaslit trying to fix VoIP bugs... you'd think the UE4 Voip system would fully hand off to the audio system before playback, but I guess that's not how it's built =/ Thanks for the response.

                              Another follow-up: Would UWorks help with my frustrations regarding "Party" vs "Game" Steam sessions? Ideally I'd have dedicated servers, but even being able to distinguish between "Lobby" listen servers and "Game" listen servers would be useful. Seemed like OSS uses Party/Presence exclusively for full-on game sessions unless you source build the Engine, and I was hoping to avoid that if possible.

                              Comment


                                Hi Vlad,
                                Great plugin, very comprehensive. Although I'm running into some trouble setting it up for my project, here's the problem:
                                1. I followed the tutorial and added a section call [UWORKS] in my defaultengine.ini and added my appid (this is given by Valve since my app appears to be approved on steam so I can generate auth token and receive my appid)
                                2. When I use get leaderboard for game, I was able to put in my auth token and my appid and found the leaderboard, the print statement prints the title of the board as well as ID and sorting method.
                                3. The problem occurs when I try to set score, I put in the same auth ID and appid but I get the weird error message "bad request appid invalid".
                                4. When I switched teh appid to 480, the overlay works, but when I use my own appid, no overlay
                                5. After googling the problem, I found a similar thread about appid (https://forums.unrealengine.com/comm...id-not-working) so now I'm wondering if there's something wrong with my config? or if my steam account isnt setup properly? I've contacted steam about not seeing a dev package in the package list, but figure I should ping you and see if we can isolate the problem.

                                Thanks!

                                <<EDIT>>
                                Looks like it was Steam's issue. I've followed the steps suggested in the other thread and contacted steam. Got my game uploaded to the depot and launched once from Steam. Now Play in Stand Alone Game is properly connected to steam. Everything seems to click, I can get leaderboard and most importantly set entries!

                                Really great plugin, worth the dollar!
                                Last edited by axiao; 06-01-2018, 03:39 AM.

                                Comment

                                Working...
                                X