3 ms·
I think “real-time” does not mean what you think it means. I’ve read a lot of things like “TCP is not suitable for real-time online games”, in this thread, whe
by louiz 13y ago
I think “real-time” does not mean what you think it means.
I’ve read a lot of things like “TCP is not suitable for real-time online games”, in this thread, where the author of this sentence excludes RTS, MMORPG, etc. As if these were not real-time games.
According to http://en.wikipedia.org/wiki/Real-time_game#Real-time http://en.wikipedia.org/wiki/Real-time_game#Real-time (and also the fact the RTS means real-time strategy), any game that is not turn based is a real-time game.
It’s not just you, but I had to choose one of the posts in this thread for my response. Saying “TCP is a wonderful protocol but absolutely useless for multi player gaming” is just plain wrong. A lot of online, real-time games are using TCP. Saying that TCP is useless for multi player gaming is really misleading and I’m tired of reading this. There are a lot of valid reason to choose TCP over UDP (for example the fact that your game doesn’t require any round-trip to be shorter than, say, 500ms, because that’s how the engine works). Of course, TCP would not really be suitable for an FPS like quake, but that’s only one case of real-time game, there are a lot of different kind of games, for which TCP is the best choice.
- exDM69 13y ago> I think “real-time” does not mean what you think it means. There are various definitions of "real-time" and we should not make this an argument about semantics. I meant real-time in the sense of "a soft real time software system" or the "Quake" sense of the word. http://en.wikipedia.org/wiki/Real-time_computing#Criteria_for_real-time_computing http://en.wikipedia.org/wiki/Real-time_computing#Criteria_fo... In other words, "real-time" in the sense that missing deadlines will mean that the quality of service is degraded. Deadlines here mean delivering the packets in time for the next simulation timestep. Yes, TCP can be successfully used in games classified as "real time" as opposed to turn based, such as RTS games or MMORPGs. But when analyzing it them from a software standpoint, they might be just very fast turn based games. Here's another interesting piece about networking multiplayer games, this time in an RTS game (Age of Empires): http://www.gamasutra.com/view/feature/3094/1500_archers_on_a_288_network_.php http://www.gamasutra.com/view/feature/3094/1500_archers_on_a... The solution they used was essentially a 15 frames per second lock step loop. It looks like real time to the player but from a software standpoint it really isn't. You and I agree on everything except the definition of "real-time". There are applications where TCP works well and applications where UDP is better. I'm sorry if my words were a bit overgeneralized and it annoys you.
- mcguire 13y agoCould you provide an example of a real-time game?
- exDM69 13y agoFor some definition of real-time, a racing simulator is real-time because it will produce incorrect results (with catastrophic consequences) if there is too much latency. An RTS like Age of Empires is not because it will only lag annoyingly but still produce correct results.
- hnisnotreddit 13y agoHere's two: Kaillera: https://en.wikipedia.org/wiki/Kaillera https://en.wikipedia.org/wiki/Kaillera GGPO: https://en.wikipedia.org/wiki/GGPO https://en.wikipedia.org/wiki/GGPO
- louiz 13y ago> In other words, "real-time" in the sense that missing deadlines will mean that the quality of service is degraded. Deadlines here mean delivering the packets in time for the next simulation timestep. Yeah, that’s what happens in most RTS, if the feedback for the action you sent doesn’t come back before Xms, then the game pauses and waits (for example Starcraft 2 does that). And I know the lock step mechanism used in some RTS, I’m implementing one myself. But I don’t see how it makes it non-real-time. If quake or teeworlds associates a network packet (containing a player-position) with a frame, does that make it really-fast turn-based game (with turns being frames, or ticks, or what you want to call them)? That being said, > You and I agree on everything except the definition of "real-time". No, the “real-time” word is really not that important to me, I mostly disagree with you saying “TCP is […] useless for multi player gaming.” RTS, or MMORPG, or turn-based tactical RPG, or card games are not “some exceptions”. They probably even represent a huge proportion of the multiplayer games out there. I now understand that you were talking about “fast-paced action games like quake or the likes”, but that really didn’t sound like it. > I'm sorry if my words were a bit overgeneralized and it annoys you. This is not just you, I’ve seen a lot of these “— TCP sucks for all online game purposes! — but what about all these cases were it’s fine? — Oh, I was obviously talking about those other cases” But that’s ok, I’ve made my point public instead of grumbling in my head, now I’m fine and we can move on. :)