Not logged inOpenClonk Forum
Up Topic General / Feedback and Ideas / Simplifying Network playing
1 2 Previous Next
- - By ala [de] Date 2012-01-13 06:16
Just read this one post in the german OC section seeking help with hosting and remembered something..

On Clonkforge there were some discussions around clonk beeing not so popular. And one of the guys named chocobo made this post.

I translate freely:

>"About network: Most of the new players want to play fast action filled scenarios. But, because he cannot host , they usually have to join other games. Most of these other games are like Floor Fight or other hyped scenarios. The player might like this, but also may not. Now if he wants to try and join other scenario packs like Codename Modern Combat joining won't work again because the scenario packet is missing.
>That's frustrating, and the people without a great deal of patience will just kick clonk aside. We rather should kick the people right inside the middle of the game, the chance that the newbie will stay with clonk will increase.


>We are just beeing unfair to the young and unexperienced"


Wow! What should I say? My mind just opend again. Imagine what impact these mistakes had on our community.

1) This might be the reason after all, why we have such a poor count of women. We are especially out of excused since they stormed the net quite some years ago.
2) This might be the reason after all, why so little new scenario packs are played along the new players! The mass always play the standards! Knights in the older days, fantasy in the newer.
3) And I noticed it again while organizing the Quake Tournament: 1 out of 5 regular Clonk players had the QuakeR expansion pack. What the fuck is this a bad quote. And I even lost two regular testers in my first testing games because they were too lazy to load the whole package!!!! Right after this I went to my Clonk Registry Entry and Increased the file size for package loading (like the heck a newbie would know). Only NOW I got new people convinced to play the scenario pack with me and to enjoy the tournament.  The Downside of this is of course that I have to wait every time a player is loading Quake or even Hazard from me. What the hell! Why we never noticed?

Now for solutions:
I don't know if it is possible but hosting own games without setting up routers just sounds like a must feature after thinking along this lines.

For the object packing I imagine it being like this:
Inside Open Clonk you klick on some scenario and it tells you: "Object pack xy is missing, should I load it from OpenClonk Download achieve?" "Yes". And that's the whole magic.

Now additionally, some object packs could be linked to each other like QuakeR and Modern Combat are Hazard expansion packages, so they should automatically download Hazard too because they wouldn't work without it anyway!!
Inside the Openclonk browser the object files and scenarios could be even stored inside each other so that QuakeR.c4d will get into Hazard.c4d and scenarios who are only using this Hazard would be stored in Hazard, and Scenarios using only Quake and Hazard would be stored inside Quake! This will simplify the normally huuuuge object and scenario lists inside everyone clonk folder without work, all automatically.

----------------------

All in all: Explore the steps a newbie must not do anymore with this system, if he wants to host a game of modern combat, and play with his fellows.

1) No more router configuration.
2) No more searching for a download page, and needing to register on it
2b) ..or even verify his registration ( I know we are heading for open source anyway)
3) No more noticing that he needs hazard too. and must download it.
4) No more convincing his friends to do these 3 steps OR
4b) ...make a registry entry and..
4c) ..wait for every new fellow to load every package from you.

Now if he wants to play other Modern Combat scenarios he doesn't have to search and sort his clonk folder anymore. The scenarios aren't even labeled with what object packs they use currently. So here comes the automatic system and:

5) Less searching and sorting ones clonk folder for additional scenarios.

Need I say more?
Parent - By ala [de] Date 2012-01-13 06:18
If you ask me what main feature this whole concept has I answer: Chicks.

Open clonk will feature chicks, oh and I'm still a little drunk - you probably noticed by now.
Parent - - By Zapper [de] Date 2012-01-13 09:25

>I don't know if it is possible but hosting own games without setting up routers just sounds like a must feature after thinking along this lines.


Doesn't work like that.
The only way that would work is that we (or someone else for that matter) provides dedicated servers and the player can say "Hey, I want XYZ hostet RIGHT NOW" and then the server hosts that.
That's the way it works with other games, for example.
And that's actually far from impossible now that I think about it. The masterserver could hold a list of requested scenarios (like, scenario a player hostet who had the ports not forwarded and who was asked "Do you want to request the scenario instead?"), which the dedicated servers could access.
That obviously requires dedicated servers..

And the whole OC archive thing sure is a great idea - it just has to be done :)
Parent - - By Randrian [de] Date 2012-01-13 18:00
Why do we have to forward the ports? Don't other games manage without the forwarding? Or could we write a programm that does that for you? Perhaps at least for the most common routers.
When you want do host a game, a dialog pops up: "You need to forward your ports, do you want openclonk to do this?"
Reply
Parent - - By Newton [de] Date 2012-01-13 18:19
No. The games I know that work without forwarding just don't host games. They request some masterserver to host a round for them.
Parent - - By Caesar [de] Date 2012-01-13 18:45

>They request some masterserver to host a round for them.


