   Game Networking
  From what I read it sounds like some really tricky business.  Is their any holy grail solution to networking a game for online play that works great?edit:I'm using c++.My skill level? Well I just spent the last week learning about structs, classes, pointers, polymorphism, namespaces, and filehandling, and whatever is between those things for the first time.  You could say that I'm a beginner but I'm willing to do what it takes to learn.[Edited by - Shimidly on August 3, 2009 8:22:31 PM]
  What's you skill level ? And what's the programming language your programming in ?If your new, then I'd recommend using XNA, there's a lot of documentation and tutorials for their networking library.   ;  You realize he answered those two questions in his first post right?Im not really familiar with any holy grail unfortunately, but I suggest you start looking into Sockets with C++ and TCP connections. I did this kind of thing in java, to connect to a server the teacher gave us.What we needed was this:Open a socket connection to an IP and Port (what ever the server is set at).Used a thread to constantly check for any output coming from the server. I would then use a BufferedReader to accept user input, and a PrintWriter to send it to the server. While you would use different classes and libraries in C++, the concept is generally the same.   ;  I think he changed his post.Anyway, I'm a c++ programmer as well, and you can build everything from scratch (if you do please cheack http://www.beej.us/guide/bgnet/), or use a already setup networking library suck as raknet (http://www.jenkinssoftware.com/)I used raknet in the past and its easy to work with, and you'll see results relatively quick.This is however all aimed for people with a normal or high programming knowledge as far as i'm aware of.I'd recommend starting with the XNA framework even though it is C#, it is well documented.I hope that helps you a bit.   ;  Use SDL_net. Easy peasy decent multiplatform networking supporting TCP and UDP. www.lidsdl.org   ;  I recently had to make a TCP and UDP game for uni, this was a little tricky for me to understand as multithreading goes hand-in-hand with UDP and for any beginner that can be scary.If your using C++ then you want to get yourself a book on WinSock. I find "Core Techniques and Algorithms in Game Programming" by Daniel Sánchez-Crespo Dalmau a good book, he offers an explaination then code but not so much code it becomes a copy and paste exercise. You will also have the book for many other topics im sure you will stumble onto throughout your adventures.If I could offer you some advice I would say to avoid using libraries that will hide basic concepts from you, If you want to learn networking I believe you should start at (or near) the bottom and create your own libraries. Yes, it is re-inventing the wheel but put yourself in an inteview scenario where the employer wants you to write a networked game but you also have to write your own library (highly unlikely but still plausible) if you dont know how to write your own socket structure because it was always just a re-usable datatype in someone elses library - your going to fail!   ;  Thanks for the great advice by everyone on this thread.  I definitely have a better idea of where to go from here now, and what materials to read.   ;  Different games have different requirements as far as networking go.  The three big things to consider is latency, bandwidth, and number of players. Since you are still new you may be interested in Beej's network guide. As a way to get started.   ;  Read tutorials on general data sending through TCP and UDP. UDP is of course faster, but it isn't reliable. In the game industry for the most part and this is just an observation of mine, they tend to use UDP because loosing a couple packets here and there is better than using delayed packets(TCP). With a 3D game engine for example if they loose a packet they can make it up with prediction and interpolation and extrapolation for key variables to determine what was possibly going to happen.More on that here:  http://developer.valvesoftware.com/wiki/Lag_CompensationAlso look into cyclic redundancy checking, and anything else on the grounds of ensuring a packet that was received is in fact in tact enough to be used.TCP in my experience is incredibly easy to use, UDP on the other hand is a lot of work, but its worth it for a game with a lot of information to be sent down the line.   ;Gaffer has tons of good info about game networking. As for the lower level, it's hard to beat ENet.   