Infinifriends

10 February 2014

Time to write up something that’s been sitting around on various disks for a while.

Many months ago, I saw Plotagon. It’s best explained as Xtranormal by way of The Sims: reasonable resolution, 3D-animated videos based on scripts; a desktop tool to generate them, and a site to host them.

Most interestingly, it’s scripted with what actually looks like movie scripts, and that got me thinking: what would it look like to feed it with procedurally generated scripts? Could you make the machine make videos? All I knew was two things:

  1. I know, for good or ill, how Markov chains work.
  2. All the scripts for Friends are transcribed on the internet.

After all, given Plotagon’s focus on semi-realistic forms, I decided that it was best suited to the great American artform of the 20th century: the sitcom.

The Infinite Friends Machine was born.

The machines does a few simple things. First, it scrapes Friends transcripts. For now, it works for most of Series 1. It then parses those scripts and chops them up into episodes, scenes, and lines attributed to individual characters. It also strips out some directions. Then, using all that, it offers ways to generate new scripts.

Markov Chains, as Leonard has frequently pointed out, are not always the best way of generating text alone, especially when the corpus you’re working from isn’t particularly consistent. He is, of course, right. Still, I enjoy the mental leap readers make in order to make generative prose actually make sense, and for this project, I mainly wanted to get to scripts as fast as I could.

Still, I didn’t want to hamper their relative crudeness, so I tried to skew things in their favour. To that end, the Infinite Friends Machine generates scripts by copying the structure of existing scripts. When it makes a new “episode”:

  1. it finds the scenes that are in the original episode it’s being copied from
  2. for each scene, it finds each line – who says a line at what point in the episode
  3. then, it generates a new line for the speaking character from their own corpus. That is: Joey only ever things derived from Everything Joey Has Ever Said. What this means is that the main cast have quite diverse things they might say, and the bit players pretty much only say the same thing. Gunther is quite boring.

That’s it. A few seconds later, it spits out a nonsensical episodes of friends. Here’s a scene:

Friends script
and this is a full episode.

The machine isn’t online because it’s quite crude and processor-intensive, but you can get at the sourcecode from Github.

Anyhow: machine to generate scripts. Next stage: get them into Plotagon.

This was where my troubles began. For starters, despite having a nice format for scripts, Plotagon really demands you enter them via its UI – you can’t paste a big block of text in, you have to enter it by hand. Painful.

Next: Plotagon only lets scenes have two characters in. I decided to make a single scene – the tag on the end of the episode. But this turned into many scenes in Plotagon, as four people in an apartment was a bit much for it. I had to keep track of who was where, who was talking to whom at any point.

And then I had to deal with the unfortunate truth: Plotagon is horrible. I mean, Xtranormal used its non-realistic avatars and computer-voices to comic extent. By contrast, here we had disappointing voice acting with clunky visuals. Also, I had to add some ‘acting’. This largely consisted of making Chandler say everything whilst doing the (crazy) emote, to really capture that Series 1 Matthew Perry vibe.

A quick sting later, and Infinifriends S1E1 existed:

It is not exactly high art.

Just one scene took long enough, and I think, proved my point to an extent, but probably can’t be improved on for now. I’m not sure if I’ll ever return to the Infinite Friends Machine, but it was an entertaining enough exercise, and the video rendition is probably worth it for the cringe factor alone.