Skype has some magic to avoid that, right?
Parent - By Matthias [de] Date 2012-01-13 18:56
yeah it hogs port 80
Reply
Parent - - By Randrian [de] Date 2012-01-13 22:29
Hmm, maybe I don't know enough about this stuff. But what is the basic differenc, between client and host? Both have to send controls and recieve controls, why do they have to behave different?
Reply
Parent - - By Clonk-Karl [de] Date 2012-01-13 22:50
A host needs to accept incoming connections.
Reply
Parent - - By Newton [de] Date 2012-01-14 00:32
And all incoming connections first arrive at your router. But your router doesn't know where to forward the incoming connection to. There might be dozens of computers behind the router.

The solution is to tell your router where incoming connections at port XYZ shall be forwarded to. And this is called ports forwarding.
Parent - - By Randrian [de] Date 2012-01-14 23:35
Hmm, but how can clients talk to each other when they are connected to a host? Don't the clients send packages to each other? Or is the traffic always sent first to the host? I thought the clients had a direct connection to each other, too.
Reply
Parent - By Caesar [de] Date 2012-01-14 23:57
The clients may have a direct connection, which is used in Decentral Network mode to avoid doubling the usually high latency for household internet connections. If such a connection can't be established or the host chooses Central Network Mode, all traffic is relayed over the host.
Parent - - By Clonkonaut [ie] Date 2012-01-15 01:17
Clients communicating with each other do flag their packets with "send to IP xxx.xxx.xxx.xxx" so the router knows to which client the package belongs. Only the first connections attempt is the crucial one.
Reply
Parent - - By Zapper [de] Date 2012-01-15 09:06
well "send to IP XYZ" is what the first connection attempt does, too :)
Parent - By Clonkonaut [ie] Date 2012-01-15 11:48
Good point, yes.
Reply
Parent - - By Randrian [de] Date 2012-01-17 18:10
But if only the very first connection is crucial, why can't the masterserver redirect the incomming connections of the client to the host? This would be less traffic on the masterserver than hosing a dedicated game.
Reply
Parent - - By Zapper [de] Date 2012-01-17 19:43
Because then the host has the same problem with the masterserver.
Masterserver says HI, router doesn't know whether HI should go to computer A or B.

A somewhat similar approach is the so-called "UDP hole punching" that uses a "weakness" (in big quotation marks) in the UDP communication layer.
http://en.wikipedia.org/wiki/UDP_hole_punching#Algorithm
Parent - - By Randrian [de] Date 2012-01-17 22:45
And when the "host" joins a dedicated game, the router has to know where the HI from the Masterserver hast to go.
Reply
Parent - By Clonk-Karl [de] Date 2012-01-17 22:52
In that case the router knows because the "host" connected to the masterserver before. The router sees the outgoing connection from the host and remembers that all packets received via that connection need to be forwarded to that very host.
Reply
Parent - - By Günther [de] Date 2012-01-15 04:18
UDP connections might work when the router assumes that all incoming packets on a certain port are part of the same connection regardless of the source address and forwards them accordingly. If the router of the host does that, one can even use an internet server that just replies to an UDP packet to allow clients to establish connections to the host without further router configuration. Peter wrote a server for that which is still in src/netpuncher, I think it even ran or runs on clonk.de, but I don't know how effective it is in practice.
Reply
Parent - - By B_E [de] Date 2012-01-15 15:30
Caesar did work on extending that, so he might be able to write down a few details of what works/what doesn't.
Parent - - By ST-DDT [de] Date 2012-01-15 20:51
But UDP does not guarantee that the packets arrive
Parent - By Zapper [de] Date 2012-01-15 21:10
Well, but you can work around that.

..the internet does not guarantee that the packets arrive.
Parent - By PeterW [gb] Date 2012-01-17 16:49
Clonk recovers lost packets. It's not very fast at that, though, which is why wireless games tend to have a slight pause each time a loss happes.
Parent - By Caesar [de] Date 2012-01-14 00:49
For a client who can host and the actual host, there is only a single difference in the network layout: the tcp source port on the clients side is (most probably) random, where the destination port is the one from the host's config. Not that it really matters.
Parent - - By Clonkonaut [ie] Date 2012-01-13 19:13
As a general question: would it be possible to use UPnP so at least not everyone has to open the ports?
Reply
Parent - By Caesar [de] Date 2012-01-13 19:21 Edited 2012-01-13 19:28
If you're not averse to protocol misuse... it is. It just has to be done. Windows even comes with an API for it.

