Skjalg Posted September 20, 2007 Report Share Posted September 20, 2007 I'm having a university paper in one of my classes that is about online gaming and problems surrounding it. It's mostly about technical stuff like problems surrounding network and games design. There's a couple of questions I was hoping you guys could pitch in on maybe explaining or referring to places where you learned this :] I find the topic very interesting, and while I'm browsing the web for related articles that might give answers, I thought I'd get a discussion going and maybe tap into that wealth of information in your brains I have to figure out what challenges that lies in networking when we talk about delays and packet loss and describe some techniques to compensate for this. I also need to know how online games try to prevent cheating, (from VAC/Punkbuster to how WoW handles botting), and how this affect games design. I was also hoping you guys could mention a couple of good API's and tools (network libraries) that is related to games development. (XNA?). peace~ Quote Link to comment Share on other sites More sharing options...
Defrag Posted September 20, 2007 Report Share Posted September 20, 2007 Check out gamasutra, it has a lot of good resources on those kinds of things (challenges faced when designing networking stuff for online gaming) amongst others. Off the top of my head, here's some issues to ponder: [*:2knplo3w]UDP versus TSP [*:2knplo3w]Reliability mechanisms with UDP -- when to use it and when to not bother (e.g. you need to make sure certain game events [chat messages, deaths, item pickups] get delivered reliably, whereas other events [player position] in most games can be unreliable as they get updated 20+ times per second regardless) [*:2knplo3w]Game architecture. Client/Server, peer to peer etc. Security. [*:2knplo3w]Absolute updates versus incremental (i.e. giving absolute position versus saying "the dude moved 5 units forward"). [*:2knplo3w]Client prediction. Works great for some stuff (general movement), but can be dodgy for others (response to collisions etc. on a laggy connection). This also extends to the 'shot around corners' issue when unlagging client shots with hitscan weapons. How far do you unlag before certain users start to think it's really noticeable? [*:2knplo3w]Dead reckoning (very broad topic). [*:2knplo3w]What's the best balance when it comes to CPU usage and bandwidth? E.g. do you send 50 updates per second and require very little processing, or do you send 5 updates and have the client perform more local simulation? [*:2knplo3w]Multicasting. More for MMORPGs than anything at the moment. [*:2knplo3w]Smoothing algorithms such as cubic splines when updating object positions. Accuracy versus smoothness? If something stops updating in a game (say a player stops updating for a second) then do you 'rush' him back into place (teleport), or do you use a smoothing algorithm to slide him back into place (not so accurate, but less jarring to view). [*:2knplo3w]Reducing server resources. How do you make it so that your server and client runs at independent framerates? The server has a lot of processing to do usually, so it's important the server can run at a lower framerate (e.g. default tickrate for most servers is usually something like 33, but most clients will run at 30-100 fps) Interpolation, extrapolation etc. all come in here for the client, but then you have to take these into account when performing calculations. There's loads more but that's all I can remember off the top of my head. In particular, there's a great paper that describes UT's networking & how people perceive the game's responsiveness etc. when playing with both a good and bad quality connection. Also, the HL2 documentation (wiki stuff) on their networking will give you some ideas. As for technology: I think most games developers just write their own network stuff from scratch. Raknet(sp) is used for the mod & non-commercial community quite a bit. *edit - I'm uploading some of the papers I collected, so I'll post the link in a sec. Download: Rar file of papers I collected. Most of the good ones are .doc (particularly "The Internet Sucks.doc") Quote Link to comment Share on other sites More sharing options...
Skjalg Posted September 20, 2007 Author Report Share Posted September 20, 2007 wow. Thanks a lot, I had already dotted down 1, 2, 4, 5 and 7, so the rest is just great I'm wondering what you mean with 6 and 8 though, those terms are unfamiliar... Looks like I have a lot of reading to do if I am to cover all of this. Quote Link to comment Share on other sites More sharing options...
Defrag Posted September 20, 2007 Report Share Posted September 20, 2007 6 is important (gamasutra has papers on this) as it is used a lot. It encompasses a lot things when it comes to networking games. I'm not sure how much multicasting is used or whether it was one of my lecturer's pet subjects or something. AFAIK it is used in some MMORPGs. Basically, it's a feature (built into the TCP/IP protocol) that lets a single computer send one packet to an entire group. A group contains one or more IP addresses. In effect, what it lets you do is reduce bandwidth usage on servers as the outgoing packets are then duplicated at the next router & sent on (as opposed to sent out manually one by one by the server). If you haven't been told about it or you're not writing on MMORPGs, then it's probably safe to ignore it. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.