Implementing objective and subjective contract ratings

Burton took great pride in his ability to get his customer’s cargo from point A to point B quickly, intact, and with not a lot of questions asked. He’d invested tens of thousands of credits in tech to mask the signature of whatever he was carrying from UEE or militia scans. Burton considered himself among the best of the best in the hauler business, and his close friends and frequent customers agreed.

Burton’s problem? Not to put too fine a point on it, but ask around and everyone will tell you Burton’s a son-of-a-bitch. “I have no patience for stupid customers,” he’d growl at any customer – current or potential – who he thought was wasting his time. Burton’s favorite line? “Time is money, and if you want to keep wasting mine pull out your MobiGlas and start sending me credits.” Burton’s good friends, all two of them, told him he should scribe that line on the side of his ships.

When the Shippers’ Guild instituted customer satisfaction ratings in the 2930s, Burton’s business dropped like a stone. People liked his work, but always rated him down because of his abrasive personality. Burton was good enough he kept the business he stumbled across, but capturing new customers was always the toughest haul.

I hate to start any blog post with a reading assignment, but I have to with this one so we’re all on the same page when I say “contract”. You need to read my earlier blog post, “A Star Citizen Contract System.” Without understanding how comprehensive I believe the contract system inside Star Citizen should be, the rest of this might not make much sense.

The idea of rating the performance of contract counterparties has been around since the original pledge drive. In the initial pledge drive livestream, Chris Roberts talked about a Yelp-like system allowing the contract counterparties to rate each other subjectively. (FYI, the legal term for the two people who sign a contract is “counterparties”.) This cumulative subjective rating would be visible to other players as a guide for choosing good counterparties.

During today’s Wingman’s Hangar, CR talked about the ride-sharing service UBERx and how a similar rating system would be applied to contract performance in the Star Citizen universe. Unlike his Yelp comparison, this really got people excited on the forums – if only because between October 2012 and July 2013 we have several tens of thousands more backers to work each other into a frenzy.

I have to agree with the concerns of many: A 100% subjective rating system is prone to meaningful abuse. Gankers can get their friends to upvote them so they can use that good status to prey on other players. Worse, some jackass (as Burton would put it) would downvote you despite perfect contract performance just because he or she thought it would be funny.

If you assume CIG will work very hard to put in a comprehensive and robust contracting system, there is an easy way to address this.

Both players who sign a contract earn two ratings for that contract – a Yelp/UBERx subjective rating given by the contract counterparty AND a 100% objective rating calculated off the terms included in any contract.

Here’s how it would work for our friend Burton:

Burton signs a contract with Gracie. The contract says Burton has to ship 5,000 ton of artifacts between the Hades and Nul systems within 3 SEDs (Standard Earth Days, the time measurement system in the Star Citizen universe). The contract is worth 1,500 credits.

Burton picks up the artifacts in Hades, dodges some pirates, and delivers the goods as agreed to Gracie in the Nul system 2.5 SEDs later. Gracie thinks Burton is a little cute, so she starts making some small talk. Burton gives her his “Time is money” line, pissing Gracie off.

At the conclusion of the contract, Gracie gives Burton 3 out of 5 for performance because Burton hurt her feelings. That becomes Burton’s subjective rating for this contract. The CIG contracting system assigns a 5 out of 5 objective rating for delivering the goods intact and on time.

Burton gives Gracie 2 out of 5 for wasting his time, which is Gracie’s subjective rating on this contract. The CIG contracting system assigns a 5 out of 5 objective rating because Gracie paid Burton on time and the amount owed.

If I’m thinking about hiring Burton, and I don’t know him, I can look up his performance ratings. I will see a subjective rating of 3 and an objective rating of 5. I can make up my own mind which of the two ratings is more important to me. The same is true with Gracie’s subjective 2 and objective 5.

Having two ratings helps offset the ganking and jackassery inherent in a subjective rating system. If I run across someone like Burton with a near-perfect objective rating and a poor subjective rating, I might ask some questions about why the two ratings diverge so much. But having both of them available should provide the experienced Star Citizen player a nice picture of potential contract counterparties.

I’ll note the objective contract rating system could as easily be a contract completion percentage as opposed to a 1-5 scale rating. I’d argue for something sophisticated enough to provide small adjustments to the rating according to difficulty of the contract, but that’s not 100% necessary. Perhaps CIG might consider something patterned off how competitive diving is scored, with the performance of the contract modified up or down by a degree of difficulty measure.

I would also make individual ratings very accessible – showing not only the cumulative subjective and objective scores, but each contract rating and perhaps even some comments from the contract counterparty. This would provide even more visibility into your potential contract counterparty before “inking” the final contract.

