Tag Archives: etc

Tex Murphy: Mean Streets

Box cover from Mean Streets

Box cover from Mean Streets

I played the first game in the Tex Murphy series today, Mean Streets. I didn’t expect much and that’s just what I got. I played the third and fifth of the five games way back when and I loved them. The second one had something of a good reputation, but not the first. Now, I understand why.

Many good ideas, but…

There’s actually a lot of good stuff in Mean Streets. A lot of good stuff. And that’s part of the problem. Many of the ideas are good but:

  • aren’t finished,
  • don’t work well together,
  • don’t belong in this game and
  • while not bad get in the way of gameplay rather than improve it

Still, many of these good ideas are very typical of the early days of video game design, particularly of narrative-based video game design: too much freedom was given to the player, which requires more meaningful content that can or even should be produced.

Let’s look at this in more detail.

Mean Streets had a fully-explorable 3D world in 1989

That, in itself, is impressive. It’s similar to L.A. Noire in concept: the player gets to move at will throughout a city. At specific areas, there are items to interact with. In L.A. Noire, I was impressed the by amount of work that had gone into that system, but I didn’t think it was particularly fun. In Mean Streets, the fact the developers got it to work at all is extremely impressive, but it’s a huge burden on the player and not fun at all. In the end, the player is regularly given four-digit “navigation codes” to be entered in an autopilot system that clumsily navigates through the 3D city.

This system just adds unnecessary steps to get to a destination, when just selecting them from a list would have been much more comfortable. Furthermore, the model for the city is ridiculously simple. It’s just a few shapes on a flat map with in extremely low resolution seen from a tiny viewport. Again, the concept was daring and it’s impressive that it worked technically, but the actual gameplay of it brings nothing but frustration. It takes a lot of time to get from one place to the next, and most of the time, there’s nothing to do but watch very slow movement within an environment and a few numbers changing on the screen.

In the story, the 3D world is navigated with a 3D car. It is possible to fly the car manually and go anywhere. But the controls are so awkward and complex that it is in fact almost impossible to get anywhere by doing that. A fully-polished flight simulator in a rich, detailed world might have been a fun games, but it would not have been an adventure game, at least not in 1989.

Mean Streets allows free input dialog

That’s part of the dream for adventure game developers: allow your player to have rich, detailed, subtle conversations with your characters. Mean Streets goes further and, like Maupiti Island, once a characters has answered a question, the player character, Tex Murphy and either threaten them or bribe them for more information. This is most likely suppose to give a strong sensation of freedom. But it’s not what happens in practice at all.

What actually happens is that both in the manual and in in-game dialog, the player is instructed to write everything down, with numerous repeated advice to check for spelling. The instructions to check for spelling are repeated several times in the manual, sometimes several limes per page in bold, capital letters. What this means, is that one has to write down outside of the game any name that is given and type it back exactly inside of dialog text input boxes. Any deviation will cause the characters to be confused. Bribing or threatening hardly ever worked. It actually never worked when I tried it. I can only guess that it does eventually, if not it would not be in the game.

There’s in built-in help system

It’s possible to pay an informer for hints, but Tex has limited money and there’s no way to know if the informer will have any information or how much she’ll charge for it. This makes the whole process random and frustrating.

The intent and the result

The goal of all this was obviously to hide the linearity of the game. One of the buzzwords of the time was “non-linear.” We now know that there’s nothing essentially wrong with linearity in games. Super Mario Bros. is completely linear and is still considered one of the best games of all time. This absolutely extends to narrative games: the games in the Ace Attorney series are mostly linear and are also very highly praised. The way it’s possible (although not practical) for the player to roam around and the way money can be spent on bribes and informants give the impression that one can reach the end of the game in many ways.

