🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Do MMORPGs use custom hardware?

Started by
8 comments, last by WilliamB 22 years, 8 months ago
I have been designing network protocol accelerator hardware and software for the last few years and it occured to me that some relatively cheap custom hardware could be used to accelerate online games. I got the idea from thinking about how you would add realistic voice chat to a game without overburdening the network. I worked up a simulation modeling an arena with several hundred players and the numbers are quite striking. I can also see how other features could be accelerated in this way. I am wondering if custom hardware is being used anywhere now. It needs to be custom because to get the acceleration you need to interpret the game protocol directly. With prgrammable gate arrays you can quickly reprogram if the game protocol changes. Is anyone using custom hardware now?
Advertisement
It would seem to me that if the component you are looking to accelerate can be separated enough from the rest of the game to allow it to be built using custom hardware, then most designers would probably just throw another standard off-the shelf processor at the job. After all, the greatest cost by far in software projects such as MMRPGs is salaries to developers so a custom hardware chip would have to be extremely efficient (basicly replace whole game servers) in order to make up for the increases in development and integration costs that it would bring over standard hardware.

Henry
I haven''t heard of anyone using custom hardware in this area. You might try selling the idea directly to them... I can definitely see this being useful. There are things you can do with custom hardware that just "throwing another processor at" couldn''t do.
I am having a hard time trying to imagine a MMRPG-related task that could not be accomplished cheaper by using standard hardware components than by using custom hardware. After all, the development and integration costs of even a small custom hardware component could in many cases cost more than whole multi-processor game servers. Multiple MMRPG companies could possibly benefit from doing joint development on solutions for common features in that industry, but such cooperation might quickly make those developments ''non-custom'' too

Henry
Cheap 128bit hardware encryption/decryption at 8Gbps might appeal to them.

The problem with voice chat is the bandwidth at the client ends - you''d be insane or silly to send it the to server for relay rather than directly from peer-to-peer.

A special server netcard that could be programmed to decrypt, descramble, parse packets, and DMA them into a system RAM buffer might be useful...
- The trade-off between price and quality does not exist in Japan. Rather, the idea that high quality brings on cost reduction is widely accepted.-- Tajima & Matsubara
Henry: Unfortunately some causes of lag can''t be fixed by just adding more "standard hardware components". Getting information to the processor or processors in a format they can use immediately cuts down lag. Custom routers and protocol accelerators do exactly this.

Magmai: Peer-to-peer can never be the solution to this type of problem because it doesn''t scale. Peer-to peer voice chat for example creates an exponential explosion of network traffic. Client-server traffic grows linearly. In the architecture I have modeled you get several advantages (like packet filtering and duplication) in addition to the prime advantage to having a single logical expansion node. If you want to increase the quality, for example, you add bandwidth to one logical node and its associated processing elements. You can also easily adjust quality depending on load. To increase quality in a peer-to-peer network you have as many expansion nodes as clients. In hardware design we always look to minimize the number of expansion nodes. It is almost a definition of the quality of a design.

Another problem with the peer-to-peer model is compression. Each node in a peer-to-peer network must decompress the audio from every other node before it can be mixed and any other functions performed (like filtering a sound behind a wall) before the user can hear it. In a client-server model each client only has to encode and decode a single stream. Hardware compression and decompression can be added to the server. You can’t force each client to add this hardware.

You also have the problem of having to send information to the client you may not want to send just so the audio can be modeled correctly. Cheaters always seem to find some way to use this information.

As for “A special server netcard that could be programmed to decrypt, descramble, parse packets, and DMA them into a system RAM buffer might be useful...” Been there, done that.
quote:
Magmai: Peer-to-peer can never be the solution to this type of problem because it doesn't scale. Peer-to peer voice chat for example creates an exponential explosion of network traffic. Client-server traffic grows linearly.

How so? It'd take more aggregate bandwidth for each client to send to the server first, and then re-broadcast it to each client. It'd take more client bandwidth for it to send it to all the recipients, the same amount to receive. In both cases the client needs to compress/decompress the same amount of audio. All the server would do is relay it. The only advantage to this is that it could work between two firewall’ed clients, where-as peer-to-peer could only work with one firewall’ed client.

By sending all the voice to the server, the server needs to have equal or greater bandwidth to the aggregate of the clients - that's a complete lack of scalability. I don’t think even the EQ servers have that much. Say 250,000*384kbps + 50,000*5kbps = 96250000kbps = 91 Gbps. And that would have to be dedicated to voice chat in order to _equal the bandwidth capabilities of the clients, which is the primary limitation in voice-chat quality.


Edited by - Magmai Kai Holmlor on October 14, 2001 1:28:51 AM
- The trade-off between price and quality does not exist in Japan. Rather, the idea that high quality brings on cost reduction is widely accepted.-- Tajima & Matsubara
There is no need to send all the data to every client. Each client has one stream to the server and one from the server. Let the server figure out what the client needs to hear, mix it and send it. Client decompresses, adds prerecorded sounds and plays it.

MaxClientBandwidth = 2*n
MaxServerBandwidth = 2*m*n

where
n = bits per second
m = number of clients

using your 5k number and 100 clients:
MaxClientBandwidth = 2*5k = 10k
MaxServerBandwidth = 2*5k*100 = ~1M

Server workload is dependant on the quality of the simulation. This simulation could also be accelerated by custom hardware. There are lots of neat optimizations for the simulation also.

No idea where you got you numbers from. My understanding is that MMORPG worlds are broken up over many servers. Each server handles one or more ''zones''. You would have to do the same division of labor for audio. In fact I would use the existing load balancing scheme for this division. I would add servers just for audio processing. That way using the custom protocols accelerators packet duplication feature you just poach the information you already have.
Ahhhhhhh, now I understand, that would be cool, but would take a ton of processing power, hence the need for dedicated hardware.

The numbers I fudged there are the total number of EQ players, 384kbps for the cable/dsl ones, 5kbps for the modem players. That is a bad estimate though because not all of them play at the same time. It''s more like 20worlds*2000players/world*384kbps/player = 15360000kbps = 14Gbps

I was thinking along the lines of group or guild voice chat. With your solution you could actually send voice to clients based upon local, even attenuate the volume for distance, direction, obstructions, etc... Even send modem players a low bitrate and send cable/dsl players a higher one.

Dropped packets would be a nightmare... transmission times alone can cause a lot of lag, maybe a RAID type scheme to send the data redundantly using accelerated netcards as well.

The problem with all this, is that normal human voices erode the ability to "suspend your disbelief". In order for game audio to believable it almost needs to be scripted and recorded professionally (more-or-less). I think it''s an awesome idea, but it might to hard to sell it to certain audiences.

Now, this could come in really handy for GameSpy and other large lobby server environments (most already have some sort of voice chat though).
- The trade-off between price and quality does not exist in Japan. Rather, the idea that high quality brings on cost reduction is widely accepted.-- Tajima & Matsubara
I don''t know how it would be possible (given current-day hardware capabilities), but if you had a dedicated server for mixing sound and relaying to clients, then I think you would have a winner. If the sound could reach the server at an admirable rate, then the server could mix sound from many sources at once, and send *one* mixed voice stream to clients, thus reducing network load.

The main problem with this is relying on clients to have good enough bandwidth to support the option. Otherwise our dear modem users will have crackle-and-pop voice emission, or no voice support at all.

I think this is a little bit down the road in realtime voice technology though...



MatrixCubed
http://MatrixCubed.org






This topic is closed to new replies.

Advertisement