Jump to content

University paper


Recommended Posts

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 :P

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?).


Link to comment
Share on other sites

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:

  1. [*: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")

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Mapcore Supporters

    Our incredible Patreon supporters keep Mapcore's lights on. If you'd like to donate, check out our Patreon announcement.

    Note: This is brand new! The format will be tweaked and rolled out to more pages soon.

  • Create New...