Theme tune. Credits. Tune in next time.

  • Yes, all of this. Especially:

    "10) be encouraged to think of the arts as including or involving investigation, invention, discovery, play and co-operation and that these happen both within the actual making and doing but also in the talk, commentary and critical dialogue that goes on around the activity itself."

    And: this applies not just to the arts but all forms of craft, making, and creating. To be honest, this applies so much to that whole Year Of Code nonsense – much more so than the abstract utility of things. "Code is neither superior nor inferior to anything else that goes on in schools". Yep, that. I am very fond of Michael Rosen; by which, I mean, I admire him a great deal.

  • And, re: my previous, this. The purpose of higher, further, *any* education, shouldn't be to learn a skill to be put to direct use; if anything, it should be the opposite of that – to luxuriate in a subject, just as the girl studying Norse Literature was, because we don't just learn facts. We learn ways of thinking, we learn more holistically, and a richer education benefits everyone: students, children, employers, peers. (As usual: I will defend my humanities degree to the hilt).
  • "So the Year of Code isn’t about doing fun stuff with JavaScript, Python and Ruby. It’s about building another element of a society where those that don’t work don’t eat, and where the rewards of work are skewed ever further towards a tiny minority at the top of the pile… It’s about creating childhoods overshadowed by adult anxieties about work and economic survival. It’s about replacing the broad expanse of education – with all the exploration, creativity and genuine freedom that implies – with the narrow tunnel of schooling. It’s training children to have “relevant” employer-friendly skills and the right attitudes and politics to go with them." Yeah, that. I have no problem with the idea of teaching code, but I don't care for the idea that you're teaching code so that people can do code for a living. Education is about more than a direct translation of rote learning to skills for business; it should be about skills for the soul. for the well-rounded adult yet-to-be. I hadn't twigged that the thing that always rankled with me was the 'neoliberal' part.

First Read / Second Read

30 January 2014

Drinking a beer having finished playing records at the last Wild Rumpus, I got talking to Cara. She asked me a difficult question. Later, she would write this up in her embedded look at the London indie scene, and make me sound more profound than I think I did. It’s a very good article; you should go and read it.

Still, with the advantage of time, I wanted to write down the two things I said to her for posterity, because they’re worth bearing in mind, and I want to remember them for myself.

Disclaimer: like so many of the so-called “smart things” I’ve ever said, this is basically a Matt Jones paraphrase.

Jones once explained, talking in the studio one day, a theory that had come from car design: First Read / Second Read.

What I remember him saying:

to design a really memorable car, you need a strong first read. A really strong first read. That’s the single shape, barely a single line that you remember at a glance. Like this:

Beetle1

You know what car I’m showing you already.

But: it’s not enough to have a strong first read. Then, when you’re closer, or double-taking, you need a strong second-read: that detail echoed, firming up the original shape, but making the coherence clear:

Beetle2

And then, on the third read, once you’ve encompassed the detail therein, you still need something to satisfy the eye: details to take in, subtleties and shapes.

Beetle3

The Beetle is an obvious way of showing this, but it really works: it’s not just that strong first read that makes the Beetle so beautiful; it’s the strong first, second, and third reads all co-existing at once that make it work quite so well. Detail that you never get sucked into won’t work; a striking first impression that goes nowhere won’t work.

And Jones, astute as ever, would point out this applied to many forms of design: often, getting the strong first read would be hard, sucking someone into the detail we’d made – but sometimes, you’d also have to focus on backing up that first read with detail.

(Fashion does this well, for instance – the emphasis on understanding form often coming from a silhouette, and then the eye taking in more than just the outline.)

I think the best games do this. Cara mentioned the FPS example, but to be frank, it applies to anything: card games; beat-em-ups; sports; real-time-strategy. The first read has to be clear, broad: grokkable, and also aesthetically enticing. Once enticed, you need that detail to repeat, to be fractal, to be backed up by substance. And then, as you delve deeper, into expertise and experience, there’s still depth to reward you, but it never clashes against that first read you had, the thing that sucked you in.

As I write that, I realise: it’s not so far from MDA. But I’m aware I can get a bit hardline about MDA, and actually, first/second/third read speaks to everything: that moment you discover depth in the aesthetics of a game that echoes the surface; or similarly, a first read of why a mechanic is fun (‘we’re all sharing the same resources, but have our own goals!‘).

I suppose the real point is: designing for depth is not about neglecting the surface. It’s about leading the player on that journey to expertise, satisfying them at all turns of the path. It’s no surprise my favourite beat-em-ups are both simple on the surface and the most beautiful. It’s no surprise my favourite card games have the simplest surface rules, but a deep path to expertise, usually based on inter-personal interactions – fakeouts, Yomi.

