How to Avoid an Awkward Situation...

By SODABURBLES, in Star Wars: Armada

So I have had a common problem when setting up games of armada with my friends. When I first got into this game, I knew that I could never really expect anyone in my social circle to take the plunge with me. That meant that if I was going to have anyone to play with, I was going to need ships for my friends to borrow. Fast forward a couple of years, and I have slowly built up a sizable collection of both factions. I always have people to play against because anyone that is interested in the game can just borrow some of my stuff. My friends are happy because they get to enjoy this awesome game without having to cough up a bunch of their own dough. I have an excuse to splurge on ships for both factions. Its a win-win-win for everyone involved. However, it does lead to a common conundrum.

Lets say I set up a game with my pal Jimmy at the FLGS for Monday evening. It would be reeeeeeal nice, from my perspective, to know what ships he wants to use before hand. Otherwise, I don't know if he is gonna bring a list with 8 hammerheads, a couple of MC80s, a squadron swarm, so I would have to lug my whole collection down to the store. If I knew what he was bringing before hand, then I only need to pack up those ships. Plus I can have all the correct ship and squadron variants assembled on their pegs ready to fly. It speeds everything up. This comes with an obvious down side though. Jimmy is always gonna have the question lingering in the back of his mind, "Did he really build his list before he saw mine?" This is especially a problem if I show up with a maxed out squadron Sloane list with all of the usual fighter objectives, while Jimmy decided to try out a squadronless fleet for the first time. I have to effusively swear the entire game, "Really man, it just worked out this way. I promise I didn't sneak-a-peak and counter your build. Its just a coincidence that I under bid you by 1 point." Worse still, it taints my victories. When I inevitably stomp his fleet into the dirt, Jimmy's not going to be thinking to himself, "Man, sodaburbles had a really good list, and he flew it brilliantly. He deserved that win." No, as he leaves the store he's muttering under his breath, "that cheeky bastard totally looked at my list."

Of course the way around this is to take the moral high ground and send him my list before I even ask for his. This works out fine for me. I don't have to carry around all of my space ships. I can play without the weight of any suspicions, and both of us know that I won fair and square at the end of the game (because of course I am still going to win). But this doesn't really address the underlying issue. It just switches our roles in this awkward social dance. I've just bought my conscience clear by foisting the same moral and social quandaries on poor Jimmy (*shakes head in disappointment* poor poor jimmy).

Clearly I am making a bigger deal out of this than it really is. I've just stuck with sending my list to my friends first. My friends aren't shady cheaters (at least I hope not). Even if they do cheat a little bit and look at my list, its not a big deal. They could use the help anyway.

And so this is how the past few years of games have gone. That is until an idea struck me at work not long ago. You see, I am a software developer by day, and an important concept that every CS grad learns at university is the utility of hashes. A hash algorithm is just a way of taking some input data, and turning it into a seemingly random sequence of letters and numbers. For example the md5 hash of the previous sentence is "261f75c3c763c492705673488d0587e7" (md5 is the name of a particular hashing algorithm). Hashes have a few important properties. The key ones for our purposes are:

1) They are deterministic. So inputting the same data to the same hash algorithm will yield the same hash.

2) If someone changes the input even slightly, then the output of the hash will be wildly different. For example, hashing the same sentence as above, but without the period gives you: "9d4307c9761d5b12654f4da9c7a56a70"

3) They are (for the most part) irreversible. If someone has a hash without the input used to generate it, it is virtually impossible for them to reconstruct the original input.

A common way hashes get used is to verify the integrity of files. For example, after you download a video game on steam, steam likely computes the hash of the files you downloaded, and then compares those hashes against what steam's servers say the hashes for those files should be. If the hashes don't line up, then some of the data might have been corrupted as it beamed to your desktop over the internet. Then steam can attempt to download the file again to correct the error. My day dream at work was that we can do something similar with our armada lists.

Without further ado, here is my solution for how to avoid the "awkward situation" with Jimmy. First, write the list you want to use in your game. Then, compute the hash value for your list. It is very easy to find websites that will do this computation for you. Searching google for "hash calculator" or "hash generator" returns lots of results. Then, send the hash value to Jimmy. You will need to tell him the hash algorithm you used too. Next, ask for Jimmy's list. Once you receive his list, you can then send him your list. Jimmy can then recompute the hash of the list you sent him.

There are then two possible situations. If the hashes do not match, then you must have modified your list in the time since you sent him the original hash value, and Jimmy should probably find some better friends. If the hashes are a match, then Jimmy can rest assured that all is right in the world; he has an honest friend that did not cheat him at a friendly game of models and dice.

A couple of notes about the above transaction: First, providing the hash to Jimmy certifies to him that you have finished writing your list. If you send him a random hash value without having actually written your list, then it will be impossible for you to create a list that counters Jimmy's and also hashes to the same random value you sent him. Second, Jimmy will not know what your list is while he is writing his. He only has the hash of your list, and since hashes are irreversible, he will not be able to reconstruct your original list.