In order to add an action element, there are short combat sections, not unlike in the games of Quantic Dreams. I found they mostly lead to a game over and if one had not saved, a lot of gameplay is lost. But it’s not like the combat sections are announced. They can come at any time and the conclusion of a failed combat section is a game over screen. Combat is generally a bad idea in an adventure game, but unannounced combat that interrupts gameplay based on conversation that just ends the game is even worse.

The game also tried to vary mechanics, much like God of War did successfully years later. But what we got instead was what Yahtzee Croshaw would call a schizophrenic interface. There is:

  • a free-roaming 3D interface for the flying car
  • a non-interactive 3D view for autopilot in the flying car
  • a side-scrolling view for combat
  • a face-to-face view with text input for dialog, and another, equivalent one for phone calls,
  • a visual-novel-like themed interface for locations,
  • white-on black text popups for narration

and others that I might not have encountered. Many of those are not bad, again, they’re just out of place, or unfinished, or too numerous, or a combination of the above.

There’s also a huge contradiction between the views of the city in the flying car and in the side-view action sequences. It’s simply impossible that these two worlds have anything in common. Again, not bad as such, but completely incompatible. That is also true of visual-novel-like sections, which have detailed, rich graphics that don’t match either the 3D views or the combat sections.

And, as Tex spends most of his time flying, the title Mean Streets doesn’t make much sense. Tex seems to spend very little time on streets. Yes, the only time the player sees the streets in question is during combat, but that part of gameplay seems so removed from the rest that it seems odd that it would become the titular feature. It’s not like when the title of a work is an deceivingly inconsequential detail, like Slaughterhouse Five or The Perfume of the Lady in Black. It just seems that that title was given because it was a cool title, reminiscent of a cool movie.

The good stuff

There are many, many good things in Mean Streets that are worthy of praise. Many of these have been kept in future games.

First of all, Mean Streets uses technology that was definitely bleeding edge, such as 3D, video and voice. These were very much ahead of their time in 1989. The got in the way of gameplay or were frustrating, but I’m confident that the failure of Mean Streets is what made the subsequent games so good. After their first Tex Murphy game, Access had figured out what to keep and when to use it.

This game also makes me glad for having taken the class Building Virtual Worlds at Carnegie Mellon’s Entertainment Technology Center and Jesse Schell’s class on game design. These were specifically designed to avoid problems like the one in Mean Streets. I can’t honestly say I would not have done the exact same thing at the time myself.

Heidegger, in retrospect

My last project at the ETC was Heidegger, at our Silicon Valley campus. The client was Electronic Arts and we were very lucky to be able to work with several people from the Dead Space team at Visceral. Our project was about finding a way to deduce player types though gameplay analytics and from there predict how likely people will be to like another game.

I worked on the interface with the very talented Anabelle Lee. She took care of aesthetics and I was in charge of functionality. I took that opportunity to improve my skills with the HTML 5 Canvas and jQuery. But, most of all, I got to experiment with Websockets and the fascinating Tornado web server, written in Python.

I also wrote and edited our promo video. I did not film it, though. That part went to other members of our team.

I would like to take the opportunity to thank Ben Medler, our fantastic client contact for just being so awesome.

First steps: Frotz in Eclipse

I’ve looked at a lot of the Frotz source code. It’s undeniably simple and yet, it’s a big challenge for me. First of all, it is a virtual machine, no matter how you want to put it. Second, it’s not really that well commented. I’m still pretty enthusiastic about the whole thing. One aspect I had actually completely overlooked is how this project is getting me much close to Eclipse.

Eclipse

Eclipse logo

Eclipse is a very popular Java-based IDE, or Integrated Development Environment. Originally made for Java, it has been adapted for most languages one could reasonably expect it to work with, including of course C and C++. The needs of this project and the time constraints encourage me to use Eclipse and to use it in a more efficient way I have so far.

I’m using it to find out where variables and functions have been declared automatically, for example. It has more than one feature that help with that.

Real-life code

Frotz is definitely real-life code. I’m not in a world of textbooks anymore. This is an example of a comment I found:

