Game Development Community

Stack Overflow versus World of Warcraft

by Daniel Buckmaster · in Game Design and Creative Issues · 12/11/2011 (12:37 pm) · 19 replies

I recently had a crazy idea about how to better rank players in competitive multiplayer games which breaks away from the 'grind' of accruing XP by simply playing the game a lot and being good enough to get kills. The idea isn't fully-formed yet, but I think it has promise.

The core of the idea is borrowed from the Stack Overflow model of online collaboration. If you're not familiar with it, SO is an online help forum of sorts for programming. It is structured around questions asked by its users, which then receive answers by other users. Users then upvote or downvote answers, letting the more useful responses bubble to the top. There's a similar provess of voting on the questions themselves, so questions asked in a helpful fashion that show some effort on the part of the asker get seen more often.

But where it becomes interesting is 'reputation' - users have a reputation score that is increased when someone upvotes a comment they made or a question they asked. It's a sort of 'peer-review' process that both encourages and rewards good attitudes and solid questions and responses. What seems obvious about it is that it's not simply about how many questions you ask that makes you reputable (like some forums that show post count, and put users into groups according to that), but their quality, as judged by other users.

imgs.xkcd.com/comics/constructive.png


So the Stack Ooerflow model of 'experience' is directly linked to what other people think of hat you wrote. This is distinct from how it works in games at the moment, where you get your 'experience' from simply doing. I've mentioned World of Warcraft in the title because to me, WoW embodies the idea of the grind, the accumulating of experience by repetitive tasks. I don't mean to single it out; pretty much all MMOs and, increasingly, games in other genres, do this. I just used it because it's a pretty well-damn-known example.

So what if you were to apply the Stack Overflow model of experience to a game? It sounds dicey, but I'm thinking something along the following lines. Consider a multiplayer shooter, say Gears of War because it's also well-known, and has kinda-tactical gameplay.

media.teamxbox.com/games/ss/1167/1161183626.jpg


Your basic combat scenario involves hiding behind a waist-high wall with your team around you, occasionally popping up to fire at the opposing team who are hunkering behind a waist-heigh wall a few metres yonder. Getting a kill is sometimes a battle of attrition - both of you popping up simultaneously and firing till one of you drops; sometimes it involves manoeuvring across the level to get at your enemies from a side they're not covered on. This, of course, leaves you open to being shot, and more vulnerable than you'd be if you had stated in cover. Depending on the weapons available,sniping is viable; a skilled player can plug an enemy from a fair distance if they stick their head out of cover. Also, there are chainsaws attached to some guns. Because why not.

Instead of awarding players XP for getting a kill, I propose that when you are killed, you have the opportunity to 'upvote' your killer. Which seems absurd, but bear with me. The idea is that you upvote kills that seemed fair to you; kills that were earned, not cheap or lucky. Possibly kills that involved a pretty good fight, or took advantage of some mistake on the part of the deceased (for example, running blindly out of cover). Like Team Fortress 2 allows you to take a photo of your killer, the prompt should be offered in some way that emphasizes the way they managed to do you in; whether a sneaky chainsaw in the back, or a long-range headshot with the Torque Bow.

i.i.com.com/cnet.g2/images/2007/192/942067_20070711_screen005.jpg
Remember the grenade spam? That's an example of a kill you wouldn't upvote.

The idea is that, like on Stack Overflow, you reward people who are playing the game well in the eyes of their peers, not just playing it. Of course, the idea of rewarding the person who just killed you seems counter to the point of a competitive game; the important difference between Stack Overflow and the situation I'm describing is that on SO, you upvote people who are trying to help you. However, I reckon the system captures a bit of that camaraderie even between virtual enemies - I've seen many people congratulate good kills, and a system like this might even encourage that sort of spirit, instead of jealous and spiteful interactions.

Of course, you could apply the system to friendly activities - maybe being able to upvote allies who assist you, to sort out the kill-stealers from the ones who genuinely save your bacon or help you take down a tough opponent. But I think the system has the greatest use when applied to competitive behaviour - and aside from anything else, it's just convenient to fit in a 'voting' screen when you're waiting to respawn, rather than interrupting the action in any way.

This score, accumulated as people upvote your kills, could even be entirely separate to an 'experience' score. However, it is no less important - it gives a measure not just of the amount you have played (which is important), but how you have played.

