While I do enjoy video games, and many happy hours of my youth were spent with my eyes glued to the TV, absorbed in the attempt to run, jump and shoot my way through one NES game or another, being the responsible adult I am today means that my game time is limited. Occasionally I’ll pick up the odd retro game that I never got a chance to play as a kid. Sometimes a modern puzzle game will catch my eye, and I still enjoy a point-and-click adventure when I can find one, a genre that is far past its prime but for which there are still a few developers making amazing games.
In this past year, however, I decided to give the puzzle game The Witness a try. It is not a new game, having been originally released in 2016, but its unique look piqued my interest, so I went ahead and bought it, and after many, mostly enjoyable, occasionally frustrating hours of puzzle-solving, I made my way to the end.
This game left an impression on me. I’m going to talk about that impression, but first I want to take a detour and talk a bit about a guy named Christopher Alexander (1936-2022).
This is a name you may have come across if you have worked in the software industry for any significant length of time. In particular, you might have heard of him in relation to design patterns. If you are not familiar with the term, design patterns are solutions to certain recurring design problems in software engineering that are given a name and a description so that they can be shared among developers. If you are familiar with it, then you are likely thinking about singletons, listeners, observers and the rest of the design pattern herd.
Although Alexander’s work is the inspiration for the whole field of software design patterns, he himself did not write code. Rather, he was an architect with a unique vision of his field, a vision that he shared in a number of books written over the course of his life. Though he wrote about the design of buildings and towns rather than software, he discusses design at an abstract enough level to be thought-provoking to anyone who is involved in solving design problems in any medium.
The idea of design patterns comes specifically from a book titled A Pattern Language, first published in 1977, in which he puts forward his concept of the “pattern language”, a set of solutions to architectural problems that provides a common vocabulary that can be shared among architects. The patterns in the language are meant to be abstract enough to be put to any number of specific uses while never being reproduced in exactly the same way. While this idea has had a profound impact on the world of software architecture, right now I want now to look at one of his earlier and less widely-read works, titled Notes on the Synthesis of Form and first published in 1964.
This book consists of two parts, the first of which lays out a number of ideas about design, while the second is his attempt to come up with with a formal method for doing design based on set theoretic concepts. It is the first part that I am concerned with here, specifically his discussion of the relationship between Form and Context in design. His main contention on this subject can be broken down as follows:
- Design is a matter of creating a form that fits a context.
- The form created for a specific context can be a better or worse fit for that context.
- The degree of fit can only be understood negatively, in the sense that you cannot enumerate all of the things that would make a good fit between form and context, which are essentially infinite, but you can enumerate the set of things that would make a poor fit.
- If the context was fully known, there would be no design problem, as the form could be understood directly from the description of the context that it has to fit within. Instead, the context must be discovered at the same time as the form.
This conception of design as the fit between form and context has not been taken up by the software world the same way pattern languages have, but I think that this is another idea worth having in one’s conceptual arsenal. The last point is especially interesting. What does this mean?
I think that anyone who has spent a considerable amount of time designing software will recognize this challenge. You know what you want your program to do, so you have an idea of the context that its form, the implementation in code, must fit. But it is never a matter of simply typing out a solution that works from a preconceived idea of what the program should look like. At every step of the process, you are thinking about the best way to achieve that result, in terms of the technologies you use, the data structures, classes and methods you define, and the code you write line by line. All of these decisions are constrained by the context that the form of the program must fit, and you only come to understand those constraints through the process of making those decisions, running the code and observing the results.
There is no way to simply think through all of the possible combinations of design decisions and the whole space of possible solutions until you come up with a comprehensive design. Each line of code you write must be iteratively run, reconsidered and refactored until you have something that is at least close enough to doing what you want it to that you can call it done. The context of any software project of any significant size is always amorphous and shifting, requiring you to respond to changes with new solutions. In a sense it is a puzzle where the pieces and even the rules for putting them together are always changing.
That is all very interesting, but doesn’t the title say “game review,” not “book review?” It does, but I bring up this obscure book first because I see a correspondence between Alexander’s discussion of form and context and the puzzles in The Witness.
Before I start, a disclaimer: there is no way to write about this game without spoilers of some kind; not that I am going to reveal the solutions to any of the puzzles, but because this is a game about the process of discovering, anything I mention will deprive you of the experience of finding it out for ourself.
The Witness is a unique game, in its visual style and in its gameplay. The gameplay is based on a simple procedure: tracing a path from one end of a grid of lines to another. This simple mechanic is the substrate upon which a wide variety of puzzles are built, each a variation on the basic theme. As you move from one grid-based puzzle to the next, you are required to think a little differently about each one, to break down the problem of creating an unbroken line between endpoints in a slightly different way in order to come up with the solution that fits the unique constraints of that particular instance.
Part of what makes it an interesting game is the amount of variation, and variation on several levels. First you have to figure out the type of puzzle you are looking at: there are several varieties, each with different rules. Then you have to figure out the solution for a specific puzzle. Next, you run into a puzzle that combines two or more puzzle types, such that you not only have to apply the rules for each, you have to think about how the rules interact with each other. Further, you will run into puzzles that throw a curve-ball of some kind, such that you have to take into account both the rules of the puzzle and the exception that this particular instance requires.
And this is where Alexander’s ideas about design are relevant: the puzzles in The Witness are all about form and context. The context determines what forms are possible, the form is the solution that uniquely satisfies the constraints of the context. The context consists of the set of possible paths that could be traced through any one of the panels that you encounter as you journey across the island, along with a set of constraints imposed by the rules of each type of puzzle. Each puzzle you encounter requires you to determine the form that fits the context of that puzzle, and determining the solution requires you to discover the context of that specific puzzle, and therefore the form that fits it, by a process of iterative trial and error, of experimenting and testing, to in a sense chisel out the form by the process of eliminating all the possible forms that appear to fit but do not.
The Witness has a heavy Myst vibe. Both games have you stranded on a deserted, mysterious island and require you to solve a series of puzzles to progress. But while Myst includes a narrative element, with at least some plot and interaction with other characters, The Witness is almost a pure puzzle game.
The narrative elements are there, but are very subdued: while you make your way around the island, you encounter what appears to be people who have been petrified, turned to stone while in the middle of various activities. There are various drawings and artifacts to be found that hint at a bigger picture, but none of these, at least that I could tell, are required for progress through the game.
This is a completely solipsistic world, in which the only voices you hear are in the form of recordings that you discover in various spots on the island, and—note that we are entering spoiler territory—the videos that you can view once you have discovered the movie screen and found the keys that unlock them. But even these elements are not the hints that you might expect them to be, logs left by inhabitants of the island that reveal its mysteries. Instead, they are almost non-diegetic elements, only related to the game itself in the loosest sense of being vaguely about the same thing that the game is about. Whatever hints they supply are only to the riddles of existence, not to finding your way off of the island. But then again, is the goal to get off the island? Even that is unclear.
This is a game with happens in two mostly orthogonal dimensions: there is the lush, varied scenery of the island that you can explore, and the geometric world of the myriad grids that furnish the puzzles. The two worlds do interact, in that solving a series of puzzles can have some affect on the environment, such as opening up some area that was previously inaccessible to the player. You can imagine a similar game with all of the same puzzles, but instead of being embedded within the world of the island, they are simply displayed in one isolated screen after another. The combination of the two dimensions really works for this game, as the confines of the grids do not become claustrophobic because of the ability to wander freely about the island between solving puzzles.
I’ve said that this is a game that is all about discovering things for yourself, but let me be honest and admit that I was not above dipping into a hint here or there, when I got frustratingly stuck. I didn’t resort to looking up any solutions, but I definitely took advantage of hints, which generally did the trick by helping me break out of my current frame of mind and look for a clue elsewhere.
As mentioned above, I’m not going to spoil any of the puzzles, but I will give some general preparatory advice: if the solution to a puzzle isn’t obvious, then take a step back and look for a clue somewhere that you didn’t expect. If you don’t see anything on the puzzle, maybe the solution is in the environment; if it is not visible then maybe it is audible. Many of the puzzles can be done in your head, but be prepared with pencil and paper to write things down when your head can’t fit it all in.
The puzzles are sophisticated enough that you should be ready to expect to treat some of them as you would a difficult programming problem; you will need to be prepared to go through the slow, painstaking process of building up a mental model of what is going on through many iterations of trial and error, until finally you understand it well enough that the solution becomes clear.
The game’s primary designer and programmer, Jonathan Blow, is a provocative and opinionated individual who has some interesting things to say about games, design and life, although he can come off as a bit of a know-it-all. Having listened to a number of interviews with him, it is interesting to hear that he looks at game design as an exploration of ideas. Regarding The Witness, I have heard him describing the theme of the game as being about the process of discovery, of going from incomprehension to understanding. This is a very abstract theme for a game, but that really is a good description of the experience. You come across something you haven’t encountered before, and before you can make further progress you must make the effort to understand how this puzzle works, and maybe how it works differently from all of the puzzles you have seen so far. The knowledge you gain by solving that puzzle allows you to tackle a whole new set of similar puzzles.
There are a number of parallels that you can make between a puzzle game like this and the types of puzzles that programmers solve in the process of creating software. In the game, you will be moving along at a steady pace, knocking down one puzzle after another, and then you hit that one that keeps you stumped for hours. Often the breakthrough comes when you realize that you have been thinking about the problem the wrong way.
Sometimes this game has the feel of the less fun parts of programming, when you have been staring at the same code for hours, running through every variation you can think of without any progress, the kind that you would really rather just be done with so that you can move on to the next challenge. In a regular programming job this is just how it is, you can’t expect writing code to be non-stop fun, but when you run into the same situation in a game, when it starts becoming a tedious matter of trying out everything you can think of, just hoping to hit on a solution, that is when you get the itch to take a peak at a walkthrough. But, just as you feel a proportional sense of release and accomplishment when solving a programming conundrum to the amount of effort it took, so it is when you finally crack that seemingly impossible puzzle in The Witness.
There are drawbacks to such wide variation between puzzles. They require the player to use multiple modalities, and for some, not all of these modalities are as readily accessible. There are puzzles that require you to filter out noise while you listen to a melody or discern visual differences that require good eyesight and color vision. If you do run across a puzzle that just doesn’t work for you, when you recognize that it is asking something of you that you know is unreasonable, that is a situation where it is reasonable to go ahead and just look up the answer.
And of course playing games as an adult means having to consider how much time you want to invest into a game versus any other activity that could be occupying your time and attention. This meant that I did not try too hard to tease out every secret from the game, and looking at a few Youtube videos I can see that there are whole sections that I never encountered in my play-through. I can definitely recommend The Witness to puzzle games fans, but I will say that by the end of it, I was ready to not see another one of those grids for a while.