Best Chess and “Thinking…” (“Forever”)

Best Chess, thinking

Another thing that’s been interesting about making Best Chess has been trying to get the ‘right’ user-interface in terms of information. The actual interactive side is fine, of course – it’s just a chess-board and the player can presumably intuit that they draw a piece to a position to play their move. Fortunately the excellent libraries chess.js and chessboard.js take care of literally all of this, which is pretty amazing. No way I would have made this game without them.

As you of course know, Best Chess involves the human player making the first move (as white), and then the computer player solving chess from that position (as black). That is, black examines every possible move and game from the position and evaluates every outcome to determine whether, through perfect play, the game results in a draw, a win, or a loss. The point of the game is (I suppose?) to allow the player to think about the enormity of this as a task, the plucky character of their computer (or phone!) for even trying, the tragedy of its doomed effort, and so on. It’s very emotional.

But how do you convey that the game is “really solving chess”? Well, for one thing you could just have the player do the old ‘View Source’ on the page to see the JavaScript that does do this, but that’s not really going to be a big crowd-pleaser and many people won’t be able to interpret the code. And anyway, the point is really, again, to convey the aesthetics of a computer solving chess rather than to prove it’s happening.

The ‘solution’ I found isn’t especially interesting, though – it’s just interesting to me that this did require thought at all, that you need to think about how to convey a particular tone, even with something as dry as a depth-first tree search of chess! In the end I combined three different signals:

Just say it outright. For one thing, the game just literally tells the player ‘Black is evaluating every possible game from this position.’ Pretty basic stuff, but usefully gets the point across. I did have language focusing more on the word ‘solving’, but in the end that was a little more abstract and less effective, I thought.
“Thinking…” In chess games you often can tell that the AI opponent is ‘thinking’ because it just tells you or cycles some basic animation. In tribute to that, Best Chess does a classic ‘animated elipsis’ to indicate thought. This also helps to set up and contextualise the third part…
Show some inner workings. As a way of compromising between showing the actual code and showing nothing, the game displays the current moves in the current game its evaluating. Just the first move (to contextualise and link the evaluation to the actual board position visible) and then the latest four moves, which cycle (fairly) rapidly as the depth-first search proceeds and give some sense of actual calculation and activity. (I tried a bunch of ways of representing moves from the game and this one feels the best.)

As a final note, when I’ve put the question of how to represent that the game is ‘thinking’ to other people, they’ve generally quite reasonably suggested various visualisation techniques, from heat-mapping to animated ghost pieces appearing on the board as evaluation proceeds. The reason I didn’t want to do this in the end is that I think there’s something important about the starkness of the board the way it is, with a single move played, waiting (forever, effectively) for the next. It has rhetorical power or something.

There, more words about a chess game. Who’d have thunk it?

Trying (and Failing) Perfectly (at Chess)


When I’ve talked and thought about Let’s Play: Ancient Greek Punishment in the past, one of the elements I’ve always enjoyed and dwelled on is its relationship to time and computation. Specifically, I like the way the code itself of those small games enacts the punishments ‘accurately’, in that they last forever. Your computer, in playing them, is willing to let you try to push Sisyphus’ boulder up the hill indefinitely.

Over the last few days I’ve been making something related, but with chess. Specifically, I’m making a game, Best Chess, which is just, well, a game of chess, except that your opponent plays perfectly. Or would.

It goes like this: you are presented with a standard chessboard and invited to make your first move. You make your move (whatever it is, but say ‘1. e4′). Then the computer opponent (playing as black) proceeds to solve chess from that position by exhaustive search. That is, it examines every possible outcome of every possible game ensuing from your first move. Once it has done that it will either make a move of its own (because it has established that with perfect play it will win no matter what), offer you a draw (because it has established that with perfect play there will be a draw), or resign (because it has established that with perfect play you will win no matter what). That’s it.

But of course that’s not it. For one thing, black will never move its piece, because solving chess in this way takes quite a while. There are quite a few games to examine from the starting position – people say it’s about 10^120 (also known as the Shannon Number). That’s so many that it outnumbers the atoms in the atoms in the observable universe, for example. So your if you play Best Chess on your iPhone, say, it’s not realistically going to be able to calculate all those games and then respond. Nobody is.

But the magical tension in there, for me, is that your iPhone will still be doing it nonetheless – your iPhone would be engaged in solving chess in all earnestness. So you would then be holding a computer in your hand that is solving chess. That’s interesting and strange. It seems simultaneously hopeless (and a bit sweet somehow) and extraordinarily powerful. It both is and is not performing a momentous act of computation.

I like that.


When is an international sporting event symbolising European unity and goodwill not an international sporting event symbolising European unity and goodwill?! When you’ve been arbitrarily detained by the Azerbaijan government!

