[Top][All Lists]
[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
- [glob2-devel] Finalized Design Idea for YOG, Bradley Arsenault, 2007/04/28
- Re: [glob2-devel] Finalized Design Idea for YOG, Stéphane Magnenat, 2007/04/28
- Re: [glob2-devel] Finalized Design Idea for YOG, Stéphane Magnenat, 2007/04/28
- Re: [glob2-devel] Finalized Design Idea for YOG, Leo Wandersleb, 2007/04/28
- Re: [glob2-devel] Finalized Design Idea for YOG, Stéphane Magnenat, 2007/04/29
- Re: [glob2-devel] Finalized Design Idea for YOG, Kai Antweiler, 2007/04/30
- Re: [glob2-devel] Finalized Design Idea for YOG, Bradley Arsenault, 2007/04/28
- Re: [glob2-devel] Finalized Design Idea for YOG, Bradley Arsenault, 2007/04/28
- Re: [glob2-devel] Finalized Design Idea for YOG, Leo Wandersleb, 2007/04/29