glob2-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [glob2-devel] Finalized Design Idea for YOG


From: Leo Wandersleb
Subject: Re: [glob2-devel] Finalized Design Idea for YOG
Date: Sat, 28 Apr 2007 14:01:51 +0200
User-agent: Icedove 1.5.0.10 (X11/20070328)

Stéphane Magnenat wrote:
Take care about the bandwith of yog routing. glob2 may be bandwidth effective, but things like voip are not (and removing them would not be a solution).

does this voip thing actually work? i've never used it neither have i seen talk about it so yes, loosing this 
would be an option to me if we can get rid of network problems like "can't see your game", 
"can't see what i'm writing", "crap game! lets search another one" (ok i'm exagurating 
but i read dialogues like that a lot on #glob2. almost no game of more than 2 players suceeds if no developer 
is around.)
on the other hand: who says we shouldn't punch hole for voip? i consider voip a 
non vital feature and if the rest works and voip works for 5/8 players and the 
other 3 get a message (open port x, y, ...) we have a perfect architecture.

Let imagine we are running a game with 8 players at 2 kBps per player.
We have:
2*8*3600 = 57.6 MB per hour
57.6*24*30 = 40 GB per mounth

this can get even worse but i'd like to have solid figures before wasting this 
concept. benefits of routing all data would just be too dramatic in my eyes.

the input of each player (x*kB/s) must be routed to all clients of the same 
game (g).
so considering games with 8 players are popular yog server has 8xkB/s incoming 
and 8*8xkB/s outgoing as long as yog does plain routing.
if it strips all zero commands (almost all incomming packages contain no new 
orders. checksum comparison can happen at yog.) we stay at 8xkB/s outgoing, too 
so traffic does not depend on game sizes but scales O(1) with the player count.

Even with Terabyte bandwidth we can only hope to host 25 games

ON AVERAGE! and you were talking about 8 players per game! that is 200 players 
on average!
consider the average online time of each single player to be 4 houres!
that is a community of 200*24/4=1200 people that love the game.
that are 1200 potential donors of money to set up a 70€($) dedicated server 
that can serve the next 1200 players!

Just to remind those who barely come to #glob2:
now we have about 1 game every day, 2 frustrated people behind nat, lots of 
talk how one joins a game, ...

before consuming all the bandwidth. I don't see who would agree to host this (I would not).

even my vps includes 1 or 2 TB/month of traffic.
would you if we limited the the player count to 100? or 50? or even 20?
my vps can take (have to try it out) another 40 for now and more when i upgrade 
what i will definitely do if needed.

I understand that using yog as a router would greatly ease programming, but it is a huge feature regression.

at what point exactly?
in my eyes it would make features possible that haven't been implemented yet 
but then would be easy to do:
-all played maps would be available on the server
-rating them would be easy to implement
-spectator mode with time shift would be relativly easy to do (server opens 
spectate games shifted by n minutes noobs can join and watch)
-i guess it would be easier than in present structure to give differing delays 
to clients. Then some catch-up-phases when the grafix doesn't get drawn for the 
slow clients (even diablo does that. in diablo player reaction plays a far 
greater role than in glob2) would make the playing experience better (because 
faster) for most clients. (an in game speed toggle could determin the speed 
agreed upon)

And having a system that works better for the player will make much more player to come which wil break the system.

break?? as bradley said: setting up backup servers all over the world is an 
easy task. and as long as each server can serve 200 players on average
(and ... hmm... peak depends on the server. 200*8kB/s=1.6MB/s that's more than 
i get from my vps i guess. secondly yog must handle these 3000 packages in and 
out per s.)
i'm sure we find a solution with that large community.

This is no long term solution.

it is. nevertheless we should set up 2 yog servers (no matter how small the 
second is. take my vps) from the start so we know we can set up n° 3, 4, 5 and 
6 as soon as someone does the hosting.

Please read this paper that explain how to do things correctly with udp :
http://pdos.csail.mit.edu/papers/p2pnat.pdf

in the abstract it says that hole punching for udp works for as little as 82% 
of all NATs.
so every 5th player behind nat will vote for yog routing. and please review 
#glob log. it seams nothing works without manual intervention for about 50% of 
our new players.

I'm conscious that this tread may be another flame, yet it shows some sounding issues Cyrille tried to raise. While the way he raised them and the resulting flame might have been unproductive, the issue remain: you can't throw away part of the design just because it eases programming. Those part, as complex as they can be, are there for reasons.

lets try! to me switching to router based architecture is a win!

I agree that the network needs refactoring/rewriting, but I think the overall design is correct, things just have to be done cleaner, more layered and with much better documentation.

if we get in the boat ALL=99.5% people that can install glob2 then fine.

greetings, Leo Wandersleb




reply via email to

[Prev in Thread] Current Thread [Next in Thread]