I am creating a network game (1v1) whereby-game its p2p - no requirement for a game title server.
However, for gamers to have the ability to "find one another", with no need to coordinate in another medium and enter IP addresses (like the modem times of network games), I have to possess a coordination/matching server.
I can not use regular website hosting because:
- The clients will communicate in UDP.
- Therefore I'll have to do UDP Hole Punching to have the ability to feel the NAT
- That will require server to speak in UDP and be aware of client's IP and port
- afaik with regular website hosting (php/etc) I'm able to only obtain the client's Ip and may only communicate in TCP (HTTP).
Options I'm presently thinking about:
Make use of a hosting solution where my program can accept UDP connection. (any recommendations?)
UDPonNAT appears to get this done but uses GTalk as well as each client to possess a GTalk take into account this (which most likely causes it to be an unacceptable solution)
Any ideas? Thanks :)
I do not use whatever other choice than to possess a devoted server running your code. Another solutions you propose are, shall we are saying, under optimal.
Should you begin small, virtual hosting is going to be fine. Costs are pretty minimal.
As opposed to a full-blown devoted server, you can just obtain a cheap hosting that is shared service and also have the application interface having a PHP page, which connects having a MySQL database after sales.
For instance, Lunarpages includes a $3/month starter package which includes 5gb of space and 50gb of bandwidth. For something this straightforward, that's whatever you should need.
Then you've just got the application poll the site for that listing of games, and submit a Publish request to be able to add their very own game towards the list.
Obviously, this process requires learning PHP and MySQL if you do not know them. And when you're doing so right, you could have the PHP page enter a kind of infinite loop to maintain the bond open and merely feed updates towards the client, instead of polling the page every couple of seconds and wasting lots of bandwidth. That's way outdoors the scope of the answer though.
Oh, and when you are searching for something for free, visit a free PHP host. Individuals exist too! Despite an advertisement-supported host, your application could just grab the page and disregard the advertisements whenever you parse their email list of games. I understand that T35 was previously among my faves as their free plan does not track space or bandwidth (it limits the per-quality, to get rid of their service getting used like a media share, however it should not be considered a problem for PHP files). However, I believe over time you will be best using a compensated host.
Edit: T35 also states "Free hosting enables 1 domain to become located, while compensated offers limitless domain hosting." To help you simply purchase a website title and link it for them! I believe for the short term, that's your very best (least expensive) wager. Obviously, this really is all presuming you can either know or are prepared to learn PHP to be able to attempt. :)
First, allow me to state that this really is well from my arena of expertise, however i found myself very interested, so I have been doing a bit of searching and reading through.
It appears the most generally recommended solution for UDP NAT traversal is by using a STUN server. Used to do some quick searches to ascertain if you will find any firms that will just straight-up supply you with a STUN hosting solution, but when there even were any, these were hidden in piles of advertisements for straightforward website hosting.
Fortunately, it appears you will find several STUN servers which are already ready to go and free for public use. There's a listing of public STUN servers at voice over internet protocol-info.org.
Additionally, there's plenty more details available should you explore SO questions labeled "nat".