How to make multiplayer game without external detecate server

Hi ,

Not sure ow to explain it in detail but here is my question and hope you get what i mean , i 'm totally noob btw and my only knowledge is in blueprint ,
i 'm currently working on a game that have 2 player character let us say like mortal combat , one of the player is the server and player 1 and the other one is the client and player 2 .

i know that these two player can play with LAN or 3rd part app like Tunngle , but i need to know how to make this game can be playable over internet without a defecated server or Tunngle , so any one have any idea how can i achieve this ?

Thanks in advance .

Hi,

Yes, sure there is also an option in the engine to create a game that uses listen server not dedicated, so one of your players will be the host. You don’t even have to use any third party programs to do that.

Have a look at these links:
https://docs.unrealengine.com/latest/INT/Gameplay/Networking/Server/

Thanks for the answer , actually i already know how to make a listen server and already saw most of the docs and the last 2 links you shared but it doesn’t say how to make it possible to connect to someone over internet as you can connect over local ip but how about someone over internet ? hope you understand what i mean ,

I’m not sure if what i need is “Online Subsystem Steam” as i don’ know how does it work , does this mean you can make a server and other people can find your server with steam without dedicated server ? if so then does that mean you have to pay for steam server even before you launch your game and this only works with steam server and there are no other server for free even for 2 player for test purpose ?

You probably already know CryZENx from youtube who made a small game multiplayer called Mario Kart Multiplayer , do you think he made the same steam server and he pay for the server or there are other method https://youtube.com/watch?v=IKvhmK82mmc

thanks

Hi,

Yes, I think if you will need some sort of online subsystem, Steam is an option as well. It is free to use, but your game needs to be Greenlit on Steam otherwise you can only use a developer ID, which is limited but suitable for development. And yes, that way you can create player hosted sessions and other players will be able to see and join it, I have tested this myself.

Here is a quite long, but useful video about how to enable and setup Online Subsystem Steam:
https://www.youtube.com/watch?v=ABWgSq5A9ak

I am nowhere to be an expert in networking, so I hope somone can clarify this for you but I believe in order to have your hosted game ‘show up’ in a server list for players searching for games and not having to type the IP manually, you need to use some online subsystem that knows about your hosted game and can share the details required to join your game with other game clients upon request.

Your answer more than enough for me , one last thing i like from you to explain , what do you mean by “otherwise you can only use a developer ID” ?

Hi,

I don’t know how familiar you are with Steam Greenlight, but just in case, here is a link what it is all about:
http://steamcommunity.com//workshop/about/?appid=765&section=faq

Basically, until your game hasn’t been Greenlit, you can only use a developer app ID for your game. This means that you can test certain Steam functionalities such as creating and joinning game sessions (basically stuff that is essential for developing your game), but you won’t have access to features such as creating achievemts. When you test your game using the developer app id, it will show up as you were playing a game called ‘Spacewar’ in your Steam account.

Once your game has been Greenlit, you will recieve a unique app ID for your game, and then you will have access to all features and services. Also the name ‘Spacewar’ will change to the actual name of your game.

Here is a link to the Steam site where you can join:
https://partner.steamgames.com/

I hope this clears it up a bit!

Yes it did , can’t thank you enough :slight_smile: , thanks a lot for the time you spent for answering all my question i appreciate it from the bottom of my heart :smiley:

Your very welcome, I’m glad that I could help!

I just tried to open Steamworks account but i got a message say “You must have an eligible Greenlight item in order to continue” so does that mean you can test your game once you enable and setup Online Subsystem Steam in your game even without opening an account from Steamworks or uploading your game to Greenlight as i 'm sure CryZENx couldn’t upload his game due to copyright issue .

And you said you already test it so hope you can make the last point clear for me , i started learning UE4 from zero since last year but i ave no knowledge about these things .

You should be able to login on the site I provided with your Steam account.

Do you have problems with the login itself? If not, after accepting some terms&conditions you should be able see a button called Download Latest SDK. (v1.37 is the current one)

It’s been a while since I achieved this, but I remember using that youtube video I sent as reference when I did it.

The developer app ID is 480, by the way.

I suggest you to check out the video, it will give you an idea about how to set this up.

Just to clarify your other questions, yes, you can enable the Steam Subsystem and you can test your game on Steam using the developer ID (so without being Greenlit). If you are asking that a Steam account is required to test, then the answer is yes.

Didn’t check the video sorry about that , i logged in with my steam account and during the "accepting some terms&conditions " the final stage was to press continue and finish but i got the message say “You must have an eligible Greenlight item in order to continue” , i will try to watch the video then back to you in case i need any help , thanks again .

HI

Just to be clear , you can test it even if you didn’t upload your game to the steam or any other work from steam side other than signing normal steam account and integrating the steam to your game ?

BR
MH

Hi,

Yes, that is correct, but be aware that you cannot use the Steam Subsystem in the editor itself. It might work when you launch the game not just ‘play in editor’, I can’t remember that, but you can definitely test it after packaging without uploading your game to anywhere. Also be aware, that you cannot login to multiple Steam accounts on a single PC, so you need to get another PC and account (because you can’t be logged in with the same account on different PCs) for proper testing. You can try and use a Sandbox application to test on a single PC, but you might encounter some strange behaviours/inconsistencies, so I really suggest to test on two phisycally different PCs.

Thanks a lot for the all the clarifications .