Online Multiplayer

126 views
Skip to first unread message

Hazzard

unread,
Oct 19, 2013, 12:05:08 AM10/19/13
to freer...@googlegroups.com
I know that this will be a long way off, but is there any plan for multiplayer competition/cooperative mode?
Message has been deleted

Lord Aro

unread,
Oct 19, 2013, 7:31:57 AM10/19/13
to freer...@googlegroups.com
I'll post what i posted in a facebook comment:
"
multiplayer...wow, you like to think a long way ahead :)
(The following is just guessing, and may not ever actually happen)
I see a few possibilities:
- 'Local' multiplayer - more than one person plays on the same map, together (probably doable)
- 'Invisible' multiplayer - several different players on the same map, but not interfering with each other - think ThemeHospital/Corsix-TH (probably the easiest)
- 'Active' multiplayer - more than 1 map visible, watch other players build on their maps (much harder, unlikely to ever happen)
(And yes, i just made up the names 'Local', 'Invisible' and 'Active' ;) )
"

devnoname120

unread,
Dec 29, 2013, 5:06:52 PM12/29/13
to freer...@googlegroups.com
I think it should rather have the following ways to connect:
  • Local: play multiplayer games with other players on the same LAN
  • Online: play multiplayer games with players all over the world

Then we could have the following modes:

  • Versus: 2+ players play the same map but not together, the first to achieve the goal wins (players should also be able to view the other's park and why not (I'm not sure it is a good idea as it could possibly ruin the gameplay) interfere with the other: do a bigger advertising campaign so one get more guests than the other, hire hooligans that will mess up the other's park, etc.)
  • Co-op: 2+ players build a park together, trying to expand it and maximize the revenues.
  • I had another mode in mind but I can't recall what it was, I'll edit my post (if Google Groups allows it) once I remember.

Indeed, it won't happen any soon but it would really be a neat feature! :)

Alberth

unread,
Jan 1, 2014, 6:05:54 AM1/1/14
to freer...@googlegroups.com
Technically, there is little difference between LAN and Internet play, except that the latter has less bandwidth, bigger latency, and needs messing with fire walls of routers.

Assuming you cannot send the entire state between the machines each frame, I think you need to have synchronous running programs and only send changes caused by the users.

Co-op mode is the simplest I think. Not sure how you can do competitive mode in a useful manner. If you don't share the opponent efforts, it's basically like you play on your own, and just send stats over every now and then. Unfortunately, that would open the door to abuse very wide. If you do share the map of the opponent, you are effectively running 2 games at the same time. Seems like a quite difficult idea to do that in one program.

devnoname120

unread,
Jan 1, 2014, 7:55:17 AM1/1/14
to freer...@googlegroups.com

Technically, there is little difference between LAN and Internet play, except that the latter has less bandwidth, bigger latency, and needs messing with fire walls of routers.
Yes, that's exactly why I separated the ways to connect and the modes (the fact that used the 'local' keyword in your naming was a bit misleading, I think).


Assuming you cannot send the entire state between the machines each frame, I think you need to have synchronous running programs and only send changes caused by the users.
Yes and here starts the difficult part, you need to set some kind of semaphores everywhere, for example if a user is building a roller coaster, it must be be set into a 'locked' state so it doesn't inter fer with the other player.

