Forums Index >> Technical Support >> Slickest, smoothest game server debate/discussion
Page : <1> :
Nuts wrote:
@ JJ
"Thats a lot of great information. I did notice that the article was written back in 2004, a lot of has changed since then.
"Some thoughts to continue/debate discusion.
"Bandwidth: I don't think you need a T1 line to run one server for TT (would be nice though)as BC has pointed out that TT does not use a lot of bandwidth to run one eight player server ( I have come to the sames conlcusions as he). Cable and DSL have both upgraded there systems A LOT. I think a major issue is how well your connection holds to the server, do packets drop? Another thing to consider in the bandwidth section for players and hosters: Which holds a better connection, DSL or Cable? Cable typically has the bigger pipes, but is less constant. I have used both and prefer DSL, cheaper and more constant, but less download and same upload as cable.
"RAM/Computer: I agree totally with that statement. I have seen an older computer with more memory feel as good or if not better than a newer machine. As for the Hyperthreading feature if you go to the Intel website they have a great demo. Basically HT allows more "information" to go through faster. You can just imagine the new Macs with dual HT. But I have also read in a few newer articles that AMD's chips (prolly upuntil Intel dual cores), the 64 bits were actually faster and better for gaming. I would love to test this theory I have a coputer that onlly has 512k in memory and with 1GB and HT chip. Wonder if people can really tell the difference between the two.
"Renting/owning: I had actually tried to get a few game servers to host TT for us. Since it isn's a popular game a lot of them didn't give me the time of day. I had a few host for us for a bit. Both came back and said that is used to much CPU and memory. The whole "bots play on" thing. Of course someone could always colocate or rent a dedicated server. I think colo is probably the more cost effecient of the two."
Last edited: Tuesday, March 21, 2006 at 7:34:33 AM
My original question:
Interesting discussion. One that I still puzzle at, though I don't play now. I just want answers to questions at this point.
So in an attempt to solve some of these problems with the many brains here, here are questions that need answers:
When game hosting, there seems to be three problems to solve:
1) The right hardware
2) Appropriate bandwidth
3) Renting vs owning the server
Here's a neutral starting point for discussion that might possibly help. This is an article on game hosting from the evil world of Microsoft. But still, it is a good article:
http://www.microsoft.com/windowsxp/using/games/expert/durham_gameserver.mspx
This has issues that experienced hosters (like dash) have confronted. Here are quotes from the article. Highlights are mine for emphasis:
1) Bandwidth
You simply cannot achieve low latency and low ping using DSL or cable, nor can you (for the most part) get the needed upload bandwidth that a game server needs. Dedicated bandwidth is a must.
To run…servers I use a wireless T1 line that gives me more upload than DSL and cable…
Note: If you choose to run a server rather than to rent one, you should always run a dedicated server on one machine and play on the server with a different PC. Dedicated servers don't have to crunch data associated with actually playing on the machine, so they perform better for the players who connect to them.
…most ISP do not allow any kind of server running on a customer's private home connection. Basically if you run a server out of your home, you're most likely going against your ISP policies, but ISPs don't seem to monitor this as much due to the [number of] servers running in customers' homes…
2) Hardware
As for what kind of hardware you really need, according to Larkin, it depends on the game...
We're using a single Pentium 4 3-GHz CPU running in hyperthreading mode and a gigabyte of RAM. That configuration seems to be able to handle any game we've hosted to date.
3) Renting vs. Owning the server
…downside of renting is a lack of control…
Here are my questions and a few answers for you experts:
1) On bandwidth, it appears (from the first quote) that Cable and DSL will never do the trick. Cable and DSL may be good, but they will always present problems.
There is an additional support for this from this quote/point from the article here: Running off DSL or cable means fewer people can join, as DSL is capped at an upload rate and cable fluctuates too much to hold an actual ladder.
Additionally, ISP's appear not to like the game server option and may be screwing with your connection…though that may not be a major issue.
Please, note the NOTE. Hosting and playing on the same machine is not recommended.
2) On hardware, a fast machine with a lot of RAM is important. But what is hyperthreading mode? How important is it?
In the past, some of the best games that I played were on Sluggy's when he hosted with one machine that had 1.5 gig of RAM or higher and a high-RAM video card.
While this is important, I don't think it is as important as bandwidth!!!!
3) On renting vs owning, it appears renting is always going to be the best option. But the big problem is how to install the mods since companies are not going to let you remotely manipulate the game?
Dash's servers seem to be answering all the problems. However, he still seems to have a bandwidth problem…
He's got his own box on a rack and he changes game settings at his convenience.
My suggestion on discussion is that you all consider each question individually! Also, please consider discussing which problem is the highest priority problem.
My conclusion is that bandwidth and dual processors for incoming and outgoing packets are the highest priority.
Cheers! Fun games!
@ NUTS
Got to go to work and have spent too much time on this already now, but am intrigued by your statement:
I think a major issue is how well your connection holds to the server, do packets drop?
If a connection drops packets to the server, then in effect my connection only looses hold. My connection should be the only one affected.
The server should remain stable unless the server can't handle my packet drop and bad connection.
If this happens -- as it does even in dash's -- the problem has to be with the server's ability to handle the load. The server just crumbles under the load.
There are two possible fixes: Cut down some way on laggers or increase the power of the server.
Since everyone experiences lag due to everything from thunderstorms to parrots on the routers, I don't think it is practical to cut down on laggy connections. Instead the server needs some tweaking.
But where to tweak or muscle up the server? Processor or connection provider? Sluggy swore that RAM was super critical. I think it is important, but not critical.
To me, it's beginning to look more and more like a server processing problem and the rate of in and out from the cable provider. (I had a conversation with my cable company about buying the business class connection that was a pain. And then there was my hardware friend whose employer got his cable permanently cut for raising his "out speed" to business-speed levels illegally....)
@ BC
I am not sure the Dallas and Denver connection will help the east/west thing.
About a year ago, I looked at the same thing. The Chicago connection still worked best. At the same time, I also talked to a number of game host renters...but more on that later.
The Holy Grail here for me has always been Sluggy's setup. Even with a dozen players it was sometimes pure magic and he is left coast and I am on the right.
Last edited: Tuesday, March 21, 2006 at 8:09:37 AM
Thoughts on dropped packets.
To clarify I think dropped packets are bad dsl/cable or a stressed/weak computer. It’s my theory that dropped packets do affect the server to some degree.. Like if your shooting at me and I am dropping packets. Then the server in a sense has to adjust for your bullets passing threw me (some do some don’t). I am not exactly sure how servers work but I do believe that they have to compensate in some way to make up for the drop packets. You can normally tell tanks that are dropping packets because they take longer (more shots to kill). Which is why I think if you are in a server that is lagging it would be interesting to note, why. I have always found it weird how you can be playing a game and no lag, then come back and the same server is just laggy. Of course I never lag and I always have great a connection :)
My problems encountering lag I found in the last year related directly to a poorly performing router just outside my ISP's network or on about the 5th hop. It's a frustrating situation since calls to my ISP always resulted in "it's outside of our network". That went on for 4 weeks til it got fixed. If I have a real laggy game I usually run a tracer route to flesh out what's going on. You may want to try that JJ.
I think the quality of your local ISP and your location in regards to being near a backbone may come into play too, esp for hosting. When I lived in major metropolitan area I could host with mostly good results while now in a rural area with the same line speed the results aren't as good. My ISP is upgrading to 8Mbit/560k this month so maybe that will change and I can host again.
Here's some good tools including one for line packet loss.
http://www.dslreports.com/tools
I just upgraded to a 6mb/1mb yesterday. I'm not entirely sure but it seemd easier to kill people. We had some awesome small games with me dash, bad ass, and some others.
Somewhere around midnight central time all of the west coast players joined up.
I'm not knocking anyone here, just making an observation. The composition of the server changed completely.
I'm not referring to the ability to score, my scores would obviously be less, there are many great west coast players. I just mean that it was far more difficult to kill other tanks. It also appeared that things were a bit more jittery than usual. I'm not really sure where I'm going with this. We all know this is a network dependent game.
Thanks for the tip Napalm maybe I'll hold off BM'ing with you til my service upgrades. :)
It's such a small community of players I guess there's not much we can do to solve the east vs west problem. I ping great to that server in Denver BC posted about, maybe that will help.
I think Clark from BT posted something somewhere a long time ago about maybe some optimization work in the game code to improve online play. It looks like something like that will be a ways away for now.
Last edited: Wednesday, March 22, 2006 at 2:01:11 PM
"It's such a small community of players…"
Nice if it were a lot of great players and a lot of great servers to play on.
Practically, there are really only a small number of options for improving servers.
1) Ask players not to bring lag but first tell them what brings it!
2) Streamline and/or power-up servers.
3) Rent space.
Right now, the best servers are those that have the best bandwidth or ISP and the best hardware. None are rented -- and that may be too difficult, though I hope not.
But there is still a lot of mystery to this that could be easily solved.
NUTS mentions above: "It’s my theory that dropped packets do affect the server to some degree."
Yeah, but to what degree?
Here's an excerpt from Wiki on lag. Highlights are mine for emphasis:
http://en.wikipedia.org/wiki/Lag
"A lagger or laggot (occasionally, High Ping Bastard (HPB), High Ping Whiner (HPW), Lag Fag, Paper Modem or Panda Lagger) is someone who uses a relatively slow 56 kbit/s modem to connect to the Internet, then joins a multiplayer online game (usually a first-person shooter) and who therefore has a high ping time. In synchronous games, where all clients must know the exact game state, a single "lagger" will slow down the game for everyone , since the server has to wait for the client to get every communication packet. However, many online games use an asynchronous communication model, allowing the clients to continue even if they drop occasional packets . A high-pinger who does not inhibit the overall performance, just his own, is sometimes known as a High Ping Bait."
I played some games with lagging players popping around the map and it did not affect the server. Just silly to watch. Therefore I am assuming that TT is asynchronous.
These players are only High Ping Bait who do not "inhibit the overall performance" of the game.
If by performance of the game you mean game quality, that's not what they are talking about.
However, if performance means server performance, that's what they're talking about.
If TT is asynchronous and if players who bring lag are just High Ping Bait, then there must be limits to what traffic a server can handle if these players can still somehow affect the server .
Just thought this was interesting...
What is does point out is that there must be a way to measure the load on the server. Thoughts?
Reminder: Because it seems easier to consider them separately, I broke the questions apart: 1) hardware 2) bandwidth or ISP and 3) own vs rent. My sincerest hope is to please my masters with clarity. And you are all my masters. I bow to you, wise ones, scraping my nose on the pavement. At any rate, it's TMI (too much information) to consider all questions at once.
Last edited: Wednesday, March 22, 2006 at 6:14:26 PM
@JJ
That is some great information. Got me thinking, what "type" of a game is TT, or how is it served? After doing some quick research TT usses TNL or Torque Network Library http://www.opentnl.org/faq.php.
I have not read to much about it but did notice that TNL has recieved some updates and wonder if those updates were done in TT as well. Does anyone remeber when TT was updated? Last TNL update was 5/2/22.
Still reading about TNL, seems very cool, wonder if I could use it to take over the world?
Another question about serving/hosting. Does the router matter? Would it be better to have the "line" go directly into the computer? I can hook my 2 computers up by going straight into one then go to the other by adding an NIC card. Logic would say yes, because you are going through one less thing, but is all that much? Addtionally, does the router itself matter? Like I have seen gaming routers, is there a difference or is all marketig?
Crap more research.
Last edited: Thursday, March 23, 2006 at 4:59:14 AM
I can hook my 2 computers up by going straight into one then go to the other by adding an NIC card. Logic would say yes, because you are going through one less thing, but is all that much?
You would never notice a difference. It's about the same speed as you having sex. Over before it started!. XD
The issue is the people who are not close to you that are brining down the performance. I don't think that can ever be fixed.
Maybe the truely only logical way to make this better would be to have east and west coast divisions. East and west would be divided and meeting the middle of the country for the finals.
Ahh lets digest this for bit....
(From TNL--Strategies for Dealing With Latency)
Latency is a function of the time-based limitations of physical data networks. The time it takes information to travel from one host to another is dependent on many factors, and can definitely affect the user's perceptions of what is happening in the simulation.
For example, in a client-server 3D simulation, suppose the round-trip time between one client and server is 250 milliseconds. If the client is observing an object that is moving. If the server is sending position updates of the object to the client, those positions will be "out of date" by 125 milliseconds by the time they arrive on the client. Also, suppose that the server is sending packets to the client at a rate of 10 packets per second. When the next update for the object arrives at the client, it may have moved a large distance relative to the perceptions of the client.
Also, if the server is considered to be authoritative over the client's own position in the world, the client would have to wait at least a quarter of a second before its inputs were validated and reflected in its view of the world. This gives the appearance of very perceptible input "lag" on the client.
In the worst case, the client would always see an out of date version of the server's world, as objects moved they would "pop" from one position to another, and each keypress wouldn't be reflected until a quarter of a second later. For most real-time simulations, this behavior is not optimal.
Because TNL is predominantly a data transport and connection management API, it doesn't provide facilities for solving these problems directly. TNL provides a simple mechanism for computing the average round-trip time of a connection from which the following solutions to connection latency issues can be implemented:
Interpolation: Interpolation is used to smoothly move an object from where the client thinks it is to where the server declares it to be over some short period of time. Parameters like position and rotation can be interpolated using linear or cubic interpolation to present a consistent, no "pop" view of the world to the client. The downside of interpolation when used alone is that it actually exacerbates the time difference between the client and the server, because the client is spending even more time than the one-way message time to move the object from its current position to the known server position.
Extrapolation: To solve the problem of out-of-date state information, extrapolation can be employed. Extrapolation is a best guess of the current state of an object, given a known past state. For example, suppose a player object has a last known position and velocity. Rather than placing the player at the server's stated position, the player object can be placed at the position extrapolated forward by velocity times the time difference.
In the Torque Game Engine, player objects controlled by other clients are simulated using both interpolation and extrapolation. When a player update is received from the server, the client extrapolates that position forward using the player's velocity and the sum of the time it will use to interpolate and the one-way message time from the server - essentially, the player interpolates to an extrapolated position. Once it has reached the extrapolated end point, the player will continue to extrapolate new positions until another update of the obect is received from the server.
By using interpolation and extrapolation, the client view can be made to reasonably, smoothly approximate the world of the server, but neither approach is sufficient for real-time objects that are directly controlled by player input. To solve this third, more difficult problem, client-side prediction is employed.
Client-side prediction is similar to extrapolation, in that the client is attempting to guess the server state of an object the server has authority over. In the case of simple extrapolation, however, the client doesn't have the benefit of the actual input data. Client-side prediction uses the inputs of the user to make a better guess about where the client-controlled object will be. Basically, the client performs the exact same object simulation as the server will eventually perform on that client's input data. As long as the client-controlled object is not acted upon by forces on the server that don't exist on the client or vice versa, the client and server state information for the object should perfectly agree. When they don't agree, interpolation can be employed to smoothly move the client object to the known server position and client-side prediction can be continued.
@ NUTS
Oy! You trying to break the axles on my brain wagon?
Actually that was kinda interesting read.
I assume a common or street language name for TNL might be "time correction software" or something similar.
After reading the article -- and enjoying statements and phrases like "For most real-time simulations, this behavior is not optimal..." and "no 'pop' view" --. It would seem like the same problems still exist.
To wit: If your bandwidth stinks, no amount of fixing is going to help.
However -- and this is an important point -- we are talking about small changes that may make a good difference for an eight-player game.
Therefore, you keep reading and tweaking and let us know if you get to EUREKA! Especially if you figure out how to take over the world. I'd like to Assistant Prime Minister if you do.
@ the direct line to the router or not
In a snotty voice, Time Warner told me that they would not guarantee their stated speeds if I went through a router. I have one computer on wireless and the other not. It is this router that you are referring to?
Of course, I immediately unhooked my router and plugged my computer straight in to the cable modem and tested my speed. Then I called them back and told them the speed still was not right.
The technician who showed said I had rusty connections outdoors. Hate it when that happens, rusty connections...
Speaking of testing speed, Az mentioned one: (http://www.dslreports.com/tools). There is another that has download and upload tests from a specific location. It is testmyspeed.com.
Az also mentioned doing a trace.
On Windows, if you go to Start and then Run and then type CMD, you can type the word TRACERT followed by a space and then type either the www address or the IP address and see all the routers that your machine must go through to get to the destination.
Most importantly, you can see the speeds too apparently. I confess that I haven't used this much yet. I will try.
Also, to test your ping, you can from the same CMD prompt, type PING followed by a space and the address for your connection speed to a specific location. It tells you the speeds and has a nice little ratings legend at the bottom.
All these things, you probably know, since there are many smart people in the world and you all are among them.
Additionally, I recalled a discussion on widgets earlier on PTT, and so I looked back for information on widgets. Found some here: How to widget
It's free. Both the engine to build and samples. I downloaded one that monitors CPU use.
If you run this widget over the game, when operating a server, then it will show the CPU consumption during the game. If, for example, you are running games as Napalm was and the west coast joins and irregularities start, they may be consuming your CPU and a widget would show it?
Just a thought for an experiment.
Last edited: Thursday, March 23, 2006 at 9:40:26 AM
BTW, if you do a TRACERT, how about telling everyone all the places you've been to to get to where you wanted to get...
Last edited: Thursday, March 23, 2006 at 10:01:14 AM
@JJ
Had pretty much come to the same conclusion as you.
Router;
Here's my logic. I have the normal set-up: line in to router, out to computers. So when the info is coming iin it has to go through my router and gets checked (iptables) then told which computer to go to. At, the same time if I am playing on the other computer it too has to go back through the router but doesn't go to the internet but to other computer (so in theory I should not be using any bandwidth). The set up I am thinking about is running the "line" directly into the server computer ( is a linux box, vast majority of routers use linux iptables) and have that act as the router, but I believe it would act more as switch. Then I would just have a line going into the other computer with an addtional NIC card. From what I have been reading a small change can make HUGE difference. I'll see if I can get this set up over the weekend and see if it matters. If it looks good maybe next PSL game I host Ill try it.
Tracert
I have used that a few times. I have never run into any real problems.
Serving
Normally while serving I have a gkrellm monitor (http://members.dslextreme.com/users/billw/gkrellm/gkrellm.html
) and have served when people have stated they were lagging. I look at the monitor and nothing is being stressed that I can see. I would like to get more info though..
Final note of the day for me:
I just took a skim read of the Pokemalo thread on the General Forums.
I am totally confused.
As Napalm has said, this is a "network dependent game." If that interconnectivity has some problems -- as it does now -- then the game will exist only for those hardcore enough to endure the connection problems!
Because game controls are missing from TT, game hosting companies have not wanted to put it on their lists -- and that has denied players from having easy access to a fast server near a backbone.
While there are many bottlenecks to having a good connection, BEING AS NEAR TO THE BACKBONE AS YOU CAN GET IS THE PRIMARY PROBLEM for any online game.
What I was attempting to do was simply find some ways to enhance the connection under limitations as they now exist.
Last edited: Thursday, March 23, 2006 at 11:52:11 AM
PS: Nuts, your router rewiring sounds valid. Hope it works. And thanks for the look at the monitor. I assume most players are using something like that? Or not?
I have already gotten attached to the CPU monitor that I downloaded.
BTW, one of the best games that I played was on your server with Monkee Man's latest set and ten experienced players. That was pure joy.
Last edited: Thursday, March 23, 2006 at 12:14:07 PM
For me this has gotten me to think a little differently. Not sure if there is anything that we can do specifically but maybe fine tune it enough to get some good games in. I think with teaks in the server and with the maps it could help a lot.
I know that BC has been looking into colocating/renting a server. I intially helped out but every thing I found was to expensive. I also looked into having a game server host for us, no go there. Maybe I'll have to pick up the ball again and see what happens. Ideally we need a good server on a great backbone.
@JJ
Thanks
This has been fun.
The gkrellm is a linux thing that has been ported to windows and others. I have been using it for awhile, kinda light weight.
Last edited: Thursday, March 23, 2006 at 12:08:56 PM
PS: Not gone on the idea of this...
Has anyone tried tweaking the nic card settings? In many dektops your limited in what you can do. In server hardware you can play with the frames. I wonder if changing the frame size would help in any way? I have my mac set to 100/full at home and it appears to work well. Maybe it can be tweaked even further.
I have never tweaked a NIC card.
Just got the second NIC installed. The computer see's it, ifconfig does not :S. Need to do some googling, or send dash an email, check email dashy. Upgraded DSL today from 1.5Mbit/368Kbits to 3.0Mbits/5Kpbits. SHould take effect next Wednesday, hopefully before PSL.
@nappy
Please check the fog setting on our PSL maps and see if needs to be changed, please, please, please.....
Keeping my happy face on, and continuing doodles in the sand on this.
@ hyperthreading
It's on my machine and it's enabled. This is an Intel thing. Noticed that dedicated server sellers promote HT -- I assume that is jargonese for hyperthreading. (Athalon processors said to be faster??)
@ T1 line
First, on the subject of terminology, downstream and upstream for me is simply "in speed" and "out speed" because I hates jargon. No slaw on my cheeseburger either.
My connection is about 4300 in and 400 out on regular cable. (Was higher.)
The advantage of a T1 connection is that it has in and out speeds which are roughly equal, I am told. For servers this must be good. The rate back to your computer is about as fast as the rate in from your computer. This must stop some latency issues, and I assume this fact is why the original article that I quoted above mentions it as well.
I'm not sure what value there is in mentioning it. T1 installation is too impractical at home for the expense of installation or operation. Plus, it's rumored to have equal or slower in-speeds than regular cable.
@ Renting or owning
1) Dedicated server or co-location?
2) Estimated bandwidth use per month by TT?
3) Smartest offers on bandwidth?
Last edited: Saturday, March 25, 2006 at 9:07:44 AM
Hyperthreading:It's a good thing. Wasn't so much that athelon were known to be faster but that 64bit chips (intel is 32 bit) is better for speed. Thats on chips without HT. The way I understand it is that 64bits, since bigger, allow more "information" through than 32 bits. HT makes 32bits act like 64 bits. Look at macs. They have outperformed a lot pc's because they had the 64bit architicture. Now they have the dual core technology. WIll be interesting to note any speed improvemnts on ther G5's, which were dual 64 chips. Don't belive that any of the models had a dual 64 configuration that the dual has been in. I think the main reason they went with the dual core technology is that it ran cooler than the 64bit they had.
T1: The best things about T1 lines is that there speeds are constant, "dedicated". Even though people have these great up and downs speeds doesn't mean that it constant. I think a server being hosted with 368Kbps/368Kbps is better than say 5Mbps/368Kbps. Because you know that the T1 will stay constant and cable/dsl may fluctuate above and below said numbers. So if it fluctuates below said numbers, not a good thing. One of the main reasons that I made the switch to dsl from cable is that our cable would fluctuate a lot more. It gave a heck of of a lot more bandwidth down, up was the same and when it fluctuated I could tell. With dsl its a touch more constant here for me. Plus cable 5mbps down and 368Kbps up for $35, or 3.0Mbps down and 516Kbps up for $17.99, hmm....I do not think T1 are practical for home, unless you have a business out of there. However, I think that because of the competition between cable and phone you will continue to see alot more of improvements in the current system so you won't need a T1, thats my hope anyway.
I know BC has a few stats on bandwidth. I think that colo is cheaper, then you really are paying for the bandwidth.
Interesting, NUTS
@ Bandwidth and to respond something you mention about it:
It appears to get defined two ways.
First way: as a measure of volume. Dedicated server people sell bandwidth by volume used, usually by the month.
So the first question is, how much bandwidth does TT use? For example, approximately how many bytes of information would a TT server use with, say, 8 players, if the server stayed up 8 hours per day for 30 days? Is this asking the question the correct way, anyway?
The second use of bandwidth has to do with speed. Measured in kbps. Nothing deep about that.
You mention an important point that relates to this. Which is that cable "fluctuates too much" -- mentioned in the original article also.
This is similar to sticking a volt meter in an outlet and watching the 115 volts vary from 105 to 125 and up and down at a too-frequent rate.
@ interruptions or fluctuations in signal
Up to this point, I have considered disruptions in just the server. Of course, there are disruptions for both the server and the player's or client's machines (correct jargon for here?).
There are apparently lots of causes for fluctuations.
One of big gripes from TT players has been that players turn on too many background apps while running the game. To imply that this is the primary cause of lag or fluctuations is kinda, well, oversimplified.
It is true that some do run background apps -- like music or IM -- when playing. This is pretty thoughtless on their parts, and I would think that league players are aware that it does spoil a game to run background apps when playing. Of course, it will spoil it for others, but especially spoil it for the player himself since that person penalizes himself with loss of speed.
For a server intentionally to run unnecessary background apps is double...ah...unsmart. However, most computers load so much junk over a period of time, including spyware, that these things start acting like major background apps. I have noticed that I lock my firewall on some programs and those programs seem to want to constantly scratch at the door to get out onto the internet. This causes a flash of CPU usage and probably some signal or bandwidth speed fluctuation.
At any rate, whether these fluctuations from cable cause large enough damage to the signal for me to justify using dsl over cable, I don't know. How did you measure those fluctuations, btw?
Pardon my doodling. Should I send danmac a check for the bandwidth use here?
Somebody ought to send dash a check for his bandwidth use, eh…
Last edited: Saturday, March 25, 2006 at 4:26:14 PM
Final thoughts/doodle of day:
There is one unfixable cause of lag for all players and there are certainly lag problems caused by traffic volume.
If you get a bad hop in your route to a server, as Az mentions, there's not much you can do about it. Some lines just have problems that are not reachable. Some players are just stuck.
However, there are traffic volume troubles too.
I remember very clearly setting up a server and having Hugo and -z- show up with low lag. Hugo is on the left coast and -z- is across The Pond and my server was on the right coast! But the biggest riddle for me was this:
Why couldn't a left coast player connect better to left coast servers which he is closer to than to a right coast server that he is much, much farther away from? (Follow all that?!) My first conclusion was that the position of the player relative to the backbone is the reason -- BUT I think traffic is really just as big a consideration.
If you send a message to a server that has to stand in line with 10,000 others at a router stop before loading and moving on, then that's bad. This is not an unfixable problem, just annoying. Some lines are probably overexceeding their limits. Like in those who live in Canada, for instance. What more is there to say, eh? I've heard they are still using rotary telephones there, eh.
My main point again though is setting up a server that runs as smoothly and slickly as possible. A home server does have to be lean and clean to run mean. The whole point of a dedicated server is that is sits on the backbone and at least cuts out that portion of distance from the server to the backbone, bypassing any router or fluctuation problems for the server side of the game.
Last edited: Saturday, March 25, 2006 at 10:51:09 AM
@JJ
In response to you rintial questions, yes.
I had found a bandwidth meter I believe through dslreports.com that acted like that voltage meter that you used as an example.
One of the things that had always confused me a bit is how can a game like TT that seems to use such little resources in serving have so much lag. I think Joe gives a glimpse in his repsnse to the The Future of TT (Response from GG!)
The low performance on maps with many textures and modded maps is because the game was not optimized to work with these sorts of MODs. The thinktanks terrains were modified for thinktanks, and the textures done like they were for performance reasons.
Using, say, the TGE terrain editor to make new maps, and blaming the low performance on the game is kind of like saying you bought a pickup truck, threw 5 tons of sand in the bed, and that you are not getting as good performance as when it is empty.
We modifed to TGE in several places in order to increase performance. These sorts of issues are why we don't support modding..meaning, why we don't offer tech support for people who are modifying the game. Those that do are working outside the the technical design (and in this case, undoing optimizations)
Using additional DTS shapes that are not built properly to take advantage of the optimizations we made may actually give you a speed hit.. Note that we changed the TGE to handle the state switching better for ThinkTanks.. The end result was increased framerate.. For the art construction, it demanded the artists not use more than one material per mesh.. So if you are using a modified DTS shape that uses more than one material per mesh, then you will actually get worse performance than you would get with stick TGE,
If you want better performance, decrease visible distances.. More fog should actually improve performance, but you may have mixed results in maps with lots of trees.
Multiple textures on the maps should give you worse perfornace, especially on Mac's.
On League games, if this is a hosted server (as in , hosted on someones computer) then it is probably a combination of things.. If someone is hosting and playing a big game, the limitation is probably the connection, particularly upload speed, which on cable modems, is usually much slower than the download speed. If the person hosting is also, say, running itunes or some other resource hogging application, then the performance will be similarly decreased.
So, a note here. When we released thinktanks, we went to great lengths to make sure it was performant on low end hardware.. Out low spec machine was a p2-400 with a tnt-2... We also got it to work with an acceptable framerate on Rage 128s..
We had to do some special things to make this happen.. If people willing choose to break the optimizations we made, we cannot guarantee performace will be good.
Addtionally he also recommending reading Clarks blogs lots of great information there.
So I think we not only have to worry about how the server is but also the maps. I would like to try out that Fraps and see what I can see. Check out some stock TT maps then check out some MODS and other objects.
Sadly, nothing that I can really do but tweak and wait.
Excellant resources NUTSO!
Bookmarking to use as reference
Especially Clarks blog
Yep, I read that.
I picked out three things real quick:
...blaming the low performance on the game is kind of like saying you bought a pickup truck, threw 5 tons of sand in the bed, and that you are not getting as good performance as when it is empty.
If someone is hosting and playing a big game, the limitation is probably the connection, particularly upload speed, which on cable modems, is usually much slower than the download speed.
If the person hosting is also, say, running itunes or some other resource hogging application, then the performance will be similarly decreased.
@ the new mods and pickup-trucks-overloaded-with-sand thing, I have always been convinced that some of the new maps cause more stutter or lag than others. The smaller maps seem to be better, etc.
To extend the comparison, whether the pickup truck is empty or overloaded, if the road is full of potholes and detours -- or the truck has a delayed start -- it's not going to get to its destination too fast for these reasons also. But that may be overworking the comparison, heh.
@ bandwidth meter
The meter that I am interested in is not the speed one. It is the volume one. How many megs of bytes does a typical 20-minute game of TT transmit from the server? Just ballpark.
Or does your meter measure volume of bandwidth as well?
Again, to rehash, bandwidth gets measured two ways -- speed and volume. It seems....
In this respect, bandwidth appears to be like volts, amps, and watts in electricity.
Voltage is the speed of electrical current. Amperage is volume of current.
So high voltage/bandwidth is like a car speeding 100 mph down the wire. Low voltage/bandwidth is a car running 20 mph down a wire. High amperage/bandwidth flow is a cement truck; low amperage/bandwith flow is a VW bug.
So, High voltage/bandwidth speed AND high amperage/bandwidth flow is like a cement truck speeding at a high rate down a wire.
Watts is volts times amps. So, for example, a 100-watt bulb uses 115 volts and about.9 amps.
A 100-watt bulb then is rated to use.9 amps of power at 115 volts in one hour. (Too bad there's no wattage equivalent with bandwidth...?)
So, heh, what is the wattage of a typical TT game? At a cable rate of band width speed? Which is 500 kbps out?
@ fraps
Looks great. Not sure which way you're going to use that.
Last edited: Monday, March 27, 2006 at 8:46:58 AM
Ahh
Ok did a little bit of research this weekend. Had a server up that was monitoring packet information. Notice that when someone joined the server it would go up about 30 packets down and 10 to 15 up. Not sure if it was measuring per second or 2 seconds. So I need a little more clarification there as well. So it can be done, just need to collect the data first. Not sure if you can change packet=x(bandwidth).
Did a little research using the fps option in TT. Noticed that TT original maps was about 166 fps for me. Most mods were around that as well, some did dip below. Was kinda stupid should have used a weaker card, try that later too.
Did finally set up the one box as a router, but can't see server (for petes sake), not sure about the iptables, I thought I opened up the ports udp:28000:28005. Need more time on that too and see if that has any impact.
Went down 30 packets?
Wazz up with the fraps thing?
You are into the software now. You're off hardware, bandwidth, and rent vs owning -- not that there are rules. Except the one rule: There are no rules. )
Fine but fps is????????
First person...
Me, I was obviously doing a little hoping with the bandwidth/wattage comparison above. That possibly someone had some bandwidth usage info. Since that is an unknown in the expense of renting a dedicated server, that is.
At this point, Nerts, I think that you may make a major find and put a game server into hyperdrive.
Just tell me what's a frap good for first. It takes great movies, yea, yea.
Last edited: Monday, March 27, 2006 at 10:50:30 PM
Not really off those questions. Just looking into things that may help answer those questions. However, from what I had read from Joe and Clark it does seem like more of a software issue.
As for packets I was wondering how much data on average an individual player was using. Then I was going to see if its possible to tweak the server.
Fraps lets you take "movies" of games and plays them back nicely. TT also lets you record games as well but then you have to save/put in movie form.
FPS= Frames per second. Typically the more the better. Just think of a flip book, the faster you can flip it the more detail you could see. TT does have a fps feature. In linux you start it by starting tt in a termial with./ThinkTanks.bin -console after that starts and leaves the terminal up the you just type metrics(fps); in game. Then as your driving around you can see the fps. I think starting fps in windows is similiar, did once awhile back.
I emailed BC to shed a little light on the TT bandwidth question. I think he has some data from when he was renting a server from unixshell.com.
Wow, lots of techie talk here. I wondered where you guys were!
I have a "speedometer" and "odometer" for my Mac. I estimate an 8 player game at 30 KB/sec(245 Kbps), and 9 MB/game. Just to ballpark that: my cable is only 220 Kbps.
Dash says he has never used more than 30 GB of data transfer/month for his TT hosting of multiple servers. I estimate that I'd need no more than 10 GB/month to host a popular TT server. Dash buys bandwidth in bulk and is probably not paying extra for his TT serving bandwidth.
I found a way to use the Apple Developer Kit tool OpenGL Profiler to monitor the frames per second of my video card while playing TT. Nuts, are you measuring FPS during 8 player goal cluster funks? Its much lower than on an empty map.
I'm making progress on my server colocation project. I'm going to try Dallas first because its cheaper. I ordered a 400 Mhz G4 to stuff a few minis and a switch into. I'll keep you posted here.
@ BC
Would a dedicated server rental not be cheaper? As I understand it, when you co-locate you put your own personal machine at a site. Cost is still about $75 to $100 per month for co-location PLUS the cost of the machine.
There appear to be lots of dedicated server providers. Some look hinky and some look more professionally run. I notice quite a few offering ded servers that are GREAT FOR GAMING! So they advertise.
@ bandwidth used per month.
Most dedicated server providers sell about 2,000 GB of bandwidth per month.
Dash's use of only 30 GB per month is about what I assumed. Thanks for the input, BC.
@ FPS, NUTS
Yeah, it's not "first person shooter." Very nice, the description of FPS as a flip-book. Solace for my jargon weary brain.
@ software, hardware, and lag
One observation about the game and its creators. Since Clark's blog is mentioned. They seem to be a judicious bunch, at least when it comes to game design.
Therefore, I speculate -- and it is only speculation since I can't read Clark's blog without getting punchy -- that the game was originally engineered to run in the quirky, unstable world of internet connectivity. To be attractive and desirable to gamers who play with network connectedness. In other words, TT has to dodge all the goofy internet and connection problems and still be fun. It has.
Therefore, in one respect, whatever is happening with lag now is beyond the allowances for internet error that were built into the game. IOW, it's got to be a major thing, that's somewhat obvious.
I'd say (still) that it's the upload and download speed differences with cable and dsl as well as the erratic bandwidth speeds. Add to this that internet use is jumping skyward now and you've got A TRAFFIC JAM! Big city driving on the information superhighway.
Why mention the above two notions? First, because I want to know if dedicated servers have T1 lines...to be simple and to the point. Equal in and out speeds. Less transfer from the server machine to the backbone since these companies advertise that their data centers are parked on the backbone. (Well, that's an easy phone call.)
Another reason is that TT can still be played, I really think, from a cable-fed server with its difference in in and out speeds if there is some way to monitor the erratic jumps and whoops in cable. In other words, if the internet is becoming a traffic mess, then it also may mean that surfing the web does really mean waiting and watching the ups and down of the surf.
You can't control the surf, so having better monitoring tools to watch the waves is certainly going to help. You can see the best waves to ride.
Last edited: Tuesday, March 28, 2006 at 10:45:10 PM
Like this one...
@JJ
http:www.colomart.com
is $65/month cheaper for colo ($420/yr.). Plus dedicated is Windows or Linux which are both more difficult than Mac OS X for me. Also, with a Mac tower + Mac minis I can get multiple processors colocated for the minimum fee. Based on experience, TT is best served one game/processor.
By using a data center the connection should be ample and predictable and would give us the option of hosting all the league games from one location.
Another interesting article. http://www.garagegames.com/index.php?sec=mg&mod=resource&page=view&qid=9131 . Not sure what the settings are for TT (not at home). Wonder if they were changed if it would have an impact for a computer serving. Ideas?
Ahh Ha- If I understand this right the bots really don't play on and use the cpu when no one is in the server. Seems like it more a function of the -sleep function for latency in the server. When it eating the cpu its a good thing. I remember the few times that happened for me the server did handle really well. Now I gota figure out how to turn it off in TT. Got this info from legends.
Dedicated server timer latencies:
---------------------------------
The long explanation:
---------------------
In order for legends to give up CPU cycles to the operating system,
it calls the linux nanosleep() function every cycle. This is essentially
what provides a deterministic timer for the game's simulation "Tick".
For the short explanation, read further down. The following paragraphs
become rather technical
Legends asks for a 1ms nanosleep(). Due to the nature of the linux and
intel timers however, the minimum nanosleep() one is likely to get is
10ms, or a little below. Some systems have latencies much higher than
10ms, and this affects the "ping" people will receive from your server.
The higher your system timers latency, the more time it will take to
produce game ticks, and this will increase players's packet processing
rates, and "ping latency".
For systems with timer latencies < 10ms, it isn't really a problem, but
if you are able to reduce your kernel latency to as close as possible
to 1ms you will be able to offer your players the best experience possible.
This, however in most cases requires a realtime or fairly new kernel.
I've been told that Redhat9 kernels are compiled by default with a low
latency sleep timer.
The other option, is to have the dedicated server NOT use nanosleep()
at all, and just spin in a tight loop, processing packets, and sim
events. This gives the best possible player performance, but will also
make it appear that legends is using 100% of cpu time when players
are connected to the server. When no players are connected the server
will sleep regardless, to reduce cpu time, seeing as it doesn't matter
if the server is doing nothing. When players join though, you will see
the dedicated server CPU utilisation skyrocket.
This might be disconcerting to administrators, but when you consider
the fact that scheduling of the process is now up to the kernel,
instead of legends yielding using nanosleep() it isn't really 100%
cpu utilisation. Legends still makes a lot of system calls to send
and receive packets which will inevitably yield processing slices
to the other processes running on the system, and the server process
may still be preempted at any point by the kernel. Of course, not
using sleep at all, causes the simulation ticks to be determined by
the kernel scheduler. If you have a realtime kernel this might
be a good option, but in general this is not preferred.
To complicate matters further, on some kernels a nanosleep() requesting
a 0ms delay will yield a "cool" latency of around 8-9 ms which is
really what we're after. 1ms being perfect, 8-9 being "as good as it gets"
due to the overhead involved in making system calls.
The problem with a zero ms nanosleep appears to be that some systems
may consider it a non-yield, i.e, an immediate return, so that instead
if giving away time to the scheduler, the sleep causes the same 100%
cpu utilisation situation dicussed previously.
A zero nanosleep on most systems however, yields nicely, and gives the
best resolution timer, making this the most attractive option.
A lot of disconnected waffling I realize, so the try the following short
explanation rather.
The short explanation:
----------------------
On startup of a dedicated server, legends will time your sleep latency,
and suggest a sleep timer mode. IT WILL HOWEVER DEFAULT to using the cpu
friendly "1 ms nanosleep" mode if no sleep mode argument is specified
to stop sysadmins from raising their hackles.
There are three modes which can be specified on the commandline:
-sleep - Legends will use a 1ms nanosleep() to yield to the kernel.
This will reduce cpu usage but on timing challenged systems
this may increase ping latency by the amount reported.
This is now the default mode, so that there is no accidental
thrashing of servers that get installed with defaults.
On my test system though, this yields a minimum client-server
ping time of 18ms.
-nosleep-Legends will not use nanosleep() at all to yield.
This will provide the best possible ping to players but
the server will be in a tight loop, and appear to use
99% of available cpu time. On my test system this produces
wildly varying results depending on system load. This
option is best used on realtime scheduling kernels.
-zerosleep-This will cause the dedicated server to attempt a 0ms
nanosleep. On most non-hires kernels this will cause a <10ms
sleep latency. This is probably the BEST option to use
and will provide the least latency on MOST kernels whilst
still yielding time for scheduling in a sane way.
On my test system this produces an 8ms client-server ping,
which is the best result.
Danger, Will Robinson. Some systems may consider a 0ms
nanosleep something that should just return immediately,
which will once again cause a 100% cpu utilisation issue.
This is entirely kernel version/platform/system dependant.
For this reason -zerosleep is NOT the default. You
may try -zerosleep on your dedicated server, and join
with a client to see what the CPU utilisation does.
If it does not skyrocket then it should be safe to use
this option, and is recommended.
Using -zerosleep implies -sleep mode.
Just as a note: Windows suffers from exactly the same timing issues,
the linux version just gives server admins a choice.
Ideas?
Page : <1> :
Hardware, bandwidth, rent vs own considerations.