[SOLVED] How do I setup a MP Server with working NAT connect

Get help using Construct 2

Post » Thu Jun 30, 2016 4:03 pm

So i started a new multiplayer project. Everything seems to work as intended first. I could connect locally over LAN booth as a peer and a host. Then i tested it over the Internet and it did not work.

Here is what i tested both with the original Construct 2 Example and my own game in a combination of Windows, Linux, Android, latest chrome and firefox:

My PC - Friends PC: Peers can not connect
My PC - Other PC in other network: Peers can not connect
Other PC in other network - Friends PC: Peers can not connect
My PC - Mobile Phone (carrier connection): Did not work
Other PC in other network - Mobile Phone (carrier connection): Did not work

Error: Image

So only thing i could get a connection is within my own lan network. I did not change anything on the example construct 2 provides. I am not behind a nat/special firewall. Originally i intended to write a html5 server done in construct 2 for my game and let it run in a browser (Chrome in a VM 24/7) but it currently doesnt seem to make any sense as IOS does not support the construct 2 WebRTC and even with Linux / Win it seems not to work properly...

Does anyone else experience those issues? DOes anyone have any tips what i could try to get it work? Or is the multiplayer feature of construct currently broken?

I am thankfull for any suggestions how to fix this problem.
Last edited by j0schi on Fri Jul 01, 2016 3:48 am, edited 2 times in total.
Posts: 222
Reputation: 2,546

Post » Thu Jun 30, 2016 7:38 pm

So to answer my own question:
I installed a turn Server and now everything works fine.
Here is a quickl guide what i did to install the reTURN server on ubuntu 14.04:

1) apt-get install resiprocate-turn-server
2) nano /etc/reTurn/reTurnServer.config
3) Set up IP and Port for TURN Server in config
4) Disabled md5 PW hash
5) Added User in nano /etc/reTurn/users.txt like username:SHA1HASHOFPW:reTurn:authorized
6) Configured IP-Tables to open up the Port
7) Restart server so the new configuration becomes active: service resiprocate-turn-server restart
8) In Construct 2 before opening the connection: Multiplayer: Add ICE server "TURN:domain.my(username "username", "credential SHA1HASHOFPW"
9) Works like a charm on all devices now.

If anyone needs an account for testing purpose i can grant you a timly limited access to my TURN-Server, so you can test your stuff out!

Kind regards
Last edited by j0schi on Fri Jul 01, 2016 11:14 pm, edited 1 time in total.
Posts: 222
Reputation: 2,546

Post » Fri Jul 01, 2016 3:43 am

So i should write a guide (and maybe i will in the future) but i am just needed elsewhere. regardless of this i want to post my solution for a common problem with C2MP:

How to set up multiplayer server for up to 100 Players

- write a Server in C2 which handles the game logig as you would normally do but without the player part
- get a server for example from linode.com with at least 2 (better 3) cores
- install ubuntu 14.04
- Login as root
- sudo apt-get update
- sudo apt-get install xfce4
- sudo apt-get install xrdp
- sudo service xrdp restart
- apt-get install firefox
- echo xfce4-session >~/.xsession
- connect via windows RDP to your server by entering the IP and your user credentials (after connection)
- start firefox
- type in about:config
- enable webgl for WAY BETTER performance
- navigate to your serversoftware written in c2
- fire it up!
- profit!

so with this setup i successfully run a game with 50 simultaniously connections and the server was not nearly full, running the serversoftware at 60FPS at 0.6 CPU utilisation. The server synced 50 playerobjects with high precision double 8 bytes, 4 Instance variables, as well as 500 pickups with normal precision low bandwidth (mostly static)

Maybe this will help someone in the future! Good luck with your mutiplayer project.
Posts: 222
Reputation: 2,546

Return to How do I....?

Who is online

Users browsing this forum: No registered users and 14 guests