I don’t expect CIG to get either the contract system or the rating system “right” on the first try, despite the brilliance of their team. The contract system, as you read in my blog post from February, is mind-numbingly complex. The rating system will have all sorts of little surprises in it, not the least of which is finding the right scale (0-5? 0-100?) and fine-tuning any adds and deducts to the objective rating.

I simply don’t think 100% reliance on a subjective rating system is workable. It’s just too gameable. The contracting system will (hopefully) be there, so why not make use of it?

 

Contracting Conundrum

Bart the 43rd was excited. After grinding hard in his Avenger and, well, 42 deaths, he’d scraped together enough money to buy a used Constellation tricked out for cargo running. While it didn’t have the cargo capacity of the Starfarer, it meant he could haul over three times as much cargo on each run. He’d been parked at the Shippers’ Guild for hours looking for the right contract for his Connie’s inaugural run.

“Too far. Too dangerous. Too expensive. Man, am I ever going to see something other than this crap,” said Bart the 43rd to nobody in particular since the woman staffing the Guild desk long ago tuned him out. “Wait a minute… wait a minute!”

SHIPPING CONTRACT: 35 ton refinery robot CPUs for immediate delivery to Nemo. Speed bonus paid for delivery within 3 days.

“Bingo!” shouted Bart the 43rd. Bart accepted the contract, raced to his new Connie, and 36 hours later, he was at the door. 36 hours and 15 minutes later, he was back in his Connie. Another trader in a closer system accepted the contract first and beat him there.

“Effing pigeon drones,” Bart the 43rd muttered. “When in the hell are those UEE boys going to invent FTL communications?”

A serious problem with relay-style communications is highlighted by poor Bart the 43rd’s dilemma. At least the poor dude can visit the Space Whale while he figures out how to pay for the fuel he burned getting to Nemo.

To understand what happened to Bart the 43rd and to facilitate what I expect will be an ongoing discussion concerning this issue, I’ve created the following graphic:

Let’s make some assumptions for the purposes of this blog entry…

  • Nemo is system ‘A’ and the source of the contract request.
  • Each planet graphic represents a different system.
  • Commercial communications take one hour to propagate between systems via pigeon drone (just for ease of discussion purposes and not a prediction of how long it will actually take in the game).
  • Bart the 43rd was on system ‘D’
  • The trader who fulfilled the contract was on system ‘B’ and is named ‘Hilda’

Now let’s work the timeline.

  • Hour 0: Contract request made
  • Hour 1: Contract request at system B
  • Hour 2: Hilda accepts the contract at system B. Contract request at system C.
  • Hour 3: Hilda’s contract acceptance received at System A. Contract request reaches Bart the 43rd at system D, is accepted by him, and he leaves immediately for the jump point. Hilda’s contract acceptance data at System C.
  • Hour 4: Hilda’s contract acceptance data reaches System D. Bart the 43rd’s acceptance reaches System C.

It’s clear the relay delay has screwed Bart the 43rd out of his contract. Even in the best case where his MobiGlas picks up Hilda’s acceptance data once Bart enters the system with system C, he’s still screwed.

The pigeon drone and system-limited exchange system CIG has envisioned will inevitably cause duplicate contract acceptances. Inevitably. The question then becomes how to handle it. Frankly, there are no good ways to handle it within the game fiction.

The creator of the contract on system A cannot be responsible for anything other than the first contract acceptance. Even in the limited example above, there could be four duplicate contracts – one each from planets B, C, D, and E with only the one from System B being the ‘valid’ contract.

The creator of the contract will possibly still need those refinery robot CPUs and be willing to offer a lower price to those who arrived “late”. But that’s not fair to the traders, especially traders who come longer distances and have higher costs that may not be covered by the lower prices.

There may be other consumers of refinery robot CPUs on Nemo who could take up the slack supply, but that would have to be coincidental. CIG couldn’t purposefully spawn consuming nodes just to handle duplicate contract issues. It would break the game economy quickly.

I honestly have no idea how CIG gets around this problem inside the game given the current communications assumptions. And I’ll reiterate Bart the 43rd’s situation is an inevitable and regular occurrence in the economy as currently foreseen.

The easiest way around it is to relent and make communications instant (faster-than-light). Perhaps the technology could be limited by the fiction to very short bursts – urgent news and contract data – and not suitable for the kinds of constant stream of price data necessary for regional exchanges. This is about the only “have our cake and eat it too” solution I can devise.

