Real-time MMORPG Combat

Started by
10 comments, last by catch 16 years, 9 months ago
I'm not a programmer so I'll keep this somewhat generic. I'm currently working on a business plan and rough game design for a gladiatorial MMO, and concerning combat, my programmer told me its not really feasible to do real-time combat (figure matches of not more than 12 to 18 participants, though usually smaller and duels). I see games like Conan and Rise of Rome doing real-time, I'm wondering if the resources needed to develop a networking component for it are extremely prohibitive and large. I was thinking specifically about a Mount and Blade like combat system, which is similar to Oblivion's (except much much better). I'm just looking for some second opinions about whether its possible to do it, figuring one full-time network programmer working on it.
-------------www.robg3d.com
Advertisement
now im no expert but when you say stuff like "Real-time MMO" and "similar to Oblivion except better" that sound like it would automatically be unfeasible unless you have a damn good team that has a proven track record of multi player rpgs and the funding to spend several years before you can even show a working demo

EDIT:
so feasibility is a relative thing.....

-in addition to what you listed what requirements does your game have?
-how big is your team?
-what projects has your team successfully completed?
-how long of a development cycle are you looking at?
Quote:Original post by Kaze
now im no expert but when you say stuff like "Real-time MMO" and "similar to Oblivion except better" that sound like it would automatically be unfeasible unless you have a damn good team that has a proven track record of multi player rpgs and the funding to spend several years before you can even show a working demo

EDIT:
so feasibility is a relative thing.....

-in addition to what you listed what requirements does your game have?
-how big is your team?
-what projects has your team successfully completed?
-how long of a development cycle are you looking at?


Please forego the feasibility of the game and gameplay questions. I'm not actually working on this project right now. I just graduated, I wanted to take a couple months off, and I knew this programmer who was working on a tech demo and intended to pitch to publishers, so I did some art and helped write the business plan and some general game design info. In the meantime I'm waiting to finish hearing back from the companies I applied to.

I'm not interested or worried about the actual game portion of my question, it was only intended considering networking issues. Figure there will be one full time network programmer, and 9 months to the first beta and about 14 until the combat implementation would need to be complete.

Please, I know how tempting it is to discuss the stuff MMO noobs don't want to discuss (I spend enough time around the Help Wanted myself), but its not what I'm asking about.
-------------www.robg3d.com
MMO and real time interaction simply don't mix well. Most MMO's do a good job of hiding this fact with creative interfaces (i.e. the reason so many have "click on enemy to attack"), while other games (like RTS games) don't even need to go this far, because there isn't really any time sensitive stuff going on, it just looks like there is on screen.

This is because networks have lag. Even with a high speed connection a user often has a ping of 100ms or more, and that doesn't include the round trip to other players (you swing your sword at someone, but at the same time they are moving to right - you end up seeing that movement 200ms later, after your sword swing is complete, because it took 100ms to reach the server, and another 100ms to be relayed to you).

Now you've probably played a lot of games like fps's where you can get twitch speed real time interaction with a limited number of players in one "area". The problem is non-MMO multiplayer games that need fast timing cheat: they use extensive client side prediction, and more importantly, the clients are semi-authoritarian. The result is the appearance of real time interaction, but it makes it a foregone conclusion that it will be possible to cheat. With a non-persistent game this isn't a huge problem. Cheat protection that is constantly patched can be used, server admins can kick players suspected of cheating from their server, and ultimately there is no long term consequences of someone cheating in a match.

With an MMO that's not the case. Instead of a cheater ruining one match, they can mess up the entire persistent game world. And unlike many games, a player may be able to cheat off in the wilderness where no human player will see them, and then bring the spoils of that back to the city (where it destroys the game's economy).

Basically MMO's can't tolerate cheating the way normal multiplayer games can. They need to run on an explicit thin-client model, where the server decides how player actions should actually be interpretted. To make this not seem laggy, the game is intentionally designed to hide it.
There are MMOs that have semi-real-time components. Try out the EverQuest 2 demo, with their timed specials. Buy a copy of GuildWars and go play it for a while. That will give you a flavor of what CAN be done in real-time. In fact, GuildWars sounds like it'd be a pretty good starting-off point for the kind of game you describe.

