ID:1644993
 
(See the best response by Nadrew.)
The scenario
There's a single-player game. That's perfectly normal. The only networking needed is to upload scores and other important information to the internet.

This single-player game has a multiplayer feature where you can play with 1 friend.


The issue?
The player doesn't have portforwarding configured. BYOND does not have UPnP. The player is a young child who does not have access to their router. Nor should a player have to configure it.


The goal
A workaround is needed for this, now multiplayer, game. Export() can not be called rapidly in order to grab information from an external source. Topic() seems like a bad idea. Using an external database? Also a bad idea. How would you go about syncing two player's movements together so they can see each other without having a server host the game for them?


Warning
If your only response is to say you can't, you die. I'd rather see this post be dead than see someone say you can't. In programming, there's no such thing.

3...2...1...GO!
Best response
Use Hamachi, problem solved.
In response to Nadrew
Nadrew wrote:
Use Hamachi, problem solved.

So, you're telling me that in an outside environment, such as Steam, users will be forced to run a third party software on top of their current software that they just installed (the game), in order to get the full benefits of the game, which is multiplayer capabilities? I think not, good sir! Lol. This will not do.

Not only that, Hamachi has to be installed. As written in the original post, "The player is a young child who does not have access to their router. Nor should a player have to configure it." They don't have permissions, whatsoever, to install anything. If they do, they get a big fat whooping because the parents will assume it's a virus.

To make it nicer on the user, it should do things like this for them. Is there any other way you could possibly think of that would be revolutionary to the BYOND community? :)
Direct Topic() won't work as you need to be able to get through the port in order to Export() to it.

For no Configuration options:

* Create a .dll that will add UPnP/similar support. Release the library if you do. :)
* Create a matchmaking service that'll host the server. (Which you don't want to do)
* Create a server you can query (which you said is a bad idea already)
In response to Pirion
* Create a .dll that will add UPnP/similar support. Release the library if you do. :)

Looks like I'll have to learn how to create a .dll, now won't I? Never thought this day would come.

* Create a matchmaking service that'll host the server. (Which you don't want to do)

Not efficient, cost-wise. If I were rich, great idea. But, I'm not. So, bad idea.

* Create a server you can query (which you said is a bad idea already)

Not rich. Bad idea.
Host your self make it so players can not interact and have a verb that the player enters a key if the key is found online then that player can join
In response to YoungJR1232
YoungJR1232 wrote:
Host your self make it so players can not interact and have a verb that the player enters a key if the key is found online then that player can join

Wut
basically different maps that no one else can join
In response to Xirre
Xirre wrote:
Nadrew wrote:
Use Hamachi, problem solved.

So, you're telling me that in an outside environment, such as Steam, users will be forced to run a third party software on top of their current software that they just installed (the game), in order to get the full benefits of the game, which is multiplayer capabilities? I think not, good sir! Lol. This will not do.

This is what I stressed on another topic.
Not only that, Hamachi has to be installed. As written in the original post, "The player is a young child who does not have access to their router. Nor should a player have to configure it." They don't have permissions, whatsoever, to install anything. If they do, they get a big fat whooping because the parents will assume it's a virus.

To make it nicer on the user, it should do things like this for them. Is there any other way you could possibly think of that would be revolutionary to the BYOND community? :)

A lot of games (outside of BYOND) automatically handle port-opening stuff like this, don't they?
In response to Jittai
Jittai wrote:
YoungJR1232 wrote:
Host your self make it so players can not interact and have a verb that the player enters a key if the key is found online then that player can join

Wut

Wut

Wut he meens is. Why would I do this? I'm not rich. If said game were to reach 1,000,000 players, do you expect any sh* server I could afford would support that?Lol. A programmer programs with efficiency in mind. I trip balls about my efficiency. Smart idea though. It's pretty much the matchmaking idea. But, once again, I'm not rich. And let one of you tell me, "You gotta spend money to make money." I'll wring your neck. Your matchmaking idea is perfect for servers of 25 or 50 players each. You could buy each server and tell players to switch servers when they want to play with a friend. But, once again, I r nawt reech. So, I can't afford 50 servers a month.