There is another way around this, and that’s the use of an outside contracting website. Some enterprising folks set up a contracting exchange outside the game. Anyone interested in any type of contract – askers and bidders – list their contracts on this outside exchange. Contract-related communication in this outside exchange would not be hampered by in-game communications limitations and are, therefore, instant. Everyone involved agrees contracts made on this outside exchange are binding inside the game, with appropriate penalties (loss of access to the system, for example) for breaking this agreement. At the point bidders and askers make contact in the game, an in-game contract between the two is created to fulfill the contract originally created on the outside exchange.

I’m 110% confident outside exchanges will be created if CIG can’t come up with a good solution to this “Contract Conundrum” Bart the 43rd experienced. We have already seen similar websites created as players work around analogous issues in EVE (see EVE-Central.com and EVE‑Markets.net as two examples).

Every time a player feels the need to Alt-Tab away from Star Citizen, immersion suffers. That’s a bad thing, so here’s to hoping CIG and the community can come up with a smart way to solve prevent poor Bart the 43rd’s problem.

[Note: Make sure to click on the comments where we have discussed a possible solution to this problem. Feel free to hop into the conversation. Comments are moderated to start, but I release them pretty quickly.]

Pigeon drones

Karl and his guild of fuelers had a good week. They had refined fuel stuffed in every cubic meter of their gaggle of Starfarers, Caterpillars, and even the odd Connie whose owners retrofitted them for fueling instead of fighting. Now they just needed to know where to go.

Each ship in their group was arrayed around incoming jump points in the Osiris system. They all had scanners and guns hot, looking for one thing – the next pigeon drone to pop through the jump point.

“Detecting activity, Karl,” said Melissa. “Spooling up the turrets.” With a flash and a small distortion wave, a pigeon drone winked into existence. “Receiving… and firing,” Melissa said calmly. The turret on her Starfarer flared briefly and the pigeon drone ceased to exist.

“Another plea for fuel… and the price just doubled again,” Melissa informed Karl, not bothering to hide the excitement in her voice. Karl smiled, knowing his guild’s tactic of intercepting pigeon drones was interrupting the flow of economic information into Osiris. There were lots of other crews mining the gas giant here, but they had no idea about the fuel shortage and spiking prices. Karl’s destruction of the pigeon drones intended to relay commercial news between systems had seen to that…

If you read the tables in the inaugural Star Citizen Economy CommLink and watched Chris Roberts’ video, you should’ve caught two things. In Table 1.0 “Node Types”, there was the mention of pigeon drones. Starting at 0:50 in the video, you saw how commerce requests generated in one system slowly and sequentially propagate through adjacent systems.

Solar systems cannot communicate with each other instantly since there is no FTL communications capability in the Star Citizen universe. To share communications between systems, “pigeon drones” are used. Think of them like carrier pigeons – tasked with transporting information between two systems. The pigeon drone is loaded with news and economic information, then sent through a jump point. It arrives in the next system and flashes the loaded data to that system’s network of communications satellites. In this way, economic data are propagated sequentially system-to-system.

In any economy, the person who gets information first has the first chance to profit. That chance of profit goes up exponentially if the person receiving the information first can then control the dissemination of that information – slowing or even redirecting it. In the dynamic Star Citizen economy, repeated unanswered requests for commerce result in a state of increased demand. Increased demand usually generates higher prices – which in Karl’s case means he can get more money than normal for his guild’s refined fuel since he’s co-opting the economic information entering Osiris.

Karl’s fuel isn’t any better than others who mine the Osiris gas giant. His only competitive advantage is he’s been depriving other denizens of Osiris of information about fuel orders. Because he’s been intercepting those pigeon drones for a while, those doing the ordering are getting a little desperate and are hiking their prices to attract deliveries. The longer Karl is able to keep suppressing the information, the higher those prices will go.

What isn’t in the fiction is the fact Karl would have to coordinate with others outside the Osiris system. To truly starve others of advertised commerce requests, all pigeon drones exiting the requesting system would have to be suppressed – not just those inbound to Osiris.

I wrote this not to provide a no-miss manual on how controlling information can lead to higher profits. I wrote it to highlight one interesting aspect of system-limited exchanges and CIG’s decision to not use instant communications across the universe. I hear a lot of guilds talking about how they are going to blockade systems to increase their profits. Frankly, that’s not necessary. All they need to do is trash a system’s outbound pigeon drones and they can accomplish much the same thing without the same risk to their ships.

You want to have lots of fun? Grab some mates and load your holds with pigeon drones. Find some system without any ability to produce pigeon drones of their own – and destroy any outbound pigeon drones. Watch the prices for them skyrocket, and profit accordingly.

Of course, the authorities in that system are likely to notice and the local militia or local bounty hunters are likely to be tasked to do something about that – so you’d better pack some firepower to protect that cargo of yours. Such is the multi-arrayed feedback loop described in the inaugural CommLink.

