Bridge simulating Network Lag, for developing network code for games
I'm a hobbiest game developer. I've got a problem where I'm searching for a solution for some time now. I'ld like to simulate the lag created by the internet locally between (at least) two of my pcs. What I have in mind is something I could plug in between the network adapters of the pcs and that's it.
The effects I'ld like to have simulated are:
- delayed transfer of packets. The time delta min and max should be configurable so that the actually time a packet is hold back is like random(mindelta,maxdelta)
- packet reordering (what basically happens automatically if packets get delayed by different amounts of time)
- packet loss: a probability of a packet to get lost should be configurable
- is there something else that happens on the internet and might be good to test locally?
I'ld like to affect icmp, udp and tcp by that thing in the middle. As well, the parameters should be configurable for both directions seperatly. Maybe a plugin for linux's network bridging capabilites is the solution? Any ideas/hints how to do this? Maybe there is already some software that does this and I didn't find it?
Because this targets for game development and the networking footprint of games is generally quite low, there should be a lot of free cpu power to accomplish this task.
The perfect solution would also allow to have more than 2 PCs. Also a fast way to change the parameters without disconnecting the bridge would be cool. E.g. a small textmode frontend that can be accessed via telnet or ssh.
I hope you can help me. I guess such a thing will be helpful for all time critical network related developments.