I want to make a mix between RTS and FPS. However i cant figure out how to do the network programming.
I would need client side prediction and lag compensation for the FPS thingy.
And for the RTS thing i would need the technique which is in the "1500 Archers on a 28.8" article.
What i can´t figure out is how should i merge these 2 techniques? They are so much different from each other.
And I need at least a technique which can handle 300 units and 10 players in the network. If i just transmit the position and do inteprolation i would need 300(unit count) x 20(needed for world matrix) x 15(times per sec) = 90 kb/s!! thats too much
Unfortunatly there is no easy way to solve this, lockstep isn't suitable for actiongames or games with alot of players (as it has to pause if a player lags), remember though that its only the server than needs 90kb/s upload (allthough it will be more in the end, i'd guess closer to 200kb/s , clients won't have to send as much though and if the server sends a total of 200kb/s split between 10 players each player only has to recieve ~20kb/s. (You probably have to send updates for FPS controlled units/players a bit more frequently as they are less predictable)
This should be perfectly playable as long as the server has a decent connection and you don't feel the need to support players on dialup. (0.5Mbps DSL should be capable of recieving around 30-40kilobytes per second even on a bad day and these days few people have worse connections that that), you could also cut the playercount down to 8 and total units to 240 (still 30 units per player) which gives you a fairly big bandwidth reduction without, hopefully changing the gameplay too much. Maybe even let the server hosts choose how many players to support as broadband quality varies greatly between countries (in areas where 100/100 is common you could probably go as high as 32 players).
You can also avoid sending updates for units a player can't see to save a bit of bandwidth in the average case, It won't help for the worst case but it should improve performance in the average case. (Players can probably tolerate a little bit of lag in the rare event where all players decide to smash all their units together at the same time and place)
Edited by SimonForsman, 31 July 2012 - 08:43 AM.
I don't suffer from insanity, I'm enjoying every minute of it. The voices in my head may not be real, but they have some good ideas!
If there is any interaction from the FPS to the RTS, then the FPS must use (or be translated to) lockstep, or you can't use lockstep.
FPS-es can work in "lockstep" if you speculate ahead on the client that sends the commands, and accept time-warps backward (corrections "in the past") from the server when you "guess wrong" -- typically as a result of actions from other players that lead to collisions, damage, etc, in the "past" for the local player.