By the way, I think that there should be a server and guests, the server would manage if a user is granted the right to lock a roller coaster (we can't do it peer to peer, otherwise, two could send a 'lock' packet at the same time and cause trouble).


Co-op mode is the simplest I think. Not sure how you can do competitive mode in a useful manner. If you don't share the opponent efforts, it's basically like you play on your own, and just send stats over every now and then. Unfortunately, that would open the door to abuse very wide. If you do share the map of the opponent, you are effectively running 2 games at the same time. Seems like a quite difficult idea to do that in one program.
I don't think so, in fact a versus mode is easy (well, easier) since you only send your current state (I mean only changes), whereas a co-op mode requires you to send changes, and handle the fact that players could want to change the same thing at the same time.

If you don't share the opponent efforts, it's basically like you play on your own, and just send stats over every now and then. If you do share the map of the opponent, you are effectively running 2 games at the same time.
I thought of something like competitors, you try to attract guests to your parks by advertising and building better roller coasters, and maybe also doing malicious things as sending men who break banks in the park or things like it.


Unfortunately, that would open the door to abuse very wide.
Can you please expand your point of view?

Alberth

unread,
Jan 1, 2014, 8:33:18 AM1/1/14
to freer...@googlegroups.com
Unfortunately, that would open the door to abuse very wide.
Can you please expand your point of view

If I only need to send you stats, why wouldn't I hack the FreeRCT program and send you fake stats, or even worse, write a small network program that claims to be "FreeRCT". Seems like an easy way to win to me.

Zuu

unread,
Jan 1, 2014, 2:00:44 PM1/1/14
to freer...@googlegroups.com
Versus mode could also be having 2+ parks on the same map. Possible starting with some land and possible sharing the same extension area.

However this increase memory usage a bit if 3 or more owners are needed.

Thought Rct does not feel as a competitive but rather an artistic game where scenario goals are secondary to your park design ideas.

Thus a co-op mode is possible more interesting.

/Zuu

Zuu

unread,
Jan 1, 2014, 2:01:08 PM1/1/14
to freer...@googlegroups.com

devnoname120

unread,
Jan 1, 2014, 2:27:49 PM1/1/14
to freer...@googlegroups.com
If I only need to send you stats, why wouldn't I hack the FreeRCT program and send you fake stats, or even worse, write a small network program that claims to be "FreeRCT". Seems like an easy way to win to me.
Indeed, but I think of this feature more to play with a friend, that you trust not to cheat. Playing with strangers all over the world might cause cheating problems, I agree (anyways, it's not funny to cheat in such a game, and we can ban cheaters if necessary).

Versus mode could also be having 2+ parks on the same map. Possible starting with some land and possible sharing the same extension area.
I think that it is actually a quite good idea!

Thought Rct does not feel as a competitive but rather an artistic game where scenario goals are secondary to your park design ideas.
That's the way you play it, I'm pretty sure that they are people that like to finish a scenario and move to the next (in fact I know people that play this way, they don't like to build roller coasters themselves).

Thus a co-op mode is possible more interesting.
I think this feature would also be great!

Alberth

unread,
Jan 2, 2014, 6:04:56 AM1/2/14
to freer...@googlegroups.com
On Wednesday, January 1, 2014 8:27:49 PM UTC+1, devnoname120 wrote:
If I only need to send you stats, why wouldn't I hack the FreeRCT program and send you fake stats, or even worse, write a small network program that claims to be "FreeRCT". Seems like an easy way to win to me.
Indeed, but I think of this feature more to play with a friend, that you trust not to cheat. Playing with strangers all over the world might cause cheating problems, I agree (anyways, it's not funny to cheat in such a game, and we can ban cheaters if necessary).

So how would you do that exactly?
OpenTTD has so far not found a good way to uniquely identify someone in a reliable way over the Internet.

Note that you cannot trust a stranger saying "I am mr X". If you then ban him, he'll just come back saying "I am mr Y". All information mr. Y sends to you over the Internet can be faked. All it needs are the FreeRCT sources, an editor, and a compiler.

Hazzard

unread,
Jan 3, 2014, 9:34:49 PM1/3/14
to freer...@googlegroups.com
I think that OpenTTD's model for multiplayer would also be good for FreeRCT. It's not a terribly good way of organizing multiplayer, but I think it is the best option.

devnoname120

unread,
Jan 9, 2014, 8:32:46 AM1/9/14
to freer...@googlegroups.com

OpenTTD has so far not found a good way to uniquely identify someone in a reliable way over the Internet.
I don't know how OpenTTD works, I think matchmaking needs a server (or direct IP connection).
The best way to uniquely identify someone if to allow the creation accounts with a unique nickname; when a player connects, it sends its password so the server can check if it's really him. Then another player connects and the server sends him the list of connected players and their IP, so he can play with someone, knowing for sure he really is this people.

We could also allow direct IP connection, if a friend of yours tells you his IP, then you can be sure that you connect to the right guy when playing online.

About cheating, we can't do much about it without drastically reducing the in-game performances.
Reply all
Reply to author
Forward
0 new messages