You can't do real-time as in a fighting game (DOA, Street Fighter, etc) over the Internet, because latencies won't allow you to see the move and block soon enough -- or the move will be too slow and uninteresting to the attacker. You will have to very carefully design and tune your gameplay and specific semi-real-time mechanics to allow for varying latency, while still being cheat resistant. It's all in the game design!
enum Bool { True, False, FileNotFound };
Are you thinking of a game like Fury?
Quote:figuring one full-time network programmer working on it.

Ask your one programmer. If he says he can, then he can. If he says he can´t, he can´t. My advice for an MMORPG: get more programmers.

Quote:You can't do real-time as in a fighting game (DOA, Street Fighter, etc) over the Internet, because latencies won't allow you to see the move and block soon enough -- or the move will be too slow and uninteresting to the attacker. You will have to very carefully design and tune your gameplay and specific semi-real-time mechanics to allow for varying latency, while still being cheat resistant. It's all in the game design!

That´s the idea. Seconded!

-Stenny
What do I expect? A young man's quest to defeat an evil sorceror while discovering the truth of his origins. A plucky youngster attended by her brutish guardian. A powerful artifact which has been broken into a small number of artifactlets distributed around the world.What do I want? Fewer damn cliches. - Sneftel
I appreciate the responses from everyone.

Michalson: Yes that explains the answer I got quite well, as well as the big question I had about the answer... thank you for that.

hplus: Yeah I had that sort of figured... I've designed a combat system before that, I guess, was sort of like KOTOR's, then it turned into real-time though (because for what I was doing, it was just easier to do based on collision detection instead of pre-calculating things with targeting and whatnot). So I know there are all sorts of ways to "cheat" realtime, but for the combat I was interested specifically (Mount and Blade) this isn't really feasible. I wanted to get the question out of the way, regardless... I don't intend to do any thorough design until/if the core team falls into place so I would have gotten an answer anyway, but it didn't hurt to ask now.

blackveggie: no idea, haven't really looked at it... but I'll take a look in more detail to see how they do it.

stenny: Well I'm only with one programmer right now who isn't a networking expert, so I figured I'd get a second opinion. Yeah, get more programmers is nice, but people cost money and at an independent level, there's nothing more efficient for th
-------------www.robg3d.com
Quote:Original post by hplus0603
There are MMOs that have semi-real-time components. Try out the EverQuest 2 demo, with their timed specials. Buy a copy of GuildWars and go play it for a while. That will give you a flavor of what CAN be done in real-time. In fact, GuildWars sounds like it'd be a pretty good starting-off point for the kind of game you describe.

You can't do real-time as in a fighting game (DOA, Street Fighter, etc) over the Internet, because latencies won't allow you to see the move and block soon enough -- or the move will be too slow and uninteresting to the attacker. You will have to very carefully design and tune your gameplay and specific semi-real-time mechanics to allow for varying latency, while still being cheat resistant. It's all in the game design!


Guildwars isn't "real-time", it's more or less the same implimentation as the other click based MMO systems (show some real time animation on the client side while actually doing it as an almost turn based system on the server side), it just has really nice translation of both user input (the optional keyboard movement controls being translated into similar data as clicks) and the incoming movement information from the server. Play it with a laggy connection or with two computers side by side and you can see the seams of it's method as it where.

However it does show that it is not impossible to simulate something close to real time interaction. You just need to tweak your gameplay design to remove twitch controls (like having hits based on actual player reaction time and aiming) while at the same time adding interpolating data recieved on the client side to hide jerkyness. Overall keep this in mind: The game does not have to look the same on all computers in the same area, only the key events (damage from hits, spell effects, deaths) need to happen correctly and in order. This benefits both the server, which can focus on handling just those key events instead of small details like individual steps (there is a reason a single MMO server can handle 1000+ players, while a dedicated FPS server usually tops out at 100), and the client, which is free to basically make up the animation and movement of objects in order to make the client side experience seem as smooth and real time as possible.
I think we're saying the same thing.
enum Bool { True, False, FileNotFound };

This topic is closed to new replies.

Advertisement