Sign in to follow this  
siamii

Is this Starcraft style MMORTS possible?

Recommended Posts

You start with a typical Starcraft match with the following differences:

instead of 8 players per match, you have 1000+ players per match
instead of 1 player per base, there can be 50+ players per base with team melee (shared unit and resource control)
instead of a match lasting 20-40mins, a match lasts many days or months.
instead of a normal sized map, you have a 1000x larger giant map.
instead of having all the players join in the beginning and leave in the end, any player can leave and join any time they want during the match, (much like in an online FPS game)
instead of resource locations disappearing when mined out, resource locations replenish after a while if no player is nearby.

A new player can spawn his own base or he might join an existing base with team melee. If a base has no players online at the moment, the AI controls it.

What technology or game engine would be most suitable for this game? Edited by siamii

Share this post


Link to post
Share on other sites
The big problem with a MMORTS is that you cannot use lockstep networking like traditional RTS games do (as lockstep requires the game to pause if a player is lagging and thus it will make the game unplayable for large playercounts) so your design must take this into account.

AFAIK there is no current gameengine that actually can handle a starcraft style RTS with thousands of players (due to the lockstep problem) so your best bet is to use a fairly standard game engine(any engine that lets you rewrite the network code will work) for the client and then write your own backend.

You could also look at for example HeroEngine, it might be able to get the job done if you keep the unitcount per player low. (but then it wouldn't really be alot like starcraft) Edited by SimonForsman

Share this post


Link to post
Share on other sites
If this is specifically about what kind of technology to use, it might be better suited in a different forum than Game Design. Maybe For Beginners?

On the topic of game design, I can see problems with sharing all of the resources and such. It would be easy for players to grief by wasting resources on useless buildings, ordering workers to stop working constantly, and so on. Also, typical players would most likely have a lot of trouble properly communicating in a group of "50+ players per base", and there would probably be a lot of disagreements on which buildings to build and units to train.

For the technology, I can see having thousands of players in a single match as a huge burden on servers. If any player can start a match whenever they please and each match has the potential of lasting days, then eventually there would be a huge amount of matches, each one with buildings and units and so on.

Also, a huge map, "1000x larger" than a typical map in an RTS, would probably call for terribly long loading times.
To combat this, you could consider attempting something more along the lines of an MMORPG system for the map. Instead of having one huge area that you can travel through freely with your units and such, you could split it into many different zones that are individually loaded, like in an instance-based MMORPG such as Guild Wars. This way, rather than loading a huge map when the player joins, they can join and then choose a specific part of the map that they want to go to and load it.

This is just one suggestion out of many possibilities for making a large map work. My point is, just putting the huge map mesh in the game will probably be a bad way of going about it, since the player will have to load the entire thing at once. It's like asking a player to wait while they load the entire world in World of Warcraft before they can start playing.

Share this post


Link to post
Share on other sites
Anything is possible. The question of what engine to use is a technology question, not a game design question, so I'm moving this to For Beginners, where "what engine" is a frequent topic of discussion.

Share this post


Link to post
Share on other sites
The zone type loading would work great. As for the disagreement between players about what to build, the bases or in other words, factions, could be either private or open. If open, players that are abusive could be kicked out by majority voting. Other than that, it's really up to the faction to come up with a viable strategy, so if they cannot agree, they will lose the game to a faction that works well as a team [img]http://public.gamedev.net//public/style_emoticons/default/tongue.png[/img]. I mean team work is essential in many games nowadays.

Perhaps the maximum concurrent online players per faction could be cut down to 8 so that communication works better within the faction. Also, players would not start a match any time they want, but rather join or leave a single persistent match, much like it is done in WoW where you join the Realm or leave the Realm any time you please. A Realm = a Match. This persistent match lasts for many months. Each time you connect, you can join to a different open faction or create a new faction of your own in which case your starting base spawns somewhere on the map, similar to the way in an FPS game you can spawn at many places or join the opposing team if you want to. Alliances between factions would be also possible

As for the lockstep problem, how does WoW solve this in PvP? Edited by siamii

Share this post


Link to post
Share on other sites
[quote name='siamii' timestamp='1343523859' post='4964163']
As for the lockstep problem, how does WoW solve this in PvP?
[/quote]

WoW is not an RTS so it doesn't use lockstep, Lockstep is primarily used when you have hundreds or even thousands of units per player as it removes the need to send state updates for each unit all the time and a 4 player lockstep RTS with 200 units per player will use pretty much the same amount of bandwidth as one with 200.000 units per player. (the only thing that affects bandwidth usage with a lockstep model is the number of players you have and possibly their APM which is why pretty much all RTS games use such a model).

in WoW each player controls a single character and that character only needs to be sent state updates for things that happen close to it (it doesn't need to know about players on the other side of the map. WoW also cheats quite madly with its PvP and PvE by creating battleground and raid instances which really aren't MMO scale (This design choice avoids one of the harder technical challenges of MMO scale networking (Note the abscence of truly large scale world pvp or pve events in world of warcraft) and makes hosting alot cheaper, (4000 players spread across 100x 40 player instances will use significantly less bandwidth than 4000 players spread across 4x 1000 player instances), it also allows them to do more action heavy combat without lag becoming too much of an issue.

For an MMO "RTS" i would probably go squad based so that each player controls a squad of ~5 units with a JA2 style grid map, the player would only be able to control units in one zone at the time and if he splits the squad (by retreating out of the zone) the AI would take control of the units left behind and try to get them to re-join the player. (This would cut down the amount of state updates the server has to send to each player and even in the worst case where a player has his 5 units spread out within a zone it would be managable bandwidth wise), load balancing then gets easier aswell (The only hard part would be migrating zones at runtime without the players suffering too much but its not an extremely hard problem to solve)

Share this post


Link to post
Share on other sites
Regarding the communication of huge amounts of players within the battle: I think at the highest level it should be grafical. IMHO purpose of communication on the battlefield is to act as a one body and to keep informed about the progress.

So there should something like an operational tactical plans segregated in the time steps. Something like a chess board with planed actions for the units. Player should be able to read the position of the units and planned action to it, additinal supports (units supply, special forces, nukes, resources). Based on the rank the player would have visibility of it (ie. special forces only higher ranks), and also amout of time steps forwarding would depend on that (lower rank would feel more to be draged by the situation). I think it is needed due to spying by swaping the faction etc.

Funny thing should be that each player should be able to contribute on the operational plan. Again based on the rank or assigned role the player would have power to set up the action. Proposal on action would not be limited by rank. Lower rank players would have rather power for microing the planned actions (something like second layer under action tiles), or set the actions for the weaker units. Get back to the communication - by right cliking on the set or planned action you can be connected to its "designer" on intercomm.

Just a rough sketch ;-)

Share this post


Link to post
Share on other sites
[quote]instead of a match lasting 20-40mins, a match lasts many days or months.[/quote]I don't get that part. If it is to be like Starcraft how can you expect someone to sit in front of computer a whole month without sleep or taking break to go to the toliet (going to a toilet during Starcraft match is a veeery bad idea) :D

Or, if you meant something that can be joined anytime for a while and then you can logout and then can go back, that's a typical MMORPG guild wars system.

In short, do you want a big starcraft or MMORPG but focused more on tactical battle?

Share this post


Link to post
Share on other sites
[quote name='siamii' timestamp='1343523859' post='4964163']
In short, do you want a big starcraft or MMORPG but focused more on tactical battle?
[/quote]

@Acharis You control units and collect resources just like in starcraft or AoE. The match is persistent just like WoW. Each time you connect, you can choose to create a new base, or join an existing base in team melee mode. I call a base a faction. The point is there is always a few people online for each faction, so the units and resources are managed continuously by some person. So it's not like you play it for one month continuously, although you can lol. You know how in an FPS server there is always some people online, who are the RED team? Well the RED team never has 0 players, unless the server has no players which is very rare if it is a popular server. Think of the RED team as a faction. If there's no players online for a faction, the AI takes over in easy mode until someone joins again.

@Osidlus Perhaps, there could some penalty imposed for switching between factions too fast, aka spying. For example, a time limit. The tactical map would be a great idea, something along the line Company of Heroes has? What do you mean connected to its designer via intercomm? Do you mean voice chat? Also by time steps do you mean turn based RTS where there is a time step every 30 sec or so, and this would be visible to the rank of the player? Also how would players gain rank?

@SimonForsman well you could control only a little squad but then you lose all the other aspect of RTS games, such as resource collection, base planning, macro, which is great fun. Also people could choose do whatever they feel like, so if they want to focus on managing expansions while some other player focuses on harassment, that's a big plus. Managing battles is actually only one part of RTS. Another player could focus on unit production, while another player focuses on micro? I'll look into the way WoW manages player instances as you described. Ideally a player should only know about what is happening to his faction and what is visible on his map that is not covered by the fog of war.

The point is this should still be a fast paced RTS. Bases can be quite extensive with 100+ of expansions and great income, so if one player decides to troll, that still wouldn't have that big of an effect. They could be banned as well. Another thought about unit upgrades, the cost of upgrades could increase exponential and the benefit only logarithmic, so that factions that have been in the game for longer do not have a huge advantage over new factions, but still some. Edited by siamii

Share this post


Link to post
Share on other sites
[quote name='siamii' timestamp='1343585888' post='4964285']
@SimonForsman well you could control only a little squad but then you lose all the other aspect of RTS games, such as resource collection, base planning, macro, which is great fun. Also people could choose do whatever they feel like, so if they want to focus on managing expansions while some other player focuses on harassment, that's a big plus. Managing battles is actually only one part of RTS. Another player could focus on unit production, while another player focuses on micro? I'll look into the way WoW manages player instances as you described. Ideally a player should only know about what is happening to his faction and what is visible on his map that is not covered by the fog of war.
[/quote]

You need to keep the amount a player can possibly know about very limited otherwise it will become impossible to host the gameservers (And possibly impossible to play for people who don't have fibre connections), if a player can control a distributed army he might potentially have several thousand units in view and you'll have to send state updates for all of them several times per second, (It will add up to insane amounts of bandwidth)

Share this post


Link to post
Share on other sites
i've played an mmorts before, it was an interesting approach. They had a huge map, and basically it was chunks of floating asteroids to build bases/gather resources. But it was pretty much boring for the most part, they made build times take hours to do anything, another thing is that an MMORPG is persistant, in that your character will never really disappear. with an MMORTS, you know that in a few days, you'll have to start again. As well most rts matchs last a few hours at most, and it's more fun imo to play in a single session, then to have to remember to login and make sure your guys are actually doing things.

I personally just can't see MMORTS's taking off the same way the rpg variants do, you need to give players something for all their work. Edited by slicer4ever

Share this post


Link to post
Share on other sites
[quote name='siamii' timestamp='1343585888' post='4964285']
@Osidlus Perhaps, there could some penalty imposed for switching between factions too fast, aka spying. For example, a time limit. The tactical map would be a great idea, something along the line Company of Heroes has? What do you mean connected to its designer via intercomm? Do you mean voice chat? Also by time steps do you mean turn based RTS where there is a time step every 30 sec or so, and this would be visible to the rank of the player? Also how would players gain rank?

[/quote]

I think lower ranks does not need to know and plan many steps forward. These players might have enough work with microing each action scheduled and carrying their own ..s. These actions on the strategical map migh also contain voice messages- for example for deceiving operation it would be needed to explain that we are not so stupid to do that. Yes, intercomm as a voice chat, but options are many.

I did not meant turn based strategy, but for planing it would be helpfull to have actions broke down into time frames in order to imagine all the parallel movement. And you dont have to worry about detailed action matching within each timeframe since there should be interactions between units actions set. For example units can be set to attack with some delay after chosen unit, or simultaneously or with some "IF" condition...

Ranking I think thats what the designer loves find out. My proposal is like three pillar system. 1. missions completed (sabotages, rafineries built etc.) 2. elections (get the people on your side) 3. temporary rise by the moneys spent on the given army

Share this post


Link to post
Share on other sites
well, what if you do something like tribal wars, ikarian, travian and etc? make a world, let the player build their city and join factions, but at the rts style. each player has his own base and supplies, but also can have a faction. members of the same faction would have a penalty for attacking each other (possibly set by the faction leader) and would be able to exchange resources between members.

the player would schedule actions for their units to take when he's offline, and when he's online, he can control each squad action in a more finer way.

as for the squad, the player could be able to group squads creating a huge squad. when grouped, the squads are treated like a huge one, so it's only 1 state update for possibly 100,000 units. the player can then extract a squad from the huge one, with the specific units he select.

Share this post


Link to post
Share on other sites
Pathfinding with A* algorithm will freeze the game with huge map and many units. I know from first-hand experience.

Don't ask for what engine to use. In the end you know you'll write it yourself because it takes too long to learn somebody else's work. Edited by polyfrag

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this