Play REAL BAKU 2015 in your web browser (HTML5, mobile-friendly)



REAL BAKU 2015 was developed for FIDH, the International Federation for Human Rights, to raise awareness of arbitrary detentions in Azerbaijan leading up to the 1st European Games, essentially Europe’s version of the Olympics. It was created in collaboration with Agence Babel in Paris, France. REAL BAKU 2015 was written in JavaScript/HTML5 using the Phaser game framework. Sounds were created in bfxr the opening jingle was created in Bosca Ceoil.

You can read my writing about REAL BAKU 2015 (if there is any) on my blog, see the official FIDH press release, or even read the REAL BAKU 2015 press kit. REAL BAKU 2015 has been covered by Kill Screen, Boing Boing’s Offworld, Venture Beat, Public Radio of ArmeniaBusiness Insider, OujevipoWarp Door, and Destructoid.


The Stolen Art Gallery

The decrepit chestnut strikes back! Games! Art! It’s an art gallery so it’s art! But there’s no art in it so it isn’t! But maybe that’s art so it is! But it’s a videogame so it isn’t! But everything is different now so it is!

Play The Stolen Art Gallery in your browser (Unity plugin, broken for Chrome)
Download The Stolen Art Gallery for Mac OS X (22MB zip file)
Download The Stolen Art Gallery for Windows (20MB zip file)

The Stolen Art Gallery

The Stolen Art Gallery was inspired by Ziv Schneider‘s The Museum of Stolen Art. The modelling was done in SketchUp and the game is constructed in Unity 5 and uses First Person Drifter by Ben Esposito. The art in the gallery is drawn from the Federal Bureau of Investigation’s National Stolen Art File.

You can read my writing about The Stolen Art Gallery on my blog, or even read the The Stolen Art Gallery press kit. The Stolen Art Gallery was covered on Kill Screen and Warp Door.

But Is It Stolen Art?

The Stolen Art Gallery

(I’m still really struggling to get my head back into the writing-game at the moment, but here’s another throw of the dice.)

The Stolen Art Gallery will be out in roughly a day so I thought I should attempt to write a little more about it here so that there are some of my own words on the matter on the internet. Here I thought I would mostly address the general ideas of find interesting about it as a project.

So, I made The Stolen Art Gallery as a direct reaction to hearing about (and seeing the promotional video for) The Museum of Stolen Art by Ziv Schneider. Schneider’s project is quite interesting – it’s a virtual space in which you can go and see artworks that have been stolen as images rendered into a 3D museum. The stated purpose is to make these works accessible and even to assist in the locating of these works by raising awareness. It’s quite a noble idea and I’m supportive of it. But my other reaction was, perhaps unsurprisingly, a desire to subvert or almost “correct” the idea of displaying stolen art. So I wanted to make a version in which you can go to a virtual space that presents stolen art, but the art isn’t there – because it’s been stolen. Hence The Stolen Art Gallery (a smaller and more manageable space).

The main thing I like about this is that The Stolen Art Gallery exists as this “accessible” place to see this stolen art and, like the Museum of Stolen Art, could “show you” the images of the stolen art, but then declines to do so. I think that’s amusing, of course, but I think it’s also fun and interesting to think about this whole idea of the internet’s purpose being to make every accessible and, in particular, the idea that if I show you a JPEG of a stolen artwork I’m somehow showing you the artwork itself or even a remote “version” of it. So in a way I end up feeling like The Stolen Art Gallery has an honesty to it – what these stolen artworks look like, for us, is “nothing” – because we can’t see them, and their absence is something that speaks more powerfully, in some ways, than an image of them could.

Along with that sort of philosophical bent on technology and access, I was of course very interesting in creating a manageable 3D space in Unity, which isn’t something I’ve ever done before. In particular I like the idea of creating 3D spaces that don’t have a kind of entertainment-utility beyond the actual space (and contents). That is, it’s not what you “do” in The Stolen Art Gallery that’s meant to be interesting (beyond perceiving the space) – it’s not that you rocket-jump through the windows or trigger a question in front of a plinth, etc. So there’s also this idea of returning 3D space to being just that: a space that you can be in and that’s that.

So that’s a few words on The Stolen Art Gallery from its fatigued architect anyway. Night.

Oh Brave New Dimension, That Has Such Lighting In It

Such Cubes

Along with failing to write blog posts this week or so I’ve been building my first Unity project, The Stolen Art Gallery. The general idea was to choose something really simple that I could maybe handle as a first go at 3D, so I went with: a room with some stuff in it. Doesn’t get much more simple than that, right?


In fact just making that room was quite a lot of effort for me. Stepping into the third dimension has been a strange experience. I’m not quite up to writing something coherent about it, though, so here are some quotes from my ongoing development notes while I made the game, skewed toward “life with 3D”.

