Bolt Steam integration

Hi,
I would like to integrate bolt with steamworks. Using Steamworks.net. I successfully created lobby and can connect other steam users to lobby. I want to limit the steam part to lobby. Looking for expert help here. I am not sure how to get the player public IP and port using steam api which i can use to create bolt server
BoltLauncher.StartServer("Steam Player public IP and port");
I just want to have server client system where other players in lobby can join to this game using steam. Thanks in advance.
«1

Comments

  • Believe we resolved this in Jabbr
  • Yes Thanks.
  • kurozael
    kurozael
    edited September 2015
    Hi @Sathyaraj please can you contact me to let me know how you did this? It's currently the only thing holding my Steam game back from further development. You can reach me via mail@conna.org

    Kind regards,
    Conna
  • @Sathyaraj If you do not mind, if would be great, if you could post your solution here.
  • Agreed, I think a lot of us are going to be dealing with Steam....
  • We are just beginning to switch our steam implementation from the C++ sdk over to Unity/Bolt, so we will be visiting this soon as well. What I can tell you in how we did this with our previous game Engine is to utilize Steam Matchmaking and when you create a steam server you can call SteamGameServer.GetPublicIP();

    We then passed that into a property of the Steam Lobby for other to use to connect to our player hosted game.

    I will likely be tackling this portion of our port in the next week or two, and once working can post a small example if one is not available by then.
  • We are just beginning to switch our steam implementation from the C++ sdk over to Unity/Bolt, so we will be visiting this soon as well. What I can tell you in how we did this with our previous game Engine is to utilize Steam Matchmaking and when you create a steam server you can call SteamGameServer.GetPublicIP();

    We then passed that into a property of the Steam Lobby for other to use to connect to our player hosted game.

    I will likely be tackling this portion of our port in the next week or two, and once working can post a small example if one is not available by then.

    Thanks, you're a lifesaver. Look forward to hearing from you :smile:
  • Just an update here, I was able to get our Steam integration working and have Bolt take in the server's public IP and connect. Now I just need to find time to put together a basic example of this.
  • Just an update here, I was able to get our Steam integration working and have Bolt take in the server's public IP and connect. Now I just need to find time to put together a basic example of this.

    This is brilliant news, can't wait :)
  • So I noticed the Steamworks .NET project finally put out a game server test project that might be easy to look at here https://github.com/rlabrecque/Steamworks.NET-GameServerTest/blob/master/Assets/Scripts/GameServerTest.cs

    As a quick overview of what we do, assuming you already have lobbies working.

    Once the game server is up and running and you have a lobby created, you can pass in the server IP to a lobby property. You can get the IP like so:

    //Get Game Server Public IP uint serverIp = SteamGameServer.GetPublicIP(); //Convert to string and assign to a lobby property int ipaddr = System.Net.IPAddress.HostToNetworkOrder((int)serverIp); string ip = new System.Net.IPAddress(BitConverter.GetBytes(ipaddr)).ToString(); SteamMatchmaking.SetLobbyData(myIDLobby, "MyServerIP", ip);

    Then on the client side to connect using the IP via lobby data:

    When getting the lobby listing, or lobby data update, grab the lobby data. I don't show the code here, but we created a Lobby class and hold an Dictionary of them. When an update comes across we pull the data. Here is example of grabbing the IP address we set on the server:

    lobby.address = SteamMatchmaking.GetLobbyData(lobby.m_steamIDLobby, "MyServerIP");

    Then when user selects a lobby and wants to connect to server we do something like:

    BoltNetwork.Connect(new UdpEndPoint(UdpIPv4Address.Parse(lobby.address), (ushort)int.Parse(lobby.port)));

    Hopefully that makes sense. I could do a more in depth write up, but honestly don't have much time right now. Most of what we did was follow the Steam SDK C++ examples and ported it over for the Steam specific stuff.
  • I'm currently testing the Steam Bolt SDK and working on a lobby example for everyone to use, it is a lot better than just using Steamworks.net by itself
  • Hopefully that is the case, but unfortunately we couldn't wait around for them to actually make it available.
  • @mwrightmgt: What is your timing? What are your requirements for steam integration? Which features do you need?
  • We hope to have our port to Unity done by Christmas, and we rely heavily on Steam, which means we need it to be able to test all multiplayer portions of the game, so the need is immediate as I mentioned to Chistof privately.

    We use matchmaking, p2p session for client auth, cloud saves, lobby, friends, achievements, and stats.

    All of this we already got working though.
  • Thanks for the update this is very handy, looks like I can move forward with my game now. Cheers!
  • stanchion said:

    I'm currently testing the Steam Bolt SDK and working on a lobby example for everyone to use, it is a lot better than just using Steamworks.net by itself

    Hmmm? There's a Steam Bolt SDK? Is this available for public use yet or...?
  • bigd said:

    stanchion said:

    I'm currently testing the Steam Bolt SDK and working on a lobby example for everyone to use, it is a lot better than just using Steamworks.net by itself

    Hmmm? There's a Steam Bolt SDK? Is this available for public use yet or...?
    Not yet, it is being tested and added to
  • Interesting! Does this have a feature list yet? Steam plays a very crucial part in my game and I know voice chat capabilities are done also through Steam...

    Sorry for all the questions, this has me genuinely excited about Bolt, which hasn't happened for a long time.
  • If you need voice this is the best option really https://github.com/fholm/unityassets/tree/master/VoiceChat

    Right now it has Steam Sockets (handles NAT punchthrough for you), Steam lobby (have made an example using SDK with Lobby list, lobby members, creating lobby with custom name and size, kicking players, displaying who is in game, chat, profile images, etc). More is being added to SDK
  • Sounds awesome!
    Is there any way to beta test the features or any chance to get a info about approximately release?
  • Tobias
    Tobias admin
    edited October 2015
    @mwrightmgt, @Illu : What is your timing? What are your requirements for steam integration? Which features do you need?
  • We hope to have our port to Unity done by Christmas, and we rely heavily on Steam, which means we need it to be able to test all multiplayer portions of the game, so the need is immediate as I mentioned to Chistof privately.

    We use matchmaking, p2p session for client auth, cloud saves, lobby, friends, achievements, and stats.

    All of this we already got working though.

    So yeah timeline is yesterday
  • @mwrightmgt which timeline do you refer to?
  • @Markus So here is the brief back ground of our project. We already have a game that is live in early access on Steam. But we are working on porting it over to the Unity engine, and Steam is integral to the how the game works. So we needed Steam from the beginning of the port process so we can iterate through our process. Our hope was to finish the port by the end of the year, and certainly waiting for Bolt's Steam integration to come out isn't something we are able to do, so we went ahead and made our own.

    So you asked when we need it, and I said we needed it a month ago when I spoke to Christof about it.
  • With that context info "yesterday" makes sense. Sorry it has not been there quick enough for you.
  • For what it's worth, on my project we're probably looking to release a beta by January and begin exploring the world of Crowdfunding. I would love to have some of these aspects of Steam integration (matchmaking, etc) prior to releasing it to the press for coverage.

    I respect your deadlines and I'm looking forward to these updates; however, I wouldn't mind even splashing to "BOLT / Photon" logo during one of our promotional videos if it helps put more priority on this work.

    I may be a bit in left-field here, but I consider the Bolt / Photon integration a partnership moving forward. If we want your continued support releasing features and bug fixes, you're going to have to receive more traffic and purchases from others hearing about your product.
  • Illu
    Illu
    edited November 2015
    @Markus Currently we are integrating BOLT in a mobile-game. We want to build-in online-matchmaking, but that's not we need the Steam-Integration for. Basically the NAT-Punchthrough is the most important thing we would like to use because it's pretty random on mobile-networking if I can join the lobby or not.
  • We personally have no need for lobbies or any of that jazz and are merely trying to allow a player to jump into a game that a friend is playing. No server lists, no lobbies, just a simple exchange of the IP address so that the friend can connect. This has thus far been much more difficult than it should be and our deadline for getting this to work is... well, long past. We're basically in panic mode. No idea what to do. We were expecting the Steam for Bolt SDK would be out by now but many months later and seemingly no progress on that.
  • @threeheadedmonkey can you email Bolt support with this info?
  • We personally have no need for lobbies or any of that jazz and are merely trying to allow a player to jump into a game that a friend is playing. No server lists, no lobbies, just a simple exchange of the IP address so that the friend can connect. This has thus far been much more difficult than it should be and our deadline for getting this to work is... well, long past. We're basically in panic mode. No idea what to do. We were expecting the Steam for Bolt SDK would be out by now but many months later and seemingly no progress on that.

    Same Situation here. Switched to Bolt expecting steam support would be out by now. Have been waiting from months and our game is abandoned now. Waiting for Version 1