April 10th, 2009, 05:43 AM
Game networking middleware
Iím doing some personal research into game networking middleware.
(my BG is in networking)
I have read up on solutions like XNA Framework, Quazal Net-Z,
Raknet, Lidgren, Unreal Network, GameSpy, exit games, iPhone SDK.. etc.
But I would like to hear from Devs that may have used networking tools like the above or others.
*To get a feel for the tools
How much did it cost and what was the key factors in committing to that technology?
What level of networking knowledge was expected?
What is the learning curve of that tool for someone only knowing OO design?
After learning how easy is it to work with?
Does it fit with the game structure?
e.g. Net-Z uses a special type of scripting, Lidgren uses low level APIs, Raknet is only in C++.
e.g. XNA & Net-Z uses TCP, having to build a bridge from say C to C++ or C#
If one was to take a Doom clone as an example, adding an 8-player multiplayer(Lan/Wan) to the game.
(1)at spce (2) at prototype (3) at Beta
Any special steps needed?
Time to integrate the framework to the project? (man-months)
Syncing code &netAPI(1st time)?
Reflecting changes over time?
Refactoring(cleaning up code)?
Is there a solution that will do ALL the networking for the game (after adding target IPs & Ports and with out needing to manage distributed stuff) i.e. a one-2-one mapping from game object to the net API, so other players are just objects (on your node) that are controlled by an add-on to the gameís Framework? Would this be helpful?
Are there any featchers you would like to see? e.g. wireless routing, Multi-core processing, easier cross-platform(some type of smart translator). Etc..
If there is any additional things you can think of please let me know.
I Really appreciate your feedback.
April 10th, 2009, 04:05 PM
Networking in a physical manner is irrelevant.
Networking in a soft form is what you need to know.
I read/hear many people say they know how to network because they can plug in a Cat5 cable.
You will need to know how to send/receive packets from a client to a server, and vice versa.
In all reality, you could do whatever you want for free with what you have.
Im assuming you own a computer, and have access to the internet.
You could send / receive packets to yourself via ip. This would be a great start, as in the future you utilize multiple computers. Guess what. Change the IP.
You could study and learn everything there is to know about programming. This doesnt necessarily make it easy.
Its still a boring / tedious(spelling?) job. You can never make a program bug free. Never! Dont tell me you can, because you really cant.
Sure, you could make a program to have a button, that when clicked throws up a message box. And it works every time you click it. But what happens after that thousandth/millionth time? Have you ran the program with every other program possible to check for conflicts? Who knows, the program you used to code it could of had a bug.
With that said, you fix one problem, chances are, you created 3 others. It takes time and patience to fix/work around problems.
You could use pre made engines to make a game, but you are limiting yourself in a sense. You might want a feature that just isnt there.
Im not sure what "featchers" are, but the features id like to see is for me to think of a program I want. Its done/created inside of seconds. Is already cross platformed for Windows/Mac/Linux/iPhone/and everything else. Be bug free, and runs like a champ. And market itself.
Your feature options of "wireless routing, multi-core, etc" dont really apply to programming.
Sure, you can utilize the program to use multiple cores, but you have to ask yourself "Does my program need to?" Wireless routing/hard routing is the same in a programs eyes. Its not going to act any different.
I know this isnt what you wanted to hear, but here it is anyway.
April 10th, 2009, 04:33 PM
OK?? fyi.. I have an M.Sc. in networking & am Cisco certified
Im just asking for people to give me there experiences with different tools (like should I learn java or C++ Pros/Cons but in a networking context)
I would like to address what you said but your not really coherent.
I would put features as things the tool or framework can do to make your life a bit easier e.g. multi-core processing would be good on a MMO server, Routing at the protocol level would be helpful if wireless nodes are dispersed and need to relay message to connect all nodes. etc..
But thanks for the nice welcome.
April 11th, 2009, 04:53 PM
How do you figure I wasnt being coherent?
But you are absolutely right. Multi-core processing would be a good thing on a mmo server.
However, once again. Ask yourself "Does it need it?" All software utilizes multiple cores. However, it splits the loads between them. Where as programs designed for such would do something along the lines of.
Core 1 - Process Logins
Core 2 - Manage Database
Core 3 - Handle Chat
Core 4 - Handle..whatever.
Doing so that way helps, as if your login server is being overrun, the chat/database/whatever performance isnt as effected as it would be if they all shared the cores.
You're wireless question could possibly only result on the server end. Like I said, without telling it, the computer cant really tell the difference between wireless and hardwired routers.
It knows that one is sending wirelessly, and one is sent through a cable. But it doesnt know what the pulses are, etc.
Wireless routers tend to pulse the signals, whereas the hardwired, doesnt.
You could get advanced with it and adjust the rate that it sends data, and include data prediction. This would prevent lag in some games.
April 12th, 2009, 04:09 AM
pre-packaged networking solutions
GixxerPC, Thank you for your reply,
but networking know how aside.
Im just asking for people to post a quick review of pre-packaged networking solutions, there experiences and how it helped or hindered there game development.
This would REALLY help me out