So, I could write a lot more about the uses and abuses of this sort of idea, but I think I'll leave it for now - I want to know what you guys think!

About the author

Studying mechatronic engineering and computer science at the University of Sydney. Game development is probably my most time-consuming hobby!


#1
12/12/2011 (8:26 am)
I think its a good idea, But to encourage people to vote posistive i would give an exp boost the the voter as well as the votee, because being good in a good fight is just as important. Maybe even take it to the next level while loading the next level have everyone rate each other. You could also use the rateing system as a form of game matching system if you continue to rate a person badly it tries to not pair you with them.

Just some added ideas But the overall idea could work if there is incentive to give good ratings
#2
12/13/2011 (6:54 pm)
I like this concept but let me tell you a little story.

On secondlife, a long time ago you could vote for peoples that you felt where good at creating stuffs, good socialisers, or good programmers, it costed you a nominal fee for each up vote you gave and in return they would get a bonus on their weekly "stipend" (which was some virtual cash you received weekly.

At the core it's a nice system, it is supposed to reward you for being a helpful community member.

The problem is that "rating parties" started becoming widespread, peoples would gather together and the goal was that everyone would give a positive rating to everyone in the 3 categories. The stipend increase would make everyone benefit from it.

I have kind of a jaded vision on things but i feel that players cannot be trusted with this kind of responsability. In the model you present, it's very possible that most peoples will never rate you positively for doing well, because by doing so you basically impede their enjoyment of the game.

On the other hand it's also possible that rating everyone for their kills become the norm, to the point of players not rating getting kicked by server admins.

It could work, but it will depend of the mentality of the player community entirely, if you are targeting the hardcore FPS gamers with a game that is in the vein of Quake3, this could work.
#3
12/13/2011 (6:55 pm)
Your idea has merit.

My first thought when I read this thread (and Manni's reply) was Dark Souls. The game uses a variety of "voting" systems to punish/reward players, and it greatly enhances the experience.
#4
12/13/2011 (7:02 pm)
After writing this I just realised, that there is one thing that could make it work better:

Add some sort of credit system, where you only get 1 point for rating a player every 5 or 10 death.

This would shift the question from "should I add to this person's rating or not?" to "who am I going to rate, because i have to pick one person."

Sure peoples will rate their friends in priority, but a kill always feel more memorable from a friend anyway :)
#5
12/13/2011 (7:07 pm)
How about having one rating per opponent? Like the preferred/avoided system on Xbox Live.
#6
12/24/2011 (3:04 am)
I love this kind of thinking! Unfortunately, and this backs up what Kyrah mentioned to a degree... people are generally NOT TO BE TRUSTED with any kind of decision-making responsibility.

Here's how I would approach it:

Use a kill:death ratio together with an abstraction of which attacks etc are used in combination until you have some basic number as a result. Then the server can examine the relative 'numbers' of all the people playing on that map at that time and rank said players accordingly. Then your rank gets stored on the server with everyone else's. Your rank can go up or down based on how well you consistently maintain that playstyle. Over time you can have an aggregate rank that's matched against every other player's rank. This way you maintain the xp gain for smart gaming and there isn't a person involved to mess it up. And because it's all server side there'll be no cheating!

That's my take at any rate.
#7
12/24/2011 (7:46 am)
The type of community you foster will determine if people can be trusted. A rating system community, if constructed well, could foster a community of respect for accomplishment and skill.

The example of Second Life and the way it turned out is because "the people" realized they could "vote" themselves a "raise" with no effort except "working the system". This is a great example of why ALL pure democracies fail. When the people realize they can vote themselves benefits without doing any work they will, and the economic structure will collapse. Sound painfully familiar?

If you create a community that fosters cooperation, allows people to give credit to others and show respect for their skill you will create a very positive environment to be in. Honor is a rare thing these days, but it is not gone. I think a rating system if properly constructed would be a great method to build honor among opponents. This will attract honorable people. In a way it starts to make having honor part of the game play.

A good real life example of this happened after the American Revolutionary war. After the war King George III said something to the effect: if General George Washington were to truly give up power Washington would be one of the greatest men to have ever lived. That would have been a +1 for respect and honor from the King to Washington. It certainly is a +1 for the King as well as the General in my book.

@dB,
+1 to you for thinking this up!!! Stack Overflow is a great model to follow. An extension to this would be to allow for different categories of excellence. Also, if teams are involved then allow teams, team mates, and individuals to recognize role excellence. Like if someone is wicked good at driving a vehicle that carries all the sharp shooters then give people an avenue to gives props for that.

I am working on a project that will have the equivalent of sports leagues and you just gave me some great ideas for ratings. Thanks!

#8
12/26/2011 (5:18 am)
Quote:But the overall idea could work if there is incentive to give good ratings
I guess I intended that the 'incentive' be the good feeling you get when someone rates you. Which is a difficult feeling to nurture, but I think it's ideal for a system like this.

Quote:Maybe even take it to the next level while loading the next level have everyone rate each other.
I like this idea - it seems like it would work especially well for a round-based game, and encourages more reflective ratings. The idea of putting it immediately after a death is to encourage instant-reward behaviour, focusing on the precise action that just occurred. Putting the rating at the end would encourage people to think about other players over a longer timeframe.

One nice idea might be to do it both ways - give players the option to send 'props' to their killer instantly, and also allow players to rate each other in a more detailed way at the end of the game, after the adrenaline has subsided.

Quote:I have kind of a jaded vision on things but i feel that players cannot be trusted with this kind of responsability.
I guess any system has the potential for abuse. I've seen TF2 servers full of people regimentedly going about the business of getting all the achievements. I read a great article about achievement design which focused on the adverse affects of certain achievements. Like, an achievement that you get for betraying an ally. It might be a succinct way of acknowledging a particular player's style or actions, but as soon as you make it desirable, you get a lot more people betraying their allies just to get the achievement, not because there was any other point to it.

I should say, I guess, that I didn't necessarily imagine the system being used for everyday XP awards. I chose to cast it in that light, because reputation is Stack Overflow's XP. But some separate ranking score could be monitored, maybe one that doesn't confer gameplay advantages, but lets you pick the nice people from the griefers. That itself would hopefully make the system much less prone to abuse.

Quote:Then the server can examine the relative 'numbers' of all the people playing on that map at that time and rank said players accordingly.
The difference, I guess is that I'm trying to 'outsource', if you will, that work. But also to harness people's opinions, not just their actions. Stack Overflow asks users to rate each other because it's impossible to algorithmically determine a 'good' answer; machines just don't have that understanding right now. In the same way, I reckon it'd be very difficult to create and tune an algorithm to take into account all the external factors surrounding a given game event (say, a kill) and somehow rank it. Games do this already - for example, XP bonuses for headshots. The game sees an enemy being killed by a bullet to the head, and it can only assume that you intended for that to happen. I get the same XP bonus for my carefully-placed sniper shot as I do for spray-and-praying with my pistol and just happening to get a lucky headshot. More advanced metrics could be used, but you're still trying to take a lot of meaningless data and derive intent from it.

Quote:Also, if teams are involved then allow teams, team mates, and individuals to recognize role excellence.
That approach works nicely with an end-of-game stat screen, where you could add more options. That or, in a slower-paced game, inserting 'upvote' prompts at more points in the game. So for example, when you get out of a vehicle, you have a few seconds to hit Page Up or some non-gameplay-related button to upvote the driver.

Quote:Sound painfully familiar?
Heinlein? ;P
#9
12/27/2011 (8:11 am)
@dB,
Quote:Heinlein? ;P
The current economy.
#10
12/27/2011 (9:49 am)
Oh, I realised - you just sounded similar to some of Heinlein's writing, so I subverted the question for my own nefarious purposes ;). His proposed future state in Starship Troopers was all about the failures of unlimited democracy, and he wrote elsewhere about ways in which democracies could award the franchise other than by age.

But that's neither here nor there...
#11
12/28/2011 (1:44 pm)
@dB,
I just didn't catch the reference. I was so impressed by the imagery he used in that movie. It was straight out of the fascist playbook of what he saw first hand as a child growing up. I did not realize he was also commenting on the failure of entitlements.
#12
12/29/2011 (1:54 am)
I haven't seen the movie, but the book is a brilliant classic. They're very different, from what I've heard. (Also, the book was Heinlein, film was Verhoeven. Sorry, this is a subject close to my heart ;P.)
#13
12/29/2011 (5:27 am)
@dB,
Just tells you how close I pay attention to these things. I may have to look it up now. Thanks for the info.
#14
12/29/2011 (9:13 pm)
@Dan what I ment is that if this +1 rating is something you can give undiscriminately to anyone, you will encourage peoples to exploit it the same way it was exploited in secondlife.

On the other hand, if it's something like "rate your best in the last round", sure, you will get favoritism for friends and celebrities, but there will be SOME form of choice made, and it will more likely be the best/most respected player in the round than someone chosen as random, or the worst player.

However there is a little issue, if you consider that in general only the very best will level then, no second or 3rd prize...
#15
12/30/2011 (11:24 am)
Quote:what I ment is that if this +1 rating is something you can give undiscriminately to anyone, you will encourage peoples to exploit it the same way it was exploited in secondlife.
Yep, I agree. I reckon the only solution is to limit the effectiveness of this voting. For example, in SL people were actually voting themselves more resources. I wouldn't go as far as to give players benefits for their reputation score, hopefully to curtail that behaviour. Another trick would be to follow SO's model of only being able to vote a comment/question once. You've either voted it up, down, or not at all. While it wouldn't stop people voting their friends, it would limit people's 'automatic' votes to the number of friends they have. Trouble is you'd need a large enough circulation that people would keep playing people they hadn't voted or been voted by. Also, keeping track of all those votes would be a huge server infrastructure job :P.
#16
01/02/2012 (6:02 pm)
There's this online version of a classic party game called Epic Mafia.
In the game you have points that accumulate like in your average MMO, only way to lose points is to suicide in ranked games (in the game it's really bad, makes the game unranked and broken).
You also have karma points, every player who has over 2000 points can '+k' or '-k' others, you can give or remove only 1 karma per player.

Usually, people only -k others when they are making BAD mistakes or trolling. They don't often +k others without reasons either, if the game was fun or interesting, people tend to +k their opponents too in addition to their team mates.

There is a way to abuse this karma system, the game allows you to give karma points to anyone you haven't already given, so it's common to see posts like "+k for +k" on the front page, it's called karma whoring. It's the reason why the karma system isn't taken so seriously. If only the game had restricted +k like the -k, you can only remove karma from people that are in the same game as you.

Overall I think the rating system the game uses is really fine, you can see other player's points, their wins, loses and suicides and also the karma system. Only problem really is the possibility of abuse.
#17
01/27/2012 (11:36 am)
Some people get salty when you beat them bad so you'll always have those people. Most of the time its okay. I play lots of fighting games and let me tell you people get mad when you win easily. It could work but it needs to do it correctly.
#18
01/31/2012 (9:52 am)
Just to throw it out there - the movie Starship Troopers was a spoof of the book. While the general storyline and concept are there, they did away with the armor, added campy, snarky "commercials" and other humor to (I feel) counter the stark harshness that a war with selfless insect-like beings would entail.

I felt the book was a much better story, but I think the movie is great fun.

I'd also like to throw PlayerScore in on the WoW side of things - this lets you give people a virtual rating (because it's outside of the game system) on their performance in dungeons and raids, and in general I think. Other players with the PlayerScore add-on can see these ratings if you have uploads enabled, so you can pick your poison when pugging for raids. Blizzard tried to do something like this with their new vote kick rules and what not, but there's no standing effect or tracking of these events through the game system.
#19
01/31/2012 (11:05 pm)
Maybe one could check out the existing implementations and talk to the admins if possible. Then the pros and cons can be judged.

I know when I used to play Quake 3 online that it was hit or miss to the people you played. Some players were just awesome and helped you learn. Others were just jerks or had aim bots.

What I would look for in an honor system would be ratings like:
1. Helpful
2. Friendly
3. Skilled
4. Team Player
5. Cheater

Then as a player I could look at a game and decide if I wanted to play with the group based upon ratings. Over time you would have to assess how effective such a system would be. I would also treat such a system as completely statistical. Obviously any system could be abused, but over time things would iron out. Another statistic you could track which would not be very tweakable is how many times people chose to play with someone or a group. This metric would just be another stat people could choose to acknowledge or not. You could also do a stat clearing to where only stats that are habitually attained are kept long term. So if someone did not like someone else and labeled them as cheaters a bunch of times in a short time frame then it would get flushed eventually.