I used to say that I really liked the idea of being able to recognise a game at 20ft – you see someone with a phone on the Tube and you just know that they’re playing something different that far away. Is it through the aesthetic? Is it through how they interact? I don’t know – it doesn’t matter. What matters is that you can read it that far away. And then, you get closer, and you want to read more detail: not just clearer graphics, but also clearer interactions, clearer mechanics. We start to suck players in when they see a screen in a friend’s house and say “What’s that?” And that’s the real challenge, I reckon: designing that path in.

There’s another side to this question though.

The original question Cara asked me, standing in BL-NK, was “As a games designer, what do you want players to do?

I thought for a bit, and said: well, follow the rules, of course. Play the game as intended, and enjoy it. Then, I realised that was the wrong answer. So I correct course.

Because what I’ve learned about some of the best games I’ve worked on, designed, or played, was that they design well for failure states. I’ve designed games that were fun if you played them right, but terrible if you didn’t get the rules.

They were not good games.

By contrast, games that are great if you play as the designer intended – but also great if you play them your way, if you get lost in the components and the systems and recompose them in some other form that still excites and entertains you: well, that’s good too.

Good games are resilient. This is why people sometimes have house rules for Mario Kart, for Catan. This is why people play in large sandbox games without completing missions. This is why RPG GMs will throw the rulebook out to tell a better story.

So I said that, first of all – that I’d like to design for resilience.

And then I added an addendum: whilst it’d be good if games were resilient to misinterpretation, to being played with, the best games afford that but you rarely go down that path, because they lead you on this great journey, from surface read to deep expertise (and frequently back out again, as you show a new friend the surface of a favourite game).

And I told a story about the Volkswagen Beetle.

  • "At a coffee shop near his office, Kazemi says he feels about his bots the way he imagines parents must feel about their children. “I’ve created these things, and they’re kind of separate from me now, and so I do feel kind of proud of them,” he says. “Every morning I wake up and I look at the last two hours of TwoHeadlines, and it just gets me every time.”" Yup. That.
  • "Under the [Do What You Love] credo, labor that is done out of motives or needs other than love (which is, in fact, most labor) is not only demeaned but erased. As in Jobs’ Stanford speech, unlovable but socially necessary work is banished from the spectrum of consciousness altogether." This is astute and good, on what happens when work is divided into either "things you love anyway" or "labor that we will banish from view" – and the enabling forces that let someone Do What They Love.
  • "…we though it would be it would be interesting to ask the students to deconstruct a logic prevalent in the games industry (F2P) and to then apply that logic to a real-world system (in this case, a London transport) service." I loved this when Kars first told me about the brief, and I love seeing it again now.
  • Great article from Jeff Minter on the journey from 70s vector art, 80s vector games, through to the (excellent) Tempest 2000 – including some great stuff on embracing the Jaguar's chips and instructions to make beautiful weirdness – and onwards through Nuon and Space Giraffe to TxK on the Vita. A really lovely balance in the article of coding voodoo, focusing on gameplay, and always wanting to make things both weirder and prettier. (Incidentally: I loved T2K when I first played it, but playing an original Tempest cab at Ground Kontrol was a special moment – striking how much a spinner changes that game). Definitely recommended.
  • "I was hoping that Simon Starling [would engage with CGI as a medium creatively]. But he didn't – he used it _invisibly_. CGI is always used invisibly. You're not supposed to see the seams. It's supposed to appear like it's not CGI in order to fool the eye and boggle the mind. Sadly (for me and probably no-one else) CGI was again denied the opportunity to do anything more than _facilitate_." I enjoyed Starling's piece, but this is astute and fair criticism. (I'm rather taken with Alan Warburton following his Spherical Harmonics at the Photographer's Gallery. All of CGWTF is very good.)