For a very different example, I found this nifty piece of code that takes a full filepath and only keeps the basename:

This uses pointers and the fact that in C, there are no strings but zero-terminated character arrays. I actually like seeing a real-life example of this sort of thing.

To be continued.

My topic: analyzing and extending Frotz

Ah, Frotz. The most popular Z-machine and now glulx interpreter out there… Let’s back up for a while.

Z-machine

The first commercially available text-based adventure game was Zork I by Infocom in 1980. It was based on its almost-namesake Zork, that was made at MIT and only ran on big mainframes. For the commercial version, Infocom needed a very simple and versatile format. So they created the Z-machine format. Its only output was text, so interpreters for it could be made for pretty much any platform — and it was.

After Infocom

To my knowledge, the last commercial text-based adventure game was Eric the Unready. After that time, a new interpreter for Z-machine files ended up being necessary. A few appeared. The most popular ended up being Frotz, a command-line tool for Unix. Frotz was eventually ported to many systems, including Windows and more recently iOS.

Adventure games are not dead. Well, maybe not

Even though the number of people who play adventure games has shrunk and the number of people who play text-based adventure games or “Interactive Fiction” or simply IF is now tiny, a small community remains. New tools were made for creating new pieces of IF. Some were brand new, some compiled to the old Z-machine format. At the forefront of that latter category was the Inform programming language and its accompanying system, both created by Graham Nelson, a British poet and mathematician.

As the Z-machine had never been meant to be used by the public before, there was never a standard for it. Graham Nelson established one, aptly called the Z-machine standard in 1997. It has been updated since to version 1.1 in 2004. These standards are now used by most Z-machine interpreters.

A short note about Inform

Graham Nelson’s Inform language was very simple up to version 6. What made it a very powerful tool is that it came built-in with IF-specific rules. IF does require many rules to for the world of the story to behave in the way we as human players expect. These rules could be overwritten, but Inform did not require the programmer to write them. Example of rules could be that if an object is marked as being a container, it can contain other objects. However, an object cannot contain itself. This seems obvious to humans, but has to be coded in order to be in the world. Inform 7 goes much further and actually reads like English. It can still compile to the Z-machine format.

What I intend to do with all that

My independent study this semester will be the following:

  • analyze the Z-machine, using existing interpreters as well as Graham Nelson’s standards,
  • expose parts of the story inside the Z-machine and
  • display the information I gathered in the Windows interface in the Frotz for Windows interpreter.

I don’t know for sure how much of these I’ll be able to do, apart for the first one. But the Z-machine has such a reputation for being a very simple virtual machine that I hope I’ll be able to do all of them.

Deciding on a study topic for Silicon Valley

Creating Interactive Fiction with Inform 7 by Aaron Reed coverSo we have to create a blog for our Silicon Valley elective class. But I already have a blog! And I’ve even updated it. Sort of. Some times. I think.

No worries. I’ll try using a category for the elective-related posts. Let’s hope that will be acceptable.

I was hesitant about my topic for this class. I saw three possibilities. I knew I had to have samples of C++ code by the time this semester was over, but this didn’t seem to really match the purpose of this class. I don’t have much experience with C++, but I already know it fairly well. The point of the class it to learn things and teach them at he end of the semester. I can practice C++ and then teach it, but that does not feel right. And it wouldn’t really even be learning, it would really be practicing. If it’s code samples I’m after (and I am, I need them to get a job), I think I can manage that on my own.

Instead I’m going to do something with Inform 7. The previous article on this blog was about why I love Scala. This was written when I thought I’d be on a pitch project right now, coding in Scala, that why it had “part 1” in its name even though there never was a part 2. But it’s true I love Scala. I love Scala more than I can describe. But that’s nothing compared to how much I love Inform 7.

