Thursday, February 20, 2014

The Beautiful Experiment that is Twitch Plays Pokemon

Maybe you haven't heard, but the Internet recently decided it wanted to play Pokemon Red/Blue.  That's not to say that the Internet decided that everyone should play Pokemon Red/Blue on their own, it is to say that the Internet decided it wanted to play Pokemon Red/Blue, as a hive mind.

Watch live video from TwitchPlaysPokemon on www.twitch.tv

Apparently, progress is being made, as this highly accurate diagram illustrates.


(from the official? @TwitchPokemon here: https://twitter.com/TwitchPokemon)

Poor ABBBBBBK (, you are missed.



Let's take a step back, shall we?

The original notion (as far as I can figure), was to do exactly what I said above - play Pokemon Red/Blue as a giant hive mind.  The inputs to the game (e.g. up, down, left, right, a, b, start, etc) were (quite brilliantly) linked to the chat window you see scrolling like mad on the right side of the screen.

Let's look at a simple specific case before the general, shall we?

If just one person was playing, they could probably beat this game in a bit more time than normal.  They would want the character to move up, and instead of pressing the 'up' button, they would type the word 'up' in chat.  It's more or less a text based adventure - a hybrid if you will.  Instead of typing 'go up' and then having the game return text that tells you what happens, 'go up' returns a picture, a graphical user interface that is simply text driven (but not exclusively text presented).

Like I said, anyone who could beat the normal Pokemon Red/Blue could beat this version, it would just take a while longer.  The problem is simply that typing 'up' is slower than pushing 'up'.

Consider the slightly more difficult case where two people play this game together.  It's not that much more complicated, and realistically progress would probably still be made.  If they were really good, they might actually even play the game as fast or faster than one person.  Two people playing the same game isn't anything new, and some people are actually quite good at it:


Watch live video from SpeedDemosArchiveSDA on TwitchTV

The people above are in the same room, though.  They're seeing the same thing and they have the same goals.  They're working in sync, and they're good.

Consider a slightly more complex situation.  Two people are playing, and one of them just wants to finish the game.  That is the goal of the first person.  A second person is playing, and that person wants to make sure the first person can't finish the game.  That is the goal of the second person.

The second person doesn't have to do as much work.  They can strategically wait to enter inputs at inopportune times.  The first player's goal is far off, and requires a long strong of correct inputs.  The second player's goal is more proximal - to make the first player fail in the moment.  It's often hard to go backward in a game; the march of progress over time is somewhat in favor of the first person.

In a game like Pokemon, the nickle and dime approach of making the character do the same thing over and over again often amounts to fighting Pokemon over and over again (or walking in circles, or consulting the great and powerful Helix; it's a bit of a mix).  Fighting with the same Pokemon over and over is nothing more than level grinding, and it makes those Pokemon stronger.  Have you ever spent one or two hours level grinding in Pokemon, only to find your Pokemon are super strong?  How about level grinding for one or two days?

I mentioned that this two player game is a simple specific case of a more general problem.  Let's make it a bit more complicated.  Now instead of just two players playing - one trying to play and one trying to stop play - you open up the floodgates to the Internets.  Anyone can join, and anyone can enter 'up' just as much as the next guy.  At the same time, anyone can enact sabotage, or make sure that it's not time to use the SS ticket.



That went on for a few days, and again, progress was made.  Think about that, for a minute, next time you wonder what the power of the Internet can do.  The hive mind is triumphant, if only in bursts, and only temporarily.  It's still no speed run, but at the same time it might be just as - if not more - impressive.

Think of the data being generated in that sidebar.  Watch the feed for a few seconds and you realize that the chat window is like a waterfall.  It is unrelenting, and constant.  It is the water flowing over the stone, knowing that - while any given moment may look like chaos - time will be the great decider, and time will rule in its favor.  It is a leaf on the wind, and you are able to watch how it soars.

Too soon?

Anyway, that was the first few days.  It was interesting enough, and then things got real.

This system, as described, was called (perhaps quite accurately) anarchy.  To move things along, democracy was enacted.  Commands in the chat were aggregated over a period of time (it varied between 10 and 20 seconds), and whatever command had the most votes in that time period was entered into the game.

This slowed things down, as checking the great Helix Stone now took 10s of seconds, but it also sped things up, because the majority of the hive mind could act without worrying about sabotage of those that might be in the minority - as long as those trying to sabotage stayed the minority.

Well, people didn't like this.  I think I like the spirit of it, but see that it takes something away.  Something chaotic, and strangely beautiful.  Some people didn't like the fact that it stopped them from being antithetical, and some people didn't like the fact that when those who were trying to sabotage got organized they were actually better at halting progress of the game (by doing things like spamming pause in the majority against all other less organized and thus more disparate commands).

This is where things really get interesting, and where they really start to produce a very beautiful decision making process.

The Helix was consulted, and a slider was created.  You can see it above the chat feed in the stream, or here:



In that image, the solid slider line is on the side of anarchy, which means the rules are as they were in the before time, the long long ago.  In order to move things back to democracy - and here is where it gets especially beautiful - the votes for 'democracy' in the sidebar must reach 80% (at one point it was 75%, and might change again) of the total vote between 'democracy' and 'anarchy'.

That is why you now see in the chat window the addition of the words 'democracy' and 'anarchy'.

In addition to being able to type 'up' and make the character go up, you can now type 'democracy' and move the slider a little bit back toward that dotted line at 80%.  To get back to anarchy from democracy the slider only needs to get back to the 50% mark (they worked out that this is the fairest based on how people were voting).

As a player, your decision tree is now substantially more complicated, whether you want to play the game or disrupt it.

Collaboration between individuals - nay, between complete strangers - is demanded in ways that make Journey look like solitaire.  (By the way, you should really play Journey)



There are clearly two camps - those that want to play the game and those that want to stop the game.  You might be able to argue that there is a third camp that just wants to watch the world burn, but they're probably just a subset of the second camp.

There are now also subgroups that think the best way to accomplish their goals is through anarchy, and those that think the best way to accomplish their goals is through democracy.  There is a constant push and pull, and some set of those people always have to be watching that slider.  If you're an anarchy player, you need to occasionally spam 'anarchy' in addition to trying to play the game (or trying to stop play).

When people talk about Big Data, well...here it is.

Think what you could do with this stream of data.  Think of what this stream of data is.

I tried timing it a bit by watching when a command enters the bottom of the chat and seeing how long it takes to get pushed off the top.  It's about 2 seconds on average during the time I was checking, and there are 17 comments on the screen at a time.

It's a lot of back of the envelope calculating, but that means that (lets err on the low side) about 8 commands are coming in every second.  This has been going on for, well, days.  It probably started out slower, as I'm currently watching it with 70,000 other people.  It has also had its peaks, as reports claim that the 100,000 mark has been broken a few times, and the 120,000 barrier at least once.  Complaints are also in that the strain from this chat stream has caused lag on other twitch streams, to the point that twitch has moved this stream its own dedicated server.

Let's say I'm seeing a peak, and shoot low.  Let's take half what I'm seeing as a low estimate of the average, and say about 4 commands come in every second.  That's 240 commands a minute.  14,400 an hour.  172,800 a day, and yes, 1.2 million a week (which is right about where we are, currently).

Patterns and randomness and data, oh my.

Is it random data?  Well, no.  Is it patterned?  Well...moreso?

Watch the chat window for, I don't know, a few seconds?  People are throwing data at you in a glorious battle of signal and noise.  Where is the signal?  What is the signal?

Better yet, what could you do with this data without context?  What could you do if you covered the left half of the screen?  Or were given this string of data in a (very large) text document?  What does this string of data represent?

A million monkeys at a million typewriters will eventually type the works of Shakespeare, sure.  The probability is finite, but negligible.  Also, you have to feed the monkeys, and they would probably get bored of their typewriters after a while.  Also, you need to replace the monkeys when they die.  Also, clean up after them.  It has a lot of assumptions built in there.

Might this stream eventually produce Shakespeare?  Well, I don't know how much 'up up down down left right left right b a' there is in King Lear (I'm guessing not much), but I'm pretty sold on the idea that they might be producing something else.

Is the data repeating?  Is some representation of pi in there?  e?  i?

In 1995, the people running the Hubble telescope had some time on their hands (I'm simplifying, sure).  They decided to do something different.  Instead of pointing the Hubble at something they could see, they pointed it a region of space that looked dark.  A tiny fraction of the sky - about 1/24,000,000th of it.  They thought nothing was there.

So they left the telescope on (again, simplifying) for about 10 days.  This is what they found when they processed the resulting images:



It's called the Hubble Deep Field.  You might say, 'wow, that's a lot of stars'.  Well, you're right, and you're wrong.  See those things that have Xs shining about them?  There are three of them, one in each of the lower center squares and one along the left side of the center.

Those are stars.  The rest of the things are galaxies (which I guess contain stars, but lots more of them).  This is what's going on in 1/24,000,000th of the sky.

In a few days the Twitch Plays Pokemon will have been on for 10 days.  I wonder if the hive mind of the Internet isn't somehow doing something similar to what the Hubble did.  Is there anything readily apparent in the chat that scrolls by pages at a time?  No.  But we weren't seeing anything in that 1/24,000,00th of the sky, either.  One quick slice of the data from the Hubble Deep Field is meaningless, and it's only when assembled into one singular image that things become apparent.

It's perhaps unfair to compare Twitch Plays Pokemon to the Hubble Deep Field, because a lot of people working on the Hubble probably did have pretty good guesses about what their attempt would produce.  It wasn't a completely blind decision, and it didn't happen by chance.

The nice thing about a telescope is that we know how it works.  The pieces of that image line up fairly nicely, and we know where each pixel belongs.  This post is certainly much more philosophical than normal, but I wonder how you might start to examine the data being spewed into this magnificent social experiment that is Twitch Plays Pokemon.  The thing that makes this different, I think, is that no one really claims to know how Twitch chat works normally, let along in this very specific and very unusual case.  It's less looking visually at a blank region of the sky and more looking at the quantum foam of a blank area of space.

Is it noise?  Is it signal?  What makes one or the other different when the signal is partially noise itself?

I also wonder if someone is keeping records of it.  Twitch?  Maybe?  The log file would have to be getting large, to be sure, but they might have the space.  One can only dream, perhaps.  Do you work at Twitch?  If you do, press the 'RECORD EVERYTHING' button now.

Anyway, watch it for a while.  Look for the signal in the noise, and wonder if there really is one.  Wonder why we as scientists and researchers didn't think of it first, and lament the fact we'd never be able to replicate it.

Such is the hive mind; and such is not the world we are slowly entering, but the world that is already around us.  It is the world where tens of thousands of strangers play Pokemon together as a competitive text-based RPG and create their own mythology along the way regarding tickets and stones and false prophets.

Maybe you're feeling a little lost, and maybe you're feeling a little overwhelmed.  If you find yourself a bit confused, just remember:

Image borrowed from @LordSevein