If you have made it to this point, then you are probably thinking to your self, "But sodaburbles, this sounds like an awful lot of trouble to go to. Shouldn't you just be more trusting of your friends?" ...Yes... yes, you are absolutely correct.

Working in IT, I completely understand and like this idea.

Working in IT, I know that most of my friends would have no idea what's going on and just assume that I'm fleecing them via complicated computer algorithms, or magic as I like to tell them.

If they understand the process prior to you giving them a hash, great. Problem solved.

If they don't, trying to explain it may be like explaining relativity to a goldfish.

At least, that's my experience. But I like to hang out with simpler people so I feel smarter. 😋😁

nice explanation

the less complicated tech-savvy thing is to just email yourself a version of your list that time stamps it (preferably something that isn't too easy to change, say Gmail), and just do a quick check at time of play.

That is also a great idea haha. Much simpler too.

From an IT Background, I like this idea. I may have to do this with some of the folks I play with as I am in a similar situation.

Over on the X-Wing side, their popular list building/match making site List Juggler allowed players to set a time/date for a match, and then both enter their lists in escrow. Neither player can see either list until both lists are added, then the lists posted become visible to both players.

That seems like it would be the easiest way to address that, we'd just need to have a site set up for tracking that.

Cant you just trust each other?

Sometimes the simpler solution is to not invent an issue where there isnt one.

Edited by Ginkapo
12 minutes ago, Ginkapo said:

Cant you just trust each other?

Sometimes the simpler solution is to not invent an issue where there isnt one.

Like I said at the end of the post, you are absolutely right.

6 minutes ago, SODABURBLES said:

Like I said at the end of the post, you are absolutely right.

I didnt get that far...

13 minutes ago, xanderf said:

Over on the X-Wing side, their popular list building/match making site List Juggler allowed players to set a time/date for a match, and then both enter their lists in escrow. Neither player can see either list until both lists are added, then the lists posted become visible to both players.

That seems like it would be the easiest way to address that, we'd just need to have a site set up for tracking that.

That's actually pretty cool. Never really got too deep into to x-wing, so I didn't know this was a thing. Maybe one of the Ryan Kingston or armada warlords guys can be convinced to do this. I've always though about making my own list builder, but figured it wasn't worth it since those ones are so good.

Interesting read, but luckily we don't need to do that much trouble. I also always provide all the ships we play with so it's indeed convenient to know what the other player is playing to quickly set the game up.

Normally my friend sends me a link to the list he wants to play via whatsapp and I then send a link back of the list I want to play within minutes of reading his message.

Or just have both players send their list to a neutral third party.

Why exchange exact lists? It sounds like all you need is a short list of what ships to bring for him. That way, no worry about bids/points, etc.

1 hour ago, LTD said:

Or just have both players send their list to a neutral third party.

Preferably one who is a licensed notary and can validate the submissions with a stamp.

18 hours ago, SODABURBLES said:

Like I said at the end of the post, you are absolutely right.

If you normally win why not give your opponents a little advantage of knowing your list in advance?

Well, this is Awkward.

You don't really need a third party or anything - just exchange lists at the same time:

"Is your list ready?"

"Yes, is yours?"

"Yes, here"

"Here's mine"

On 8/3/2019 at 9:36 PM, Ginkapo said:

Cant you just trust each other?

Sometimes the simpler solution is to not invent an issue where there isnt one.

255px-Flag_of_Europe.svg.png

Note: just joking. Now I am closer to get a British brother in law I just couldn't stop myself.

2 hours ago, mazz0 said:

You don't really need a third party or anything - just exchange lists at the same time:

"Is your list ready?"

"Yes, is yours?"

"Yes, here"

"Here's mine"

Yeah, pretty much this. Just don't show objectives until first/second player is resolved, and you're good!

The people saying "just trade lists on the day" are missing the point. Was it TL:DR?

The OP is PROVIDING BOTH SIDES' SHIPS.

He DOES NOT want to bring ALL of his ships - just what is needed.

44 minutes ago, LTD said:

The people saying "just trade lists on the day" are missing the point. Was it TL:DR?

The OP is PROVIDING BOTH SIDES' SHIPS.

He DOES NOT want to bring ALL of his ships - just what is needed.


Huh?

The point is to exchange lists ahead of time, before gametime... I mean I assume the OP is coordinating with the opponent via some form of communication (ie, to set up the game). Why not, a few days before a game, text/message each other their lists? "ready?" "yea" "cool, me too, here's the url for my list" "sweet, here's the url for mine."


Boom. Problem solved. Granted, if the OP is scheduling his games via homing pigeon or smoke signals, then yea I guess this way wouldn't work. But if they are using any form of modern communication, it totally resolves the issue.

Just password protect the list and send it to him, when he gets his list to you send him the password.

I stand corrected and repent in both sackcloth and ashes.