I’ve taught the very, very basics of Inform 7 when I was a teaching assistant (or T.A.) during the National High School Game Academy  But, to be fair, I’m a little lost about the details of Inform 7 myself. It’s big, powerful and detailed. It deserves my attention. One of our advisers said C++ was the one to go with because it gets jobs, but the other one said that Inform 7 would make me stand out. I’m much less sure I can write a decent piece of Inform 7 on my own time than a decent piece of C++. C++ you can crank out. Inform 7 must be slowly and lovingly carved out of a fine alloy of effort and imagination.

I’ll try to revive my old idea for an Inform 7 game, Go, Jill!, maybe with less focus on dialog and more on some of Inform 7’s specific features, like the persuasion system, which I think is very impressive. Scope will be an issue, but I’ll try to shrink and expand it as necessary. I’m pretty confident I can make it work.

You are in a maze of twisty little passages, all alike.

Not anymore I’m not!

Why not a Proust-themed transmedia work?

Why a Proust transmedia world

This semester, I am taking Jesse Schell’s Game Design class. He did a lecture on transmedia, which has recently become something of a buzzword. In his lecture, he mentioned several examples of transmedia worlds, like Peter Pan, Sherlock Holmes or even Tolkien, that were created long before the concept of transmedia itself. Peter Pan is particularly notable, as it was first a short story, then a play and then a novel. It was transmedia in the nineteenth century. This is true of others works, but Peter Pan is very noticeable in this regard. As Jesse was explaining this, my mind went straight to Proust. Proust definitely created a world. It is deep, it if fictional, and it has another criterion that Jesse brought up: it makes some wishes come true. Most of all, it is huge. It may not seem like it at first, but it really is gigantic. A partial list of characters available on line just begins to show the depth and subletly of Proust’s world, how it is multilayered and how every small piece has meaning. Unlike the other worlds that Jesse showed, Proust’s world does not have supernatural elements, but, very much like Star Wars, or Tolkien, there is a deep, meaningful philosophy present throughout the whole narrative, the philosophy of the two “ways,” Swann’s Way and the Guermantes Way, what they mean, how they relate, who fits in which and how they can be applied.

The number of pages that compose The Remembrance of Things Past varies from one edition to the next, of course, but the estimate that’s given most of the time is three thousand pages. That’s if you stick to one version. The last three volumes, composed of the “Albertine novels,” The Captive and The Fugitive, as well as the seventh and final volume, Time Regained, are posthumous and unfinished, that’s why they’re only about two hundred pages each. What makes it into the final book depends on the editor, and of all the current French editions, each picks a slightly different variation. I’m not sure where to show sources for this assertion, as I personally stuck to the Gallimard versions, but I heard this from a Proust expert, Pascal Fouché. The Pleiade edition, also from Gallimard, is supposed to have all known variations.

But the variety of versions for a single, huge, coherent world does fit within Jesse’s definition of a world suitable for transmedia. At note about the “coherent” part: Proust’s story is notoriously incoherent, particularly when it comes to time. Time is basically “bent” in Proust. In the first volume, the narrator remembers seeing a woman whom he refers to as “the lady in pink” when he was about ten years old and was visiting a philandering uncle of his. Spoiler alert: the lady in pink is, a few volumes later, revealed to be none other than Mrs. Swann. But, by that time, it is also made clear that Gilberte Swann is the same age as narrator, so when the narrator saw the lady in pink at the age of 10, Gilberte was also 10 years old and at that time Mrs Swann was married and no longer called on single gentlemen at all. So really the narrator, at the age of ten, was visiting the version of Mrs Swann from several years before he was born. This point is never made explicitly, but such inconsistencies do not stand out it Proust. The story of The Rememberance of Things Past is made to be as vague as possible and these details, more than anything, give it an organic texture, like something you’d remember but that is on the tip of your tongue. And three thousand pages long.