Welcome to the dizzying array of economic strategy and counter strategy envisioned for Star Citizen’s dynamic economy.

Running afoul of pay-to-win

World of Tanks has eliminated the pay-to-win model.

Those who are regular readers of this blog know I start most every entry with a piece of fiction. Same is true with this one, since World of Tanks is unquestionably still pay to win.

I have a couple thousand hours into World of Tanks. I quit playing it with any regularity a few versions back as I could no longer stand the rampant shell penetration and camouflage bugs. I also continue to be persistently annoyed at this Russian-controlled company’s bias against American tanks – in particular, making their stats look competitive but then placing little “hatch hats” that can be penned by any tank Tier 6 and above. I quit spending money on the game, so my “premium account” status lapsed.

Which brings us to this blog entry.

Star Citizen will not be pay-to-win. Chris Roberts (CR) has said that a million times. The only thing that will convince people is to see the complete CIG revenue model (and, truthfully, probably not even then). The point of this blog is not to try and convince people Star Citizen won’t be pay to win as I certainly won’t be able to convince anyone who won’t believe CR.

I’m fairly confident CIG will limit cash purchases to cosmetic items, particularly avatar features. Cash purchases of game credits will also be a feature, though the company will try to limit players from exceeding a certain number of credits per month (which they will have to do via their online store). I’m happy for this recurring revenue model as it supports a vibrant, persistent gaming universe.

The purpose of this blog is to show a cautionary tale in the form of how World of Tanks retains their pay-to-win model via the use of premium accounts. The screen shots below are from a match I played yesterday in my E-50M, the top tier German medium tank.

The screen below shows it was a pretty good match. I was awarded the “Sniper” medal as the tanker with the most accurate shooting in the match. I was also awarded the “Invader” medal for having the most flag capture points (World of Tanks matches usually revolve around a Capture the Flag theme). I spotted two tanks, killed two tanks, damaged five additional tanks, and had three tanks spotted for others to damage. All of these items contribute both experience points (which are required to acquire new tanks) and credits (necessary for repairs, new shells, and new tanks). Click the image to see it larger.

The screen below shows the details of credits and experience earned on the right side. On the right edge, faded out, you’ll see what I would have earned if I had a premium account. (Click image to see it larger)

You will see I lost money despite this being a good match for me and my team winning. It wasn’t much (293 credits), but it was a loss. If you look at the premium column, however, you will see that if I had a premium account I would have instead made 14,523 credits.

The same is true for experience. I earned 3,965 experience, but with premium I would have earned 5,948 experience. That’s an increase of 50%, in line with what’s advertised for premium accounts. (For context, I needed 183,000 experience and 6.1 million credits to acquire the E-50M tank).

With premium, I get the next tank 50% faster and have a MUCH better chance of making money.

It’s that credit balance that is the real problem with World of Tanks and the cautionary lesson for Star Citizen. Without premium, I cannot run my top-tier tanks. They simply lose too much money. I either have to run lower-tier tanks, which are better money makers, or I have to buy a Tier 8 “premium” tank, which is only acquirable with cash. They have very low repair bills and very high damage-to-earnings ratios. They are, in short, money machines.

If I want to run my top tier tanks, I have to spend a lot of time running lower tiers or I have to spend cash on a Tier 8 premium to grind credits.

I am aware there are alternatives. I could join one of the better clans and fight for territory on the Global Map. If I join a competitive clan, they would pay me in the gold credits they earn for holding territory. I could use those gold credits to pay for a premium account. I’m good enough and, as someone who has paid lots of money for World of Tanks, I have the tanks to qualify for any of the top clans.

But for all but a few hundred of the hundreds of thousands of World of Tanks players, it is clearly a pay-to-win game.

I suspect Star Citizen subscriptions to eventually morph from “access content first” to some in-game benefits of some sort – exclusive bars, preferred access to certain suppliers, etc. I think those sorts of things, done carefully and with much aforethought, can integrate optional subscription payments into the Star Citizen universe without crossing the pay-to-win line.

However, CIG needs to be careful not to replicate the World of Tanks premium account system. Their system provides a specific, quantifiable pay-to-win advantage to those who can afford the cash.

I have every confidence in the CIG team to navigate the fine line between recurring revenues and pay-to-win. I believe they will not intentionally institute any program that provides a persistent advantage to players on the basis of their finances. My only worry is the unintentional, which is a big reason why I wrote this blog article highlighting why World of Tanks remains a pay-to-win game.

