Twitter  Facebook  Google+  YouTube  E-Mail  RSS
The One Man MMO Project
The story of a lone developer's quest to build an online world :: MMO programming, design, and industry commentary
I Had No Idea RTS Multiplayer is So Lame
By Robert Basler on 2017-06-06 01:53:41
Homepage: onemanmmo.com email:one at onemanmmo dot com

I've been working on Nemesis Mode, Miranda's new multiplayer matchmaking system for the next Early Access monthly update. (Learn more about Early Access and support Miranda's development here.) I had a bunch of ideas for the kind of multiplayer I wanted to have in Miranda, but I hadn't played much RTS multiplayer for quite a while so to figure out what modes and features I might have missed, I looked at all the RTS games that people rave about. And some others. I got a couple good ideas about features, but I was pretty shocked at what I discovered:

  • Command & Conquer 3: Deathmatch
  • Starcraft II: Deathmatch
  • Supreme Commander 2: Deathmatch
  • Grey Goo: Deathmatch
  • Act of Agression: Deathmatch.
  • Homeworld Deserts of Kharak: Deathmatch, Capture the Flag
  • Ashes of the Singularity: Capture the Flag
  • Company of Heroes 2: Deathmatch, Capture the Flag

Deathmatch and Capture the Flag. That's it. Wait, what? Are you kidding me?

Nemesis Mode

Nemesis Mode is planned to support from two to eight players in a match. Matches will play out in the regular world with other players around. Players will enable Nemesis Mode with a push of a button on Miranda's HUD and that will highlight them on the base layout map as seeking a match. Players will need to be within a certain range of each other to match. Once I have support for friends lists, the player will be able to specify games with only friends, or team only with friends on Miranda's settings screen. The settings screen will also allow players to opt out of specific game modes and set a time limit if they have a limited time to play. If players get disconnected due to a networking problem they will be able to rejoin their multiplayer game in-progress.

hud_nemesis.png
[Nemesis Mode icon.]

These are some of the multiplayer modes I'm working on for The Imperial Realm::Miranda's Nemesis Mode. This is a working list and some are variations on a theme, so don't get too attached! Not all of them may end up in the game, certainly only a small subset at first and others may be added. There are a lot of details I'm leaving out.

  • Annihilation - Two to eight teams fight to the death. Player loses when all buildings are lost. Player bases are marked on the map.
  • Assassination - Two to eight teams fight. Player loses when their construction yard is lost. Player bases are marked on the map.
  • Conflict - Two to eight teams fight to capture a map zone marked on the map.
  • Slaughter - Two to eight teams fight to gain the most kills in the allotted time.
  • Greed - Two to eight teams work to be first to earn a specified amount of money. Vendors are locked. Crates only produce money. Sabotage is encouraged.
  • Steal the Plans - One team has to reach a specific building to get the plans and then return to their base before the time limit expires while the other team defends. Building is marked on the map.
  • Capture the Flag - Two teams compete to be first to capture the opponent's flag.
  • Capture Multiple Points - Two to eight teams compete to capture flags, at the end of the time limit the team with the most flag ownership time wins.
  • Attack and Defend - Two teams, one defends a specific building, other tries to destroy it before the time limit.
  • Fast Cars & Superweapons - Players race to a specific location with a loot crate. This mode supports players who are very far apart
  • Siege - One to three players have the goal of utterly destroying the fourth before the time limit. Player 4 gets some goodies and some setup time to help defend.
  • Bankrupt - Two players start with a set bank balance. Players send in spies, destroy silos, refineries and harvesters. If a player sells a building or loses the ability to build new units, they lose.
  • Asynchronous Warfare - This takes a mixmaster to all the modes so that each player has their own goal to reach while they simultaneously try to figure out their opponents' goals and thwart them.

Winners

Winners will be rewarded with XP, loot, and a win in their stats.

Losers

Losers will gain XP, Loot and a loss point which is cashed in when you win for bonus loot. They also get a loss in their stats.

Quitters

I'm adopting a system for quitters like League of Legends Leaver Buster. Players who disconnect and don't come back before the end of a match, or who go AFK for more than 5 minutes will have the match counted as a loss (even if their team wins) and won't gain XP. They will also be penalized:

  • First offense: Nothing
  • Second offense: Warning
  • Third offense: Matchmaking will be delayed 6 minutes.
  • Fourth offense: Matchmaking will be delayed 10 minutes.
  • Fifth offense: Matchmaking will be delayed 20 minutes.

Players will need to complete five Nemesis Mode games without a quit to reset the matchmaking delay.

Work So Far

So after reading all that you're probably thinking "wow, that's a lot of stuff." Yes it really is. I wanted to do matchmaking in the first monthly Early Access update because I think it is super important to help players interact with each other. But after I spent two weeks of my month fixing bugs in the Early Access release to make it stable, I suspected it would be more than I could do in the remaining time, and I was right. But I did it anyway. I had planned the next update for June 13th, and I'm working hard, but I'm not sure quite yet when Nemesis Mode will be ready for players. Sorry about that.

I've been working on the server side, creating the matchmaker and a new service to manage the individual game sessions and integrating those into the game simulation, build pipeline and tools. I still have to add support for the new game modes to the client and server, add some UI screens to start and end matches, add the objectives list to the HUD, add new team and match channels to the chat, and make some additions to the map. There are a few other things I'm still considering and some of the things described here may still change. Whew.

I've also been teaching myself computational geometry! Ick. One of the tricky problems with matchmaking is figuring out which players to group. You can't just put one player at the centre of the circle and include everyone in a given radius. The circle around the players in the match has to be of a specific size but the players can be anywhere within it and you want as many players as you can get. First I thought I needed the Smallest Enclosing Circle algorithm, but after some thought, I realized I actually need an algorithm for finding the circle which encloses the maximum number of points. And I need a weighting system so friends are more valuable. The algorithms for that that are fast are all super-mathy with no codey type examples, so at this point I'm planning to use a moderately mathy O(n^3) algorithm I figured out while I was reading my daughter Terry Brooks Witch Wraith tonight.

Questions? Comments? Helpful suggestions?

By Robert Basler on 2017-06-06 02:58:11
Homepage: onemanmmo.com email:one at onemanmmo dot com
From Moritz on twitter.com Murder Party and Claustrophobia sound awesome!
By Sutekh on 2017-06-06 05:00:57
Homepage: email:
Offenses 4 and 5 - rather than just imposing a timer, which just means regular player X enters queue right now gets teamed with "leaver" player Y who queued 10/20 minutes ago, how about take another page from LoL? LoL actively partners leavers together. People who fail to actively play the game get teamed with (and against) other people who fail to actively play the game. It protects the active players from the leavers and, depending on the pool of leavers, increases the leavers' queue time as they have to wait for other leavers to queue.

Conceivably there also should be some method to dig yourself out of the hole (twice as many validly participated games as the number you ditched? three times?).

Consider your stereotypical teenage gamer: playing their favourite RTS MMO when Mom pops in and tells them to take out the garbage. 6 minutes later, they're back at their computer to find their reputation one step worse. Thought they had time for one more round, but have had their modem unplugged by Dad and told to sleep. Another black mark.

You have to have a light hand on punishment, because with the net there are countless cases of legitimate unplanned loss of connection.
By Robert Basler on 2017-06-06 11:05:02
Homepage: onemanmmo.com email:one at onemanmmo dot com
Since players have to be nearby each other in the world, it wouldn't work to only match leavers with leavers.

Players who play 5 games in a row without ditching will have their timer reset.

I'll think some more about the teenager problem, thanks for the feedback.

New Comment

Cookie Warning

We were unable to retrieve our session cookie from your web browser. If pressing F5 once to reload this page does not get rid of this message, please read this to learn more.

You will not be able to post until you resolve this problem.

Comment (You can use HTML, but please double-check web link URLs and HTML tags!)
Your Name
Homepage (optional, don't include http://)
Email (optional, but automatically spam protected so please do)
What is three times six? (What's this?)

  Admin Log In



[The Imperial Realm :: Miranda] [Blog] [Gallery] [About]
Terms Of Use & Privacy Policy