“Just a small dealer gallery in Unity with labels indicated stolen artworks on the walls and that’s about it.”

“General rookie architecture stuff which has been really quite satisfying. So I’m happy with how it’s going. It’s conceivable I could finish it tomorrow”

“I had to tint the labels greenish blue in order to be able to see them on the walls because of the behaviour of light in the world and specifically the concept of materials. That is, because the labels were the same as the wall (white “material”) they lit in exactly the same way and thus were exactly the same colour. The things we take for granted in day to day life, that things are of different materials and so reflect light in different ways (even if they’re the same “colour”). The literal-mindedness of a computer is so weird here… it’s both “fair” and insane to have to think about things like this.”

“Oh my GOD I am annoyed with this game by now. Having huge difficulties in lighting the scene to be legible and not a complete and utter mess. It looks like I might have to slowly rebuild everything from scratch.”

“Now it’s the next morning and I MIGHT have got a working version by restarting the entire process? I’m not clear on what has changed though and it feels tenuous, like the whole thing could just collapse at a moment’s notice.”

“It’s surreal how some things that should be hard are easy: I can raise a wall in a moment, I can spin the world on its axis, examine it from afar or up close, install a pane of glass instantly, “wire up lights” with a click, etc. But then things that should be easy are hard: finding a decent bulb for those lights, getting it to cast light “nicely”, getting my art labels to stick to the wall, knowing in advance what colour those walls are going to be.”

“Just had a problem where I was constantly getting weird fucking shadows. After much fiddling it turned out that if I rotated the specific label object it kind of fixed it? It only affected a select few of the labels and seemed to correspond to when I’d been rotating the labels around the gallery. But I did that in SketchUp. Weird. Then I changed some lighting stuff and it went haywire yet again (on every label) which I then “fixed” with a more high quality bake? I don’t really get it. Maybe I’ll understand light a bit more next time.”

Maybe I’ll understand light a bit more next time. Yeah, maybe.


Let’s Ask: How Many People Played: Let’s Play: The Shining: ?

Bah bah bah bah bah bah bah bah bah

Like many (most?) people who Make Things, I spend a fairly good amount of time fretting or at least watching how many people look at (play) the things I Make. So obviously I have webstats (kind of amateurishly maintained) on my various games, going back pretty much all the way to the beginning (with a couple of exceptions of games hosted by other people, notably Jostle Bastard and Jostle Parent hosted on Unwinnable).

A big question I often ask myself is the unanswerable: how many plays of one of my games counts as good??? But then I also don’t really report on how many people actually played them, so I’m not exactly helping anyone else get a lay of the land. So in the interests of “honesty” or whatever it is, I thought I’d at least show you how many people have played Let’s Play: The Shining so far. The numbers are trending down at this point so, barring an uptick, this is pretty representative of the “first flush” of interest in the game when people wrote about and tweeted it etc. Maybe someone else will pick it up and it will surge again, but that doesn’t usually happen (in my personal experience).

So since I released it on the 21st of April, roughly eight days ago, Let’s Play: The Shining has been played by 18,617 “unique” people. Bearing in mind that what “unique” means is defined in terms of timing and IP addresses and so on and may not reflect a literal thing. But let’s say that’s “how many people” have (ever) played Let’s Play: The Shining. More than 18,000 people. It’s a lot. Is it? This is what I don’t know. Depends on what you mean.

To me, just in the abstract, it’s a lot of people. They could populate a decent-sized town where “people who have played (or at least glanced at) Let’s Play: The Shining” live, for instance – they would all have that in common as they went about their lives as bakers, dentists, accountants, game developers, etc. It’s also “a lot” in the history of my games. It isn’t the most by a long, long shot, but in terms of opening spike it’s probably in the top five I think, and quite a lot more than many, many of my games get played.

As for how much other web games get played? I just don’t know. Obviously on websites like GameJolt, say, or Newgrounds, we can see that many games are played tens or hundreds of thousands of times, even millions, so Let’s Play: The Shining isn’t in that “league”. But then it’s also “not really a game” (or whatever) and pretty niche, and its “discoverability” is limited to me tweeting/posting and the kindness of journalists and tweeters passing it around.

So I don’t have an answer to whether it’s “a lot” except to say that to me it is, that I’m glad that many people have had a look at it, that I’m happy with that number. Frankly, on a good day, when I’m not being megalomaniacal, I’m kind of astounded that even 100 people might play something I made. That’s still so many people!

As a last amusement, the average time spent with the game is roughly four and a quarter minutes. So those roughly 18,000 people spent a total of 76,500 minutes on my little game. Which is 1275 hours, or 53.125 days. Almost two months of human time.

The internet. The more you know.