Announcement

Collapse
No announcement yet.

Server Browsing & Steamworks

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

    Server Browsing & Steamworks

    Hoping for a response from someone from Epic about this.

    There is little to no Steamworks documentation in terms of what OnlineSubsystem functions map to what Steamworks calls. The Steamworks SDK has no use to any developer at the moment, really, until we know the capabilities of the UDK integration.

    The main question I have is the handling of server browsing and whether this is done through Steamworks or not, and why server creation/searching doesnt seem to work in UDK standard. Theres not much point in trying to get a Steamworks agreement without really knowing our limits with the integration or having some sort of documentation on things, mainly the server browsing and achievements/stats stuff...

    If anyone can provide any insight to this, it would be fantastic. Server browsing is the major hurdle for something I'm working on at the moment.

    #2
    Fixed all the issues I was having with the server browsing, it was being caused by not port forwarding 27015/27016 for master server queries with Steam. Testing with an AppID for Age of Chivalry from past development, with the correct version and gamedir, it also appeared in the server browser.

    Still would appreciate details on the stats and achievements integration

    Comment


      #3
      Glad to hear someone has managed to get it to do something. How about with the UDK app id though, since most UDK devs will probably be using that, at least to start with?

      Comment


        #4
        UDK doesn't show up in the Steam server browser because its a tool. Not sure if there are other imposed limitations on it. That being said, unsuppressing DevOnline gave ALOT of console printouts for servers it looked up for that GameID but didn't get a response from (probably because those ports aren't forwarded)

        Comment


          #5
          However, I'm still trying to wonder why UDK's even connected with Steam at all, as UDK is a totally separate entity upon download and install, last I checked. Didn't even think Steam was required with UDK, either.

          Comment


            #6
            Some people haven't been able to run multiplayer at all without being logged in to Steam. Personally, I'd call this a bug that wants squashing, as not everyone will want to distribute that way or may want to roll their own backends.

            Comment


              #7
              Originally posted by ambershee View Post
              Some people haven't been able to run multiplayer at all without being logged in to Steam. Personally, I'd call this a bug that wants squashing, as not everyone will want to distribute that way or may want to roll their own backends.
              Hence why there is a bDisableSteam variable in the config file. The API initialization will never get called.

              However, I'm still trying to wonder why UDK's even connected with Steam at all, as UDK is a totally separate entity upon download and install, last I checked. Didn't even think Steam was required with UDK, either.
              Because Steamworks is a good platform and its a complete integration into the engine. Its enabled by default, and probably should be disabled by default. Thats the only issue.

              Still hoping to hear from someone at Epic with some details about what wraps the Steamworks functions.

              Comment


                #8
                This might help
                http://udn.epicgames.com/Three/Steam.html

                Comment


                  #9
                  While that document does contain a lot of information, I'm not sure I'd classify it as especially useful..

                  Comment


                    #10
                    Building depots and stuff isn't specific to the integration into UDK, though. That documentation for depots, gold masters etc is all on the Steamworks site anyway.

                    Still hoping for a response from someone at Epic...

                    Comment


                      #11
                      Sorry this thread hasn't had attention sooner, I'll see what I can do to assist. I'm pretty familiar with our online subsystems across multiple platforms, but I'll admit I'm least familiar with Steamworks.

                      What specifically would you like to know about? I saw you mention achievements and the serverbrowser.

                      As you may know, a lot of the initial setup for Steam occurs via their dev site, especially achievements, stats, and leaderboards. Are you already setup there?

                      Let me know how I can help and I'll see what I can do.

                      Comment


                        #12
                        Originally posted by Crzyhomer View Post
                        Sorry this thread hasn't had attention sooner, I'll see what I can do to assist. I'm pretty familiar with our online subsystems across multiple platforms, but I'll admit I'm least familiar with Steamworks.

                        What specifically would you like to know about? I saw you mention achievements and the serverbrowser.

                        As you may know, a lot of the initial setup for Steam occurs via their dev site, especially achievements, stats, and leaderboards. Are you already setup there?

                        Let me know how I can help and I'll see what I can do.
                        Yeah, I'm familiar with the setup on the Steamworks partner website.

                        A few of the main things:
                        How are the names of stats and achievements set? Is there a naming convention we have to follow?
                        How are the stats linked in to the Achievements in terms of progress? I know that the Steamworks partner page linked these in but as far as I know, this was purely for progress displays on their Steam stats pages.
                        Are leaderboards fully supports? I could only see a method to write leaderboard data, not pull down say... top 10.
                        What do our stats need to be set to, GameServer set, or Client set?

                        Comment


                          #13
                          Documentation with how to actually get the Steam stuff working, would be nice, too. Wraiyth spent quite a long time monkeying with things until he figured out the port opening thing would work .. as to why that works, I don't know.

                          Comment


                            #14
                            Originally posted by Wraiyth View Post
                            Hence why there is a bDisableSteam variable in the config file.
                            What config file? My search can't find bDisableSteam in any config or unrealscript file

                            Comment


                              #15
                              Originally posted by Wraiyth View Post
                              Yeah, I'm familiar with the setup on the Steamworks partner website.

                              A few of the main things:
                              How are the names of stats and achievements set? Is there a naming convention we have to follow?
                              How are the stats linked in to the Achievements in terms of progress? I know that the Steamworks partner page linked these in but as far as I know, this was purely for progress displays on their Steam stats pages.
                              Are leaderboards fully supports? I could only see a method to write leaderboard data, not pull down say... top 10.
                              What do our stats need to be set to, GameServer set, or Client set?
                              Looking at our implementation it would seem as though we pass strings of the form Achievement_<ID> up to the Steam service. UE3 tracks achievements by ID, Steam by string. Keeping with that convention should just work when you call UnlockAchievement.

                              Keeping progress I believe is a separate thing completely. For UT3 we stored all our progress as values in the ProfileSettings and unlocked as appropriate. Our UI read this data and displayed it appropriately. From the looks of it, the Steam stats could handle this progress for you, but I'm not familiar with how their stats map to achievement progress directly, if at all.

                              Leaderboards should be supported via the OnlineStatsRead object. You define your stats there and call ReadOnlineStats(ForFriends) with that object passed in. The ranked stats versions seem unsupported. These functions are in the OnlineSubsystemSteamworks class. It looks like there is a naming convention here as well to properly talk to Steam, I'll look into it for you.

                              It looks like our post match stats report is using the GameServer set, but there are some details there I'm unsure of, so I'll get back to you on that.

                              Comment

                              Working...
                              X