Lately I have been doing some difficult puzzle design. Today I woke up and wanted a break from that, so I decided to nail down one of the loose ends that hadn't been thought about yet: displaying subtitles during the in-game voice recordings (of which there are a lot).
Originally I wasn't sure whether I wanted to implement subtitles or not. It's important to me that the game have an overall aesthetic that contains no visual language. I was worried that if we were to draw subtitles for people who don't speak English, it might ruin this. But, a year ago, I was talking to a friend who has experience in film, and he convinced me that people just understand that subtitles are a different thing, that they are a layer on top of the game or movie or whatever.
So, I am implementing this, and maybe it's good, because if I had been hard-line about things, it would mean that most people in the world would not be able to understand the recordings. That's not terrible, because they are not necessary to complete the game, but as long as I don't feel like, ultimately, the subtitles are ruining things, it is probably better to have them.
(It's going to be an interesting time when I go try to implement the main menu without any written words...)
It's been a very productive day. I implemented the basic subtitling system in less than 3 hours (making a subtitle data file for one of the voice tracks, loading it, detecting in-game when a voice track is playing, finding the appropriate piece of subtitle for the current time, and drawing it on the screen). Here's the result:
The data file is a very simple format that I just made up. Taking my experience in making Braid multi-language, and looking at the kind of text we will be dealing with in The Witness, it was clear that I needed a format that was mostly about the text, with very minimal markup. Right now the main markup we need is just "which recording is the following text for" and "what time in the recording should the following lines be displayed". I can imagine that later on we will add some more features to it, but probably not many.
Since The Witness inherits code from Braid, we already have handling for other languages in our font rendering, so I pumped the text through Google Translate to test a couple of other languages:
If you are playing in English, subtitles are OFF BY DEFAULT. It amazes me how badly many games handle subtitles, most notably, that a great many games seem to have voice acting in English and then also default to subtitling in English. This is terrible because people read at a different speed than they listen, and they probably read faster. It ends up dividing peoples' attention in a weird way. I don't know why so many games do this except that they aren't paying enough attention to user experience. So to have a good experience you have to go turn subtitles off, but sometimes that doesn't even work! A couple of days ago, I was playing Xenoblade Chronicles, and when I turn off subtitles, only about half of the subtitles in the game go away. Apparently there are two different classes of subtitles and one of them you cannot even turn off! I think they never even tested it...