[Note: For the record, CR references World of Tanks often when talking about business models. In the June 2013 livestream event, he specifically called World of Tanks a game with pay-to-win aspects and said Star Citizen would not do the same.]

 

Retaining immersion with system-limited exchanges

It was a big galaxy, and Fred certainly had the money and time to travel. But, he was a homebody. “Why travel six jumpgates to visit the Torreele Mega-Mart.” Fred remarked to anyone who’d listen, “when I can buy the same vac-packs here on Goss I?”

Fred played his part in the local economy. He retired from running a major Aegis Aerospace manufacturing plant and hung his own shingle. “Don’t Get Dead, Repairs by Fred,” said the sign on his repair hangar. “Named by my grandson,” Fred told everyone who visited his shop.

It’s pretty clear CIG has decided inter-system communications won’t be instant in the Star Citizen universe. Chatroll comments from CIG folks, interviews given by Chris Roberts, recent fiction, and even the Writer’s Guides have all outlined a communication system that breaks down over distance – or at least has to travel in delayed burst packets to get from one solar system to another.

This has huge economic impacts, obviously. It means exchanges will be no larger than a single solar system. After all, you can’t have a regional exchange when price and transaction information takes 30 minutes to travel between systems.

I understand why CIG chose this. It’s much easier to code, though it will increase economy management and monitoring complexity on the back end. The contract module will be much simpler. NPC behavior is easier to model and control, too. Given CIG is staring at a huge task list, it makes perfect sense why they’d chose the shorter path.

The biggest drawback to system-level exchanges are they greatly encourage players to break immersion by Alt+Tabbing to third party web sites. CIG’s chosen communication standard makes price information for adjacent systems unavailable in the game. This does not mean those prices will be unavailable to players. It only means players will Alt+Tab to view those prices on a third-party website set up by enterprising Star Citizen fans.

Anyone who has played EVE is very familiar with this. If you haven’t played EVE, head over to EVE‑Central.com and check out their offerings. While the data are not perfect, the EVE experience indicates any serious Star Citizen economy participant will use similar sites before risking space travel and profits.

Sites like EVE-Central.com cannot be stopped, of course, so CIG has to figure out ways to entice players to retain immersion and not Alt+Tab out to third-party sites.

I’ve already written about one strategy – the local live auction (Going once, Going twice, SOLD!). Price data from a local auction ages rapidly, to the point it would be useless after only a few days – longer if the local auctions are heavily populated by NPCs with narrow price guidance, shorter if the local auctions are dominated by human players.

With predominantly human participants, auction prices are highly variable. They depend on supply and demand conditions persisting only for the length of a single auction. Coding NPC auction participants will be a matter of some art. Not only will they need to have boundary ranges for bids, those ranges will need to be sensitive to the number of participants in any given auction, the number of different sellers of a particular good, and the number of bidders for a particular good. Then you have to toss some randomization factor in so bidding against NPCs doesn’t become completely predictable and, well, gameable.

I originally envisioned local auctions as a way to encourage local commerce in a regional exchange system. They can help entice players to remain immersed, however. The imperfect price discovery (and demand ruled by human frailty) I described in the original blog post could be a powerful tool enticing players to retain immersion. A well-designed local auction house system would have a nice side benefit of making third party price site less reliable, reducing immersion-breaking Alt+Tabbing.

Limited-time local specials are another strategy. Every system will have its own commercial media, all of which will carry advertisements. Our friend Fred could, on a slow afternoon, advertise 20% off engine repairs for that afternoon. If you’re in the system, you’re going to be able to take advantage of this offer. If you’re not, you won’t. The short duration of this sort of limited-time local offer makes price data less useful on any third party site due to lags in updating.

CIG will have to do more to monitor “economic alts” under the system-limited exchange approach. One way to defeat the game feature of hiding prices via slow communications is create an alt account and place that character on another planet. I expect any serious player to have many economic alts, one on every major trading planet.

CIG, for many reasons including economic reasons, will need to control (prevent) trading between alt accounts. It’s game breaking, for example, to allow a Citizen alt to share the same goodies (ships and money) with a Pirate alt. If a player’s alts can do commerce with each other, it breaks most of the rationale behind system-limited exchanges. There wouldn’t be any price discovery risk, just travel risk.

There were always going to be third-party websites specializing in Star Citizen economic information. Even with a galaxy-wide exchange, sites would spring up with hints for the most profitable trades. CIG’s apparent decision to use system‑limited exchanges doesn’t change this.

Given CIG’s desire for players to retain immersion, I expect much of the early thinking about the game economy design to revolve around strategies to keep players in the game instead of Alt+Tabbing out to get their economic information. Making certain those features don’t just end up being annoying will be a significant balancing act.