Critical Debugging

v r 2 video bug

v r 2 is now nearing completion, which has meant paying attention to whether it exports okay to WebGL which has meant finding out that no it does not do that. However the various bugs and problems involved have turned out to be an interesting way of thinking about and illustrating what the game itself is “about” to some extent. That and I like the idea of “critical debugging”, sounds like something pretty neat, so let’s use that as the name for what happens when bugs are bugs in ways that illustrate the critical ideas behind your game design shall we? Okay.

So, v r 2 is a game about the “reality” of objects/ideas inside a videogame made in Unity. The central premise is that there are elements of the game hidden inside cubes, and the idea is that as a player you get to think about this strange situation of these hidden objects “really being there” while you cannot see or access them at all. You can stand near to them, but that’s it. It’s not about whether or not I really put the objects in there, like some kind of practical joke – the objects are definitely in the cubes, there is really a movie playing inside a cube, there is definitely a model of a horse inside another. The point is to see what it feels like, in a way, to have that knowledge in a digital context.

Once again, I’m working with ideas from Gregor Schneider as a starting point here – Schneider often does work where he will embed something in a wall and refinish the wall such that you can’t see it, or he’ll build a wall in front of another wall, and he’s interested in the idea that there’s some weird kind of sensation or difference for a person who enters that space.

But on to bugs. The big bug I’ve been chasing for the last couple of days has to do with playing videos in WebGL. One of the cubes in v r 2 contains a surface which is playing the trailer for the game on a loop. However, Unity doesn’t actually support having a video playing on a surface of your game in WebGL (it does for standalone builds), so I had to download and work out how to use an add-on called Simple MovieTextures for Unity WebGL to enable them. But when I actually ran it, this totally bizarre thing happened where the video would play successfully on the object I had designated as its little screen (the small rectangle in the above image showing the two windows with cubes behind them), but it would also somehow play the video faintly over the top of… everything else (the kind of translucent overlay of that same image you can see above).

Putting aside the technical reasons behind this (which I don’t entirely or even partially understand), the thing I like about this bug is how perfectly it works not just as a technical glitch but as a kind of “critical bug” – it clashes not just in terms of the code but in terms of the critical ideas of the game. That is, the point of the video in the game is that you can’t see it because it’s in a cube, but it turns out that even when the video is placed inside the cube, when you approach the cube during play the video is suddenly broadcast everywhere in that semi-transparent fashion. It makes the hidden thing visible and totally breaks the formal design of the game. That’s pretty great, right?

So this idea of critical bugs (and critical debugging) is a nice one I think. As another example of this, consider that another one of the cubes contains a tiny version of your avatar which is also controlled by your input, moving as you move. It’s meant to stay imprisoned inside the cube, obviously, so that you never see it and it just moves around in the darkness, but because of the way surfaces in Unity work, the inside of a cube isn’t actually solid. So what really happens that as you move around the little avatar immediately exits the cube and roams around the gallery space for you to see – again, defeating the critical intent. Things don’t seem to want to stay hidden!

Anyway, next time you run into a bug (either in your own game or someone else), don’t write it down to just being a beature… it might actually require some critical debugging!

25 May 2016
← next words previous words →