So, back so square 2, the .dll. I found a script online that does the upnp crap in c#. But, I left the house and went on vacation.. meaning I am 5 hours away from home. I'll try to find the post if someone wants to work on it with me in this post here.
In response to Xirre
Xirre wrote:
Jittai wrote:
YoungJR1232 wrote:
Host your self make it so players can not interact and have a verb that the player enters a key if the key is found online then that player can join

Wut

Wut

Wut he meens is. Why would I do this? I'm not rich. If said game were to reach 1,000,000 players, do you expect any sh* server I could afford would support that?Lol. A programmer programs with efficiency in mind. I trip balls about my efficiency. Smart idea though. It's pretty much the matchmaking idea. But, once again, I'm not rich. And let one of you tell me, "You gotta spend money to make money." I'll wring your neck. Your matchmaking idea is perfect for servers of 25 or 50 players each. You could buy each server and tell players to switch servers when they want to play with a friend. But, once again, I r nawt reech. So, I can't afford 50 servers a month.

So, back so square 2, the .dll. I found a script online that does the upnp crap in c#. But, I left the house and went on vacation.. meaning I am 5 hours away from home. I'll try to find the post if someone wants to work on it with me in this post here.

Well ... You gotta spend money to make money.
In response to Lige
Die.
In response to Jittai
Jittai wrote:
A lot of games (outside of BYOND) automatically handle port-opening stuff like this, don't they?

Yessir. It's become a trend. It's hip. It's cool. It's in style. And, hell, I want it on BYOND. And I want it now!
In response to Xirre
Xirre wrote:
Jittai wrote:
YoungJR1232 wrote:
Host your self make it so players can not interact and have a verb that the player enters a key if the key is found online then that player can join

Wut

Wut

Wut he meens is. Why would I do this? I'm not rich. If said game were to reach 1,000,000 players, do you expect any sh* server I could afford would support that?Lol. A programmer programs with efficiency in mind. I trip balls about my efficiency. Smart idea though. It's pretty much the matchmaking idea. But, once again, I'm not rich. And let one of you tell me, "You gotta spend money to make money." I'll wring your neck. Your matchmaking idea is perfect for servers of 25 or 50 players each. You could buy each server and tell players to switch servers when they want to play with a friend. But, once again, I r nawt reech. So, I can't afford 50 servers a month.

So, back so square 2, the .dll. I found a script online that does the upnp crap in c#. But, I left the house and went on vacation.. meaning I am 5 hours away from home. I'll try to find the post if someone wants to work on it with me in this post here.

oh sorry my fault i didnt expect that kind of number of players what if you were able to gather others to help host then again you already have your own solution
In response to YoungJR1232
YoungJR1232 wrote:
Xirre wrote:
Jittai wrote:
YoungJR1232 wrote:
Host your self make it so players can not interact and have a verb that the player enters a key if the key is found online then that player can join

Wut

Wut

Wut he meens is. Why would I do this? I'm not rich. If said game were to reach 1,000,000 players, do you expect any sh* server I could afford would support that?Lol. A programmer programs with efficiency in mind. I trip balls about my efficiency. Smart idea though. It's pretty much the matchmaking idea. But, once again, I'm not rich. And let one of you tell me, "You gotta spend money to make money." I'll wring your neck. Your matchmaking idea is perfect for servers of 25 or 50 players each. You could buy each server and tell players to switch servers when they want to play with a friend. But, once again, I r nawt reech. So, I can't afford 50 servers a month.

So, back so square 2, the .dll. I found a script online that does the upnp crap in c#. But, I left the house and went on vacation.. meaning I am 5 hours away from home. I'll try to find the post if someone wants to work on it with me in this post here.

oh sorry my fault i didnt expect that kind of number of players what if you were able to gather others to help host then again you already have your own solution


But then you are held liable for anything those hosts do to the players. Such as release their IP to the public or, hell, they may not have DDoS protection and will diminish the game's reputation. As such, .dll is still the best current solution. Sadly, I have no friggin' clue how I'll be doing this as I have never made a .dll file a day in my life nor have I seen one made.