The idea of a transmedia world that has in inconsistent story is not that unusual. The canon of Star Wars varies from one medium to the next: there are in fact several “levels of canon” for Star Wars. And Doctor Who has an immensely incoherent story. One of the writers, either Russel T Davies or Stephen Moffat (I’ll admit I don’t remember which one) actually recently said that it doesn’t really matter if the story of Doctor Who is consistent: you can always explain that the timeline has changed because of some sort of time travel. What was important was for the world to be consistent. And in that measure, Star Wars, Doctor Who and Proust all pass.

At the time of writing, the slides for last lecture were not up, and I was relying on them to see how much Proust followed Jesse’s guidelines for a good transmedia world. But at the time, when i was looking at the list on the screen, I was thinking, “That’s pretty much it.” So what’s missing?

Simplicity and transcedance

I’d say that what’s missing is simplicity and transcendance. Proust has neither of those. There are no situations in Proust where the social interactions or personal goals are streamlined to something that can be stated in one sentence. Anything in Proust requires explanations of several pages made of extremely long sentences. Some paragraphs go on for several pages. Proust is, if anything, complex. As for transcendence, there really isn’t any either. I don’t know if transcendence in that context actually means a supernatural element. I don’t think so. But whatever transcendence means, Proust’s world doesn’t have it. The greatest thing his characters can aspire to is some sort of underappreciated artistic achievement and a tiny bit of social mobility. M. Bontemps is gently mocked in the narration at some point because he is a simple diplomat and doesn’t know much about the finer things of life. An occupation that most people at the time as well as nowadays would consider a tremendous accomplishment is still no big thing in Proust’s world.

From then on, the question poses itself: is it a shortcoming of transmedia worlds that they require simplicity and transcendence? Pokémon definitely has it in every form. It is not a world as deep as Proust by any means. Harry Potter is a complex metaphor, but it falls short by the way it fails to address many important issues. The one that always disturbs me every time I think about it is that the wizards definitely have the ability to cure cancer and many other illnesses, they also have the ability to fix many of our social and economic problems. If the world of Harry Potter were to be taken literally, wouldn’t the whole wizard community be guilty of possibly criminal negligence towards muggles? That’s one of the attributes of simplicity and transcendence, the complexities of the real world don’t “map” into it. They do map into Proust.

So are such works, the transmedia works, the works that do embody the principles of simplicity and transcendence, are they inferior to more finite ones? If they are, is it by nature or only the current instances? And if it’s only the current instances, are deeper, more complex worlds about to come when the time is right and the public and maybe authors and technology ready for them?

That, I don’t know. Would Proust be making games today? Would Shakespeare? Maybe. It’s fun to extrapolate but not really useful. Maybe Proust, had he grown up in the seventies or eighties would have been reprimanded for being lazy and pretentious and given up on literature altogether and gone into banking. Who knows? But the question about how deeply simplicity and transcendence it tied to interaction is a serious one. And I have absolutely no clue as to where to start looking to answer it.

I’m in print!

My essay, “Time Tech and Tales”, will be in the next issue of Well Played, the peer-reviewed journal on video games, value and meaning, edited by the amazing Drew Davidson. It will available for sale in a couple of weeks, but like all ETC Press publications, it will also be available for free from the ETC Press website.

“Time Tech and Tales” is about the history of narration in video games and its potential future, centering on the example of Monkey Island 2: LeChuck’s Revenge and Phoenix Wright: Ace Attorney and the evolution between those two games. It also briefly covers the recent emergence of “niche games.”

Telly Award

The music video that my visual story team, Out of Molehills, did last semester won a Telly Award! We won a bronze award in the category “Internet/Online Video – Animation”. As an encore, here’s our award-winning video!

Credit goes to all the members of the team, Maria Tartaglia who came up with the story and character design, Sivakumar Loganathan, who wrote and performed the music, me, I came up with the shadow puppet idea, did some of the puppetry and some of the cinematography decisions as well as the closing titles, and Weichuan Tian who did a lot of the puppetry.