I'm currently reading articles on this: It seems that XP doesn't include this UPnP lib...
Parent - - By Caesar [de] Date 2012-01-14 18:11
http://www.codeproject.com/KB/IP/PortForward.aspx (Compiled Demo Version)
Hm, is the MIT-License in this form compatible with our license? I'm thinking about using this.
Parent - - By Newton [de] Date 2012-01-14 18:55
Doesn't work for me.
Parent - - By Clonk-Karl [de] Date 2012-01-14 18:59
Do you have an Alice router? They don't support upnp unfortunately.
Reply
Parent - By Newton [de] Date 2012-01-14 20:12
Yes
Parent - - By Caesar [de] Date 2012-01-14 19:07
Do you have UPnP enabled? My Netgear-Router had it disabled by default.
Parent - - By Newton [de] Date 2012-01-14 20:13
Well, if you have to enable it, there is not much gain in that. Then you can also just forward the ports in your router configuration.
Parent - By Caesar [de] Date 2012-01-14 20:32
It's just a checkbox. And there is no: This will avoid network problems on all systems except a crapload of dedicateds. Too few and you are screwed, too, see HoN.
Parent - By Clonkonaut [ie] Date 2012-01-14 21:53
There are routers out there (like mine) which have it enabled by default. And it's still easier than entering the what-is-an-IP and what-is-a-port for newbies ;)
Reply
Parent - - By Randrian [de] Date 2012-01-14 23:36
And what about writing a program, that does the forwarding for the newbie? Isn't that possible? If the user can, a program should be able to do it too, if given the suitable permissions.
Reply
Parent - - By Clonkonaut [ie] Date 2012-01-15 01:19
That's what UPnP is for. A standard interface to do this stuff for the user. Otherwise you won't be able to program such a process for every possible router and firmware. If the router doesn't support UPnP, you can't do much.
Reply
Parent - By ST-DDT [de] Date 2012-01-15 20:59
If you forward port via scripts not using UPNP, you'll have a big problem seting up all those nasty routers. (You have to wirte a scrpt for each of them)
And there are much more routers than active clonkers.

And there would be always the question:
Please enter your routers loginname and password.
But commonly users don't know them (especially Noobies)
Parent - - By Caesar [de] Date 2012-01-13 18:44

>And the whole OC archive thing sure is a great idea - it just has to be done :)


Remember us talking about it on the HalleCM? You said you were going to do it. :P

Oh, and it works like that. UPnP and enhanced Holepunching should help through most routers.

> (like, scenario a player hostet who had the ports not forwarded and who was asked "Do you want to request the scenario instead?")


I think that could be even made more elaborate: You start a round, all communication is done via the masterserver, and you wait for a client which holds connections to everyone until the round can be started.
Parent - By Zapper [de] Date 2012-01-13 18:53

>Remember us talking about it on the HalleCM? You said you were going to do it. :P


Well, I started! But I didn't have a lot of time in the last few months
Parent - - By ST-DDT [de] Date 2012-01-15 21:02
like COD searching for the best host?

But what happens if you don't find such a client?
->Noob only matches won't work in most cases!
Parent - - By Caesar [de] Date 2012-01-15 21:07

>->Noob only matches won't work in most cases!


Yep, that's why I'm in favor of the current system, the only thing I really want is a direct GUI control for dedicates.

But if you just have some automated hosts which join as no player client into the game, which is open for the longest time, the system would probably work.
Parent - By Zapper [de] Date 2012-01-15 21:13

>I really want is a direct GUI control for dedicates.


- host game on masterserver
- masterserver does port check
- MS tells you "you cannot host"
- engine asks you "you want to ask for the game instead?"
- player says "yes"
- engine sends to MS the request, MS saves in DB (timeout 3min or something..)
- dedicated that has nothing to do asks MS every 20 seconds whether there are requests
- dedicated hosts the game
- MS recognizes and erases from list
- player happy

That would need ~no OC GUI work
Parent - Date 2012-01-17 16:42
Parent - - By Günther [de] Date 2012-01-15 04:10
We can just add every relevant package to the standard download. No need for any fancy on-demand solution. (Assuming that all relevant packages are licensed appropriately, but that's not a unrealistic assumption.)
Reply
Parent - By Clonkonaut [ie] Date 2012-01-15 11:50
And assuming that we know what relevant packages are :)
Reply
Parent - - By ala [de] Date 2012-01-15 14:06
So that there would be an OC Update for every relevant OCCAN package update (with a decent rating?)? Kind of a crazy thought.

It also can be more annoying because a more of a classical player might be not interested in the futuristic hazard stuff, so why should he update every few days for stuff which he doesn't like?

What's wrong with the fancy on-demand?
Parent - By Newton [de] Date 2012-01-15 15:29

> fancy


That the idea to have this in the game is not enough.
Parent - - By Günther [de] Date 2012-01-15 18:38

> What's wrong with the fancy on-demand?


As a hypothetical feature, it is of course perfect in every imaginable way. What's wrong is wasting time implementing it when we could instead spend that time making the game better.

An update every few days wouldn't be unreasonable, by the way. We did that during the early CR development. But there's also nothing wrong with consolidating updates and putting them through a beta phase together. Once we do have the luxury problem of having too many updates, we'll also have the luxury of lots of interested people who can help us solving it. At the moment, we don't have either, so I'm done speculating.
Reply
Parent - - By ST-DDT [de] Date 2012-01-15 21:12
Every tiny package is relevant, because every new user want to show his friends his newest thunder-flint.
So maybe we need to add a new file containing every important information.
Author
Version
Downloadlink (No ugly filehosterlinks)
Website

Like Bukkit did.

packages without such files or unmatching ones will be transmitted host->client if enabled
Up Topic General / Feedback and Ideas / Simplifying Network playing
1 2 Previous Next

Powered by mwForum 2.29.7 © 1999-2015 Markus Wichitill