Text Lock

by Ron Gilbert
Oct 27, 2016

We've now entered the next phase along our wonderful journey to release a game, and it's called Text Lock.

A few weeks ago we entered content complete, where all the art, animation, puzzles, and music were in the game and no more could be added.  Text lock means all the text is now final. We've made all the last minute edits, additions, and now we're stuck with what we have. No more text changes.

The text in the game started out like this...

deloresRoomActionFigures2 =
{
    name ="action figures"
    verbLookAt = function()
    {
        sayLine(delores, "These are part of my action figure collection, including my prized Howard the Duck.")
    }
    verbDefault = function()
    {
        noReach()
        sayLine(delores, "These are in MINT CONDITION! No way I'm going to touch them.")
    }
}

A few months ago, I ran a series of python scripts and we got this...

deloresRoomActionFigures2 =
{
    name = NAME(0,"action figures")
    verbLookAt = function()
    {
        sayLine(delores, DELORES(0,"These are part of my action figure collection, including my prized Howard the Duck."))
    }
    verbDefault = function()
    {
        noReach()
        sayLine(delores, DELORES(0,"These are in MINT CONDITION! No way I'm going to touch them."))
    }
}

Each line was wrapped in a MACRO, identifying who said the line and unique text id.  The text ids are set to 0, because they have not been extracted into the text DB yet. We lived with this for few weeks, making any changes to the text we needed.

There is also code in the game that displays a warning if it encountered any text that hadn't been wrapped with the MACROs (the python program missed a few lines due to formatting).

Last week, I extracted all the text from the game, turning the lines into this...

deloresRoomActionFigures2 =
{
    name = NAME(27084,"action figures")
    verbLookAt = function()
    {
        sayLine(delores, DELORES(27342,"These are part of my action figure collection, including my prized Howard the Duck."))
    }
    verbDefault = function()
    {
        noReach()
        sayLine(delores, DELORES(27341,"These are in MINT CONDITION! No way I'm going to touch them."))
    }
}

when the final python program was run, adding the text ids, a .tsv file (Tab Separated Values) was written out that looks like this (don't be fooled, the actual file is 11,000 lines long)....

NAME 27084 action figures
DELORES 27342 These are part of my action figure collection, including my prized Howard the Duck.
DELORES 27341 These are in MINT CONDITION! No way I'm going to touch them.

The translators then translate the text in the .tsv file and the game loads a different file, depending on the language.

The text MACROs are pretty simple.

#macro NAME($a,$b) "@$a:$b"
#macro TEXT($a,$b) "@$a:$b"
#macro DELORES($a,$b) "@$a:$b"

During  preprocessing phase, they take the ID and the TEXT and merge it into a string...

"@27341:These are in MINT CONDITION! No way I'm going to touch them."

The advantage is the text is still a simple string, easily passed around the code. When a sayLine command is called in the engine, it extracts the ID and looks up in the text DB and display the translated line.

Starting next week, the MACRO will be replaced with this...

#macro NAME($a,$b) "@$a"
#macro TEXT($a,$b) "@$a"
#macro DELORES($a,$b) "@$a"

All the text is removed from the preprocessed version of the code, so when the game ships, all the text has been removed, but it still stays in the source to make it easy for us.

We have several macros to help the translator and also to make script extraction for voice recording easy:

// Text that is displayed, but never voiced
#macro TEXT($a,$b) "@$a:$b"

// Names of objects.
#macro NAME($a,$b) "@$a:$b"

// Text that appears in art, but never appears as text strings.
#macro ART($a,$b) ""

// Text that would be said, but is never voice, like some dialog choices that are never echoed back.
// Translators need to translate it, but voice actors don't need to record it.
#macro NOTALK($a,$b) "@$a:$b"

// Text displayed on computer screens in the game.
#macro TERM($a,$b) "@$a:$b"

// System text, such as the options screens.
#macro SYSTEM($a,$b) "@$a:$b"

// Ray and Reyes
#macro AGENT($a,$b) "@$a:$b"

// Agents and Delores. Useful when Ransome has an alt line.
#macro PLAYER_AD($a,$b) "@$a:$b"

// Agents and Ransome. Probably not used a lot.
#macro PLAYER_AR($a,$b) "@$a:$b"

// Agents, Delores and Ransome. This will be the most common in the world, not in the hotel.
#macro PLAYER_ADR($a,$b) "@$a:$b"

// Delores and Ransome. Useful if the agents have a separate sayLine.
#macro PLAYER_DR($a,$b) "@$a:$b"

// Everyone. Probably used in the Hotel.
#macro PLAYER_ADRF($a,$b) "@$a:$b"

// Agents, Delores and Franklin. Ransome alt lines in the hotel.
#macro PLAYER_ADF($a,$b) "@$a:$b"

// Agents, Ransome and Franklin. Delores alt lines in the hotel.
#macro PLAYER_ARF($a,$b) "@$a:$b"

// Lines said by only one character
#macro RAY($a,$b) "@$a:$b"
#macro REYES($a,$b) "@$a:$b"
#macro RANSOME($a,$b) "@$a:$b"
#macro DELORES($a,$b) "@$a:$b"
#macro FRANKLIN($a,$b) "@$a:$b"
...
...
...

Text wrapping can get complex. but we need it this way to extract scripts for recording. If the game wasn't voiced, we could get away with just a TEXT macro, or maybe just the character ones to help the translator, but since the game is not only voiced, but has five playable characters, all who might or might not be saying the same lines, it gets complex.

Now that everything has been extracted and numbers, the file is off to Boris and he's started the German translation. In a couple of weeks, I'll hand it off to the other translators. I wanted to use Boris as a test case, to make sure everything was working before we had five people doing translation.

Like content complete, text lock is an important milestone. It's not only important in that it gives us a goal to push for, but it's also important just from the point of discipline.  We could make art and text tweaks forever and each one would make the game -1% to 1% better.  There comes a point where you just need to stop and that is what these milestone are for. They are saying, it's time to move on.

Now, occasionally, we will come across a line of text that NEEDS to change.  If it's just a typo or spelling error, we just make it since it doesn't affect the translators or the voice actors.

But if it changes the meaning of the line, or a new lines MUST be added, we have the following process.

The first step is to talk about it, make sure we really need to add or change the line. The second step is to see if there is an existing line that will work just as well, or at least 75% as well.  The final stage is to change or add the line, but we mark is as follows...

sayLine(delores, DELORES(0,"**These are in CRAPPY CONDITION! I should sell them."))

If this is the only place in the game the line was used, we'll leave the text id. If there are other places that still need the old line, we'll reset the id to 0.

At some point a few weeks from now, I'll rerun the extractor and pull all the lines that have "**" and send them to the translators. If voice recording has already happened, they get add to the lines for the pick-up session.

And that's all there is. Making games is easy.

- Ron



Marc - Oct 27, 2016 at 11:47
TL;DR

Henk - Oct 27, 2016 at 11:55
Hardcoded texts replaced into variable texts depending on language

Enzo Luis Strongoli - Oct 27, 2016 at 11:51
Is there a place to see if we were included to the phonebook? or if it's something missing?

Ron Gilbert - Oct 27, 2016 at 11:52
Use the url that was emailed to you, if every looks OK, you're OK.

Dennis - Nov 02, 2016 at 07:23
Which link do you exactly mean? The one where we uploaded our voicemail?

Nor Treblig - Nov 02, 2016 at 10:13
Yes. The link started with http://voicemail.thimbleweedpark.com/phonebook- and came by email from voicemail@thimbleweedpark.com.
I still have (readonly) access to it.

Dennis - Nov 02, 2016 at 13:36
Very weil! THX. Since I can't see anything unusual there, it seems that everything worked out :)

Matt - Oct 27, 2016 at 12:00
While all of that information goes over my head, I'm totally boarded on the HYPE TRAIN for this awesome game. :)

Andreas - Oct 27, 2016 at 12:04
Why do ART and TERM have separate macros?

Ron Gilbert - Oct 27, 2016 at 12:17
Because TERM lines are display in the game as text strings at run time, were the ART lines are only used by an artist in Photoshop.

manuq - Oct 27, 2016 at 12:05
Do text translators have access to see the result in the game while they work, for context?

Ron Gilbert - Oct 27, 2016 at 12:19
Boris does. You can hotload the text. The other translates may or may not. I don't like sending copies of the game out to people I don't know and trust.

Matthias B - Oct 28, 2016 at 03:02
Then how do you ensure a context appropriate translation for the other languages? Let's say there is a sentence like "That's the wrong key. " Is  "key" an unlocking device or a part of a keyboard? Other languages don't use the same word for both. And what about word plays? A character might say " I think I found the key. " upon finding an actual keyboard key but it could be a reference to the "key" to solving a puzzle. Without knowing the context the translator can't even attempt to do this justice.
I think you should put more trust in people. A bad translation is worse than a leak of an incomplete game with no audio. Who does such a hypothetical leak hurt?  The bad translation hurts the very people who have financed your game.
Please reevaluate the risks and benefits of giving the translators access to the game.

Zak Phoenix McKracken - Oct 28, 2016 at 03:20
I think that is a problem faced since 1990, from the first Monkey Island (I speak for italian version). Surely the translators at that time did a good job, but there are sentences quite nonsense, that become clear if you play the game in english.
I suggest, since everyone here knows english, to play Thimbleweed Park twice, in both languages.
Anyway, nowadays is easier to get in touch with the Programmers, in a blink of an eye, and ask them what they mean with a sentence like "I think I found the key".
Or... the Programmers could give a timed self-destruction copy of the game to the translators....
Everything is possible!

blombo - Nov 06, 2016 at 13:03
"Surely the translators at that time did a good job,"

I've seen you say that before, and I don't know how you can. There were basic (3rd-grade) grammatical errors in the translation, plus general sloppiness all around, with lots of spelling mistakes. I'd wager no one even reviewed the translation once. It wouldn't call it "a good job", not by far.

Big Red Button - Nov 07, 2016 at 09:11
They would just need to add a short comment, if a word or a sentence has more than one meaning.

Nor Treblig - Oct 28, 2016 at 06:34
I wouldn't risk leaking the game, too many jerks out there who would share the game months before its proposed release (and it's complete, content-wise).
Since only the English one will be voiced for now (afaik) you could fix bad translations in a later patch which is better than having it leaked.

Ema - Oct 28, 2016 at 12:33
I could be wrong, but... didn't localized versions come out AFTER the original release back then?

Is it a matter of marketing you can't do like this?

Thank you

Dr. Pixel - Nov 01, 2016 at 11:43
Ich habe volles vertrauen in                 Boris Schneider :)

Big Red Button - Nov 01, 2016 at 13:56
In case he doesn't happen to be one of the few geniuses out there who are going to finish TWP within less than 10 hours without any hint: Does Boris have the Puzzle Dependency Chart™, so that he is able to check his complete translation in time? Or, does he actually have enough time to finish the complete game on his own (which may be more fun for him, of course)?

Big Red Button - Nov 01, 2016 at 19:57
Well, I just recognized that the capability of hotloading the translation would allow him to play the complete game, like all of us are going to play it, and translate game at the same time step by step. That's perfect!

YoMismo - Oct 27, 2016 at 12:48
I had the same question. Translating a phrase can depend so much on the context that even though the translation might be accurate, it may not fit the context or give it a different meaning.

Alexander Hart - Oct 27, 2016 at 12:06
Are you also going to localize this?  I'm from the USA and I don't know who Howard the Duck is.

NachoFernandez - Oct 27, 2016 at 13:03
You need a crash course on 80's pop culture to really enjoy the game, then!

Big Red Button - Oct 27, 2016 at 14:26
Lucasfilm made a movie with him in the 80s, which was not very successful. He also appears at the end of Guardians of the Galaxy as an Easter egg, since Disney owns Lucasfilm now.

Big Red Button - Oct 27, 2016 at 15:09
... as well as Marvel.

Matthias B - Oct 28, 2016 at 03:04
The problem is not where you are from but that you are too young :-)

Robert McGovern - Oct 27, 2016 at 12:33
Thanks for the breakdown of the process, marks another exciting landmark on the road to release.

LogicDeLuxe - Oct 27, 2016 at 13:27
To bad, you didn't thought of the talkie stuff when doing the Monkey Island games. Both special editions have a few lines missing in the recordings. At the same time, they voiced a few lines which are never spoken in the game. If there was such a well thought system back then, I can imagine that those blunders won't be in there now.

Ron Gilbert - Oct 27, 2016 at 13:28
I fully expect we'll screw up at least a few lines that won't get record or translated. That's where the fun begins.

Mattias Cedervall - Oct 27, 2016 at 13:48
I'm sorry to hear about the text lock because I wish to correct a detail in one of my books for the library!

Nor Treblig - Oct 27, 2016 at 14:20
Actually this wouldn't be that much of a problem: The books are neither translated nor voiced if I remember correctly.

Zak Phoenix McKracken - Oct 27, 2016 at 16:08
OBJECTION!
The books in the normal library (not the occult) may be translated, there was an option in the submitting form, for that.

Mattias Cedervall - Oct 27, 2016 at 16:42
I think you might be right, counselor.

Nor Treblig - Oct 28, 2016 at 06:45
There was? But since they said the line count had to be cut down so much I don't know if this will be done and is affordable.

Geoffrey Paulsen - Oct 27, 2016 at 13:53
So, are you using UNICODE or some other alternate ASCII system for your text?  I think this was mentioned months ago, but I'm old and lazy.

Ron Gilbert - Oct 27, 2016 at 14:05
UTF-8

Gffp - Oct 27, 2016 at 14:11
Very easy!!! I wonder if other translators have been selected... (I hope the italian one will be someone of your trust, so he will play the entire game before starting the translation...)

Nor Treblig - Oct 27, 2016 at 14:17
Are there any control characters or special entities used in the text (especially for sayLine)?

foodoo - Oct 27, 2016 at 14:36
How will the voice actors know how to pronounce a text without context? For example:

DELORES 12345 Yeah, right.

Could be either honest agreement or sarcasm.

Ron Gilbert - Oct 27, 2016 at 14:54
In the lines where it matters, you can include stage direction...

sayLine(delores, DELORES(12345, "(sarcastic)Yeah, right."))

The stage direction is not displayed on the screen, but it's emitted in the script.  Plus, I and the director will be there. They are not reading the lines in the dark.

criskywalker - Oct 27, 2016 at 15:22
That is so much better than most other developers who make actors read the lines, sometimes not even telling them on which project they're working or giving any context at all.

I'm confident that with your direction the game will have brilliant dialogues and voices. I can't wait!

Ricardo Marichal - Oct 27, 2016 at 15:52
For the Spanish translator. If you are reading this: MINT CONDITION = PERFECTO ESTADO and not CONDICIÓN MENTA. :D

Zak Phoenix McKracken - Oct 27, 2016 at 16:10
Of course, even in italian is the same. In this context, MINT means PERFECT, PURE, IMMACOLATE.

foodoo - Oct 27, 2016 at 16:33
For the German translator: PULLEY = ROLLE and not KARABINERHAKEN

Zak Phoenix McKracken - Oct 27, 2016 at 17:08
I always wondered why the german language sounds so... harsh!

"PULLEY"... sounds sweet... UU...EEY...
in italian, PULEGGIA... sweet, too...UE.... IA...
in german: KARABINERHAKEN! JAAAAARRRR!!!!
:-)

Dieter - Oct 27, 2016 at 18:00
Ehm, no. :) A "pulley" is in german a "Rolle" or a "Flaschenzug". Or a "Riemenscheibe" or a "Riemenrad" or a "Seilrolle". (And now we gonna try to pronounce these words. ;)).

A "Karabinerhaken" is this little thing:
https://en.wikipedia.org/wiki/Carabiner

Beside that, we have other funny words. Like "Schadenfreude". ;)

Zak Phoenix McKracken - Oct 28, 2016 at 03:31
Hey, Google Translator says "Schadenfreude" = "Malicious joy"
... I didn't think that a JOY could be MALICOIUS! :-D
You are right, maybe it sounds harsh if you say it in a harsh way...

Dieter - Oct 28, 2016 at 04:46
https://en.wikipedia.org/wiki/Schadenfreude

Google Translator is doing funny things. :-)

Arto - Oct 28, 2016 at 13:33
Schadenfreude ist eine Sache Deutschland und Finnland verbinden. Wir haben "vahingonilo", das ist ein direkt Übersetzung.

My German is horrible (although I have actually studied German many many years ago) and I'm sure there are grammar mistakes above. But it says that one of the things German and Finnish have in common is Schadenfreude/vahingonilo. The joy of other's misfortune.

I don't have this mentality though, I think. And hope.

Dieter - Oct 28, 2016 at 17:51
Your german isn't bad, but the sentence above should be: "Schadenfreude ist eine Sache, die Deutschland und Finnland verbinden. Wir haben "vahingonilo", das ist eine direkte Übersetzung."

Everybody is sometimes "schadenfroh". One example: If you can laugh about "America's Funniest Home Videos" (or the corresponding TV show in your country) then you are Schadenfroh. :)

Ignacio - Oct 28, 2016 at 13:15
Schadenfreude is one of those great german words. I believe there's no single word translations for that to spanish, french or english.
Sehnsucht is also very interesting, it is usually translated as melancholy, but the feel about it is not the same.

Nor Treblig - Oct 28, 2016 at 15:06
I don't even remember...
"Rubber Chicken with a pulley in the middle" is already super long, did Karabinerhaken really fit on the screen?

Dieter - Oct 28, 2016 at 17:51
Yes.

LogicDeLuxe - Oct 28, 2016 at 18:08
Since he is only saying this, size is no issue. Talked text has as many lines as it needs. The inventory name is just "Huhn" and turns to "Gummi-Huhn" when inspected. Just like in English, where it is "chicken" and "rubber chicken".
And while the translation isn't accurate, it is no issue, since a carabiner is well suited to secure him on the cable.
Only problem, when they did the graphical inventory, the pulley can be seen.
There is another sentence which didn't fit on the screen in the German version, though. It was among the automated sequence in the Governor's Mansion. They rephrased that line in the enhanced CD version in order to fix it.

Nor Treblig - Oct 28, 2016 at 21:24
I also didn't know that the description changes! It's because I always look at things before putting my hands on them...

Hey, what about a cross stitch renderer for TWP?
http://lil-samuu.deviantart.com/art/Rubber-chicken-with-a-pulley-in-the-middle-513912755 :-)

Thimbleweedster - Oct 28, 2016 at 02:06
German sounds harsh, if you make it sound harsh. Normal, softly spoken German is beautiful. People, stop watching so many abysimal Hollywood Nazi movies. About no-one speaks like that in real life.

Dieter - Oct 28, 2016 at 04:48
Don't forget the several (funny) dialects! :-)

ne0n - Oct 28, 2016 at 05:29
Yeah, so right! Or that youtube video where they compare German words to Spanish, Italian, ... ones . So stupid, and untrue. You CAN pronounce it the Adolf way, but why do that? It is really all the films and stuff... I teach German in the Netherlands and pretty much all the German people there hear is from "Er ist wieder da" (very popular over there), "Der Untergang" etc. And believe me, it is not Alexandra Maria Lara who is quoted... When will we get rid of this  Nazi sh...?

Dieter - Oct 28, 2016 at 05:46
And not to forget: Germans *have* a great sense of humor. Yes, we are able to laugh. Even in public. And about funny things in adventure games. ;-) (A german comedian holds the world record in the largest audience...)

ne0n - Oct 28, 2016 at 07:39
Oh yeah, Mario Barth, right? I personally don´t like his stuff, but then again - there is not just one German sense of humor. In reality things are always much more complicated and complex than prejudice and common beliefs. But humans need those beliefs to make life simple, to survive (and to make life funny at times). ; )

Dieter - Oct 28, 2016 at 17:58
Yep, Mario Barth. And yes, not everyone likes his humor. But he got the World Record. :) But we have a lot of different and good comedians. And some of them are even from England and/or the USA (e.g. Gayle Tufts). :-)

Dieter - Oct 27, 2016 at 18:07
But it worked in that case. :) Like the translation of the Root Beer...

hoetz - Oct 28, 2016 at 02:45
It's safe to say that Boris knows what he's doing :)

Uli Kusterer - Oct 28, 2016 at 08:26
Actually, the translation for "pulley" in most adventure contexts would be "Flaschenzug". Not that many people use that word in every day life. But yeah, Karabinerhaken is just WRONG.

LogicDeLuxe - Oct 28, 2016 at 18:22
Actually, "Flaschenzug" would be wrong in this context. It's just "Rolle", which is a part of a "Flaschenzug", but not the complete thing.
This is what we call "Flaschenzug": https://en.wikipedia.org/wiki/Block_and_tackle

Sushi - Oct 30, 2016 at 05:59
Actually, I never understood how the chicken with the pulley could work without detaching the cable to run it through the pulley? At least not with the kind of pulley as shown in the MI icon or any fan art...
So perhaps the "Karabiner"-thingy makes more sense to secure yourself to the cable?

Someone - Oct 30, 2016 at 06:18
There are several things in adventure games (and Monkey Island in particular) that don't make sense. :-) I.e. You should never drink that grog. Or try to destroy a ghost with root beer ...

Sushi - Oct 30, 2016 at 10:13
Objection!
1) you never get to drink that grog in MI1
2) root beer spirit repeller is  Voodoo certified
Put a pulley is pure mechanics, so the infameous suspension of disbelief is more endangered in this case. Luckily, the lo-res graphics help to blur things out so you have to rely on your imagination how Guybrush actually use the chicken...I'd say one rubber leg on either side- but then the icon is incorrect... I will need to replay the special edition to see how they handled it in HD :)

Zak Phoenix McKracken - Oct 30, 2016 at 10:16
Well said, Sushi.
Manfred von Karma would be proud of you!

Someone - Oct 30, 2016 at 11:08
As the duck is made of rubber, you are able to "pull" the legs from the axle of the pulley, set the pulley on the cable and attach the leg(s) again on the axle of the pulley. Voila. :)

btw: You don't drink the grog, but the pirates do.

Nor Treblig - Oct 30, 2016 at 07:47
The art just isn't accurate.
There is nothing strange about such pulleys, like those: https://www.google.com/search?q=open+block+pulley&tbm=isch

Ignacio - Oct 28, 2016 at 13:23
Hahaha, they translated that so in the official german translation of MI1?

Dieter - Oct 28, 2016 at 17:58
Yes.

Zak Phoenix McKracken - Oct 27, 2016 at 16:14
Looks like quite easy, both for translators and the programmer, to manage the text.
For text ART, I imagine the translator will provide you the text, and Gary/Mark/Octavi will do the rest...

gffp - Oct 27, 2016 at 16:49
Hei Zak but... Didn't we have a project in mind of doing the voice acting in Italian together with other reader of this blog? I wrote you a message on Skype a few months ago... I have a lot of things to do in the months to come but, if there are many other people involved... Everybody will do a thing and we could enjoy the acting very much without stressing our lifes too much...

Zak Phoenix McKracken - Oct 27, 2016 at 17:09
AHAHAH, yes, I remeber that!!
One thing per time :-D Voice acting will be only in english, if I am not wrong.

Gffp - Oct 28, 2016 at 06:36
Yes, the official voice acting will be in english only.
Hmmm I candidate you to be the technical manager of the project eheheh...

Zak Phoenix McKracken - Oct 28, 2016 at 08:59
The technical manager duty is to forget to press the record button while actors are performing, correct?

Gffp - Oct 28, 2016 at 16:30
Could you miss learning new swear-words from all Italy?

Ben Slinger - Oct 27, 2016 at 17:04
I think I recall you saying you were just using regular expressions to make the modifications to the code files - how difficult have you found it to account for different programmers styles, multi line strings, etc? Or do you have a strict style guide to minimise these sorts of issues?

I know I was to programmatically edit my own code it would end in disaster because I'm nowhere near consistent enough and would need hopelessly convoluted regular expressions to handle the endless edge cases :D

Dieter - Oct 27, 2016 at 18:04
I'm not Ron, but you might be interesed in the Gettext system:
https://en.wikipedia.org/wiki/Gettext

It's used in a lot of programs and it uses a similiar approach as Ron.

Ralf - Oct 29, 2016 at 09:54
Just don't try to handle all edge cases. The change from 90 to 95 percent doubles time/cost and the last 5 percent are even worse

Krampus - Oct 27, 2016 at 18:27
Do you have a voice director, and a casting director to select actors?
Each actor does a single voice? or many?

Andrew Hanson - Oct 27, 2016 at 21:01
I could do that blindfolded. Wow. Glad for people who are willing to do such easy stuff.

Derrick Reisdorf - Oct 28, 2016 at 02:00
Ron is in charge of the Klingon translation.

Someone - Oct 28, 2016 at 02:34
I'm really glad to read that Boris does the translation!

Zak Phoenix McKracken - Oct 28, 2016 at 04:00
Please forgive my question, why Boris is so famous and beloved among german users?
I just ask because I don't know almost anything of german, it's just curiosity...
Thanks!

Dieter - Oct 28, 2016 at 04:58
There are several reasons:

1. At that time (long ago) games weren't translated. In germany we had to play the english versions. Boris was one of the first who actually translated games to german. At the beginning he had to "hack" the games to translate them (i.e. the adventure "Murder on the Missisippi").

2. The few existing german translations were crap or worse. Boris translations were good. Not perfect, but good. You are able to understood and follow the story. :-)

3. He translated the first Lucasfilm adventures (the last one should be MI2 or Indy4 ...).

4. Boris was an editor at a (very) famous game magazine. So he was well-known.

Due to this reasons Boris became a famous translator in the adventure scene. That's all. (Since then there were other translators who did a great job.)

Guga - Nov 01, 2016 at 04:18
I should definitely play MI in German, now.

Big Red Button - Nov 01, 2016 at 13:41
Keep in mind that he didn't translate the Special Editions though.

Nor Treblig - Nov 01, 2016 at 19:12
Does this mean all the text was retranslated instead of using the translations of the old versions?

Big Red Button - Nov 02, 2016 at 02:19
Correct. At least there are differences.

And, Boris tweeted this recently:
https://twitter.com/CloudUndSpiele/status/790603815292641280
"nicht ganz meine Übersetzung" = "not exactly my translation"

Zak Phoenix McKracken - Nov 02, 2016 at 05:45
I second this, the italian Special Edition of Monkey Island has different translations.
The most evident one is the monkey wrench joke.
In version 1, it was translated as "chiave inglese", while in special edition it was just the name of the monkey: "Jojo".

Nor Treblig - Nov 02, 2016 at 10:09
So this particular puzzle wasn't actually that hard to figure out in the original Italian version because the translator helped?
In the Second Edition it's maybe also OK because they've added hints.

Zak Phoenix McKracken - Nov 02, 2016 at 13:53
That particular puzzle was hard to understand in italian, because "chiave inglese" is "english key", literally. But in common technical pipeling slang, it's the monkey wrench.
For me it was not a problem because I knew that "chiave inglese" was the monkey wrench, hence I had understood the pun...

Mister T - Nov 01, 2016 at 17:24
True, Boris was one of the pioneers, in every way. One of my earliest memories about computer games was the Power Play part of the Happy Computer, so he was there when game journalism started in Germany (or should one say: "the short time it existed"?). And then of course the multimedia leserbriefe of the PC Player.

Darkstorm - Oct 28, 2016 at 02:49
Are you expecting to change any dialogue on the fly when you hear it being said by one of the voice actors?  Perhaps there's sometimes stuff that looks great written down but sounds slightly off when actually spoken aloud?

Marcel - Oct 28, 2016 at 04:52
Do you also translate graphics such as signs and products?  If so, what's the process for that?

Nor Treblig - Oct 28, 2016 at 06:42
The ART macro is there to catch all the text in graphics for translation.

Marcel - Oct 28, 2016 at 07:19
Hmm... that ART macro produces just empty strings. So, I suppose there are no special fonts involved but direct adjustments of the graphics?

Nor Treblig - Oct 28, 2016 at 14:06
Yes, I guess those macros are just here to have the information that there is text to translate. The actual visual representation is in the graphical assets which need to be manually changed by the Graphics Wizards™. Another possibility would be to use them to just show subtitles.

I don't know how many of such instances there are (probably not so many), but I wonder if they can find the actual asset from the macro/ID e.g. to export the assets + text to help the translators (I suppose there are much tighter space constraints than e.g. with flowing dialog text).

David Fox - Oct 29, 2016 at 17:37
At around the time we were doing text lock, Ron, Jenn, and I went through all the rooms in the game and typed or pasted in the text we saw embedded in the art into a separate file and added the ART macro. Not all text in the rooms will be translated, but this gave Ron a way to keep all the text in one file (once it was all exported).

Once we get the translated text back, an artist will need to go into each of the Photoshop files for these rooms and manually recreate the text in the other languages. Then the programmers (me, Jenn, Ron) will export those additional images and set up the code that will automatically switch the text based on the selected language.

There's other text on the screens that programmatically "print" on the screen runtime. That text won't need an artist's touch.

Big Red Button - Oct 30, 2016 at 06:53
It's pleasant to read that you prefer your own artists for the translation of the Photoshop files, so that it will be definitely coherent to the art style of the game.

Big Red Button - Oct 30, 2016 at 07:03
"Not all text in the rooms will be translated,..."

By the way, the "on air" sign wouldn't have to be translated. It's a technical term in most of the western languages.

Nor Treblig - Oct 30, 2016 at 07:56
Also this is an example being impossible to translate while keeping it that short.

E.g. in German an accurate translation would be "auf Sendung".
The shortest translation I can think of would be "Aufnahme" ("recording").

Big Red Button - Oct 30, 2016 at 09:29
Maybe Mark, Octavi or Gary would have extended the sign, if necessary. But, as I mentioned, it would be a waste of time.

Dieter - Oct 30, 2016 at 11:15
In germany there are signs with "Ruhe" (english: "quiet") common:
http://www.bettina-straub.de/fotos/ruhe.jpg

That's even shorter than "on air". ;-)

Zak Phoenix McKracken - Oct 30, 2016 at 11:25
In Italy there are signs like "on air", translated with "in onda".
Usually, since we are Italians, along with that sign, we have this one:
https://0.s3.envato.com/files/185909431/preview.jpg

Nor Treblig - Oct 30, 2016 at 13:56
@Big Red Button:
I thought the same, it would probably look ugly too.

@Dieter:
Haven't seen those before. That's really short, even on your image is space left and right so I wonder why they didn't add an unnecessary amount of exclamation marks...
Hm, also somehow I now wonder if there will be flashing RIP signs on the cemetery.

@Zak Phoenix McKracken:
"onda" like "wave"? That's more accurate than this air thing!

Zak Phoenix McKracken - Oct 30, 2016 at 14:43
@Nor Treblig: exactly: onda = wave , literally.

Dieter - Oct 30, 2016 at 17:41
@Nor: I've seen all these signs in germany: "on air", "Aufnahme", "auf Sendung" and "Ruhe". But I can't tell how often these signs are used. I assume that "on air" is common in radio stations these days. I will keep an eye on it. :-)

Big Red Button - Oct 30, 2016 at 19:08
Since this is a caution label, as many people as possible should be able to understand the insciption.
English is the most spoken language. Therefore, if I were responsible for such a sign within a radio station in a non-anglophone country, I would probably decide for "on air", because there may be people who don't understand the official language of that particular country.

Nor Treblig - Oct 31, 2016 at 03:15
@Big Red Button: Yes and no: English may be the most spoken (or better: most understood) language.
But there is a reason something is called official language: You better have everything in this/these language(s).
Especially in touristy areas you may add English and other languages (if you have a lot of Russian tourists in one area you may also show everything in Russian).

In a professional environment on the other hand you can use technical terms in whatever language they are, as you said.
This may be "on air" in this example, but in others it could be the one in an official language which is perfectly fine: If you are working there you just have to know/learn those terms.

Another example would be big red buttons in swimming pools which should be labeled adequately...

Big Red Button - Oct 31, 2016 at 05:37
However, a radio station is typically a cosmopolitan institution. They could also make the sign bilingual in the translated versions, using a smaller (even more pixelated) font size.
By the way, I somehow like "on air" also because it's a cliché. You see "on air" on such signs almost without exception, when you're watching commercials or video clips.

Nor Treblig - Oct 31, 2016 at 06:31
Btw. a 3x3 pixel font is surprisingly good to read: http://www.fonts2u.com/3-pixel-regular.font

Marcel - Nov 02, 2016 at 04:36
So, do you provide some guidelines for the translators so that they do not produce translations that are too big or too narrow? Or have way too many lines on screen? I suppose that in every language, you can choose between a variety of wordings to express (nearly) the same thing.

Nor Treblig - Nov 02, 2016 at 04:59
The guideline is: You are paid per original word, not translated word :-)

Zak Phoenix McKracken - Oct 28, 2016 at 09:00
Hi Marcel,
For text ART, I imagine the translator will provide the text, and Gary/Mark/Octavi will do the rest...

Loftcraft - Oct 28, 2016 at 06:24
Thank`s for the German translation!

The one thing I don`t like about "text-heavy" INDIE games is that most of them are not translated. It`s so much better to play a game in ones native language.

BTW.: I think TP will sell great in Germany/Austria, we adore adventure games... :)

Jammet - Oct 29, 2016 at 13:52
As a backer, most of us get digital copies, and yes, a bunch of us are going to get boxed copies in addition to that. Really hope there will be boxed copies. The box offered as a backer reward was way out of my reach.

Guga - Nov 01, 2016 at 04:24
As the author of a (sort of) text-heavy indie adventure game I confirm, it's a mess. I only published the game in English and Italian since these are the two languages I know and I can write jokes in, I didn't want to risk awful translations that would destroy the feel of the game. I had a friend translate everything in French, and even I could see that it was badly translated, so I never published it.

I then managed to get a Spanish translation from a colleague of mine who did a wonderful job, but it took A LOT of time for him even if they were just 700 lines. I have users asking me for other translations, but what can I do? I don't have the money to pay a professional, so I'll just stop at three languages.

Dieter - Nov 02, 2016 at 05:47
Export the text in a file like Ron did. Publish this file and allow the community to do their own translations. Then change your game so that it allow to (hot-)load these text files. If the translations are good you could ship them with your game. If they are crap the players could decide if they want to use the translation or not.

MrKii - Oct 30, 2016 at 15:29
As a fellow coder, I love this kind of tech posts. I'd love more of them after the game has been released (a kind of post-mortem), specially on the Squirrel-SCUMM strenghts and weaknesses. Or a Friday Questions just for tech stuff :)

Cole Trickle - Oct 30, 2016 at 17:56
What do you mean you "ran a series of python scripts"? Most of the jokes are stolen from John Cleese?

Big Red Button - Oct 30, 2016 at 19:28
I assume that those scripts weren't monty enough for something like this. But, if so, they wouldn't have any effect on their jokes, because the members of the dev team have a great sense of humor as well.

LogicDeLuxe - Oct 31, 2016 at 16:51
I guess, he uses this programming language: https://en.wikipedia.org/wiki/Python_%28programming_language%29

Cole Trickle - Nov 01, 2016 at 07:07
Really? Doesn't make any sense to me... I stick to the John Cleese theory...

LogicDeLuxe - Nov 02, 2016 at 15:07
At least, that language's name is in fact derived from Monty Python's Flying Circus.

Nor Treblig - Nov 02, 2016 at 16:46
Wait, it's not derived from the movie Pythons on an Aircraft?

Cole Trickle - Nov 02, 2016 at 19:05
Is that the movie with The mule "El Jackson"?

Zak Phoenix McKracken - Nov 03, 2016 at 04:16
Like the work "SPAM", its current meaning came from that show, too.

N. Harold Cham - Oct 30, 2016 at 19:38
Hey Ron, I really appreciate the debugging screenshots you recently posted on Twitter (https://goo.gl/66pJVy and https://goo.gl/OKYPlu). Just as a suggestion for a future blog post, could you please explain what the different lines depict? The blue boxes seem to be actors, green might be a walkable area outline and yellow the actor's path, but what about the red boxes, triangles, and crosshairs that are visible? And those hundreds of fine white lines in the second picture?

I guess you have a couple of debugging hotkeys in the program - would it be possible to leave them in, maybe hidden a bit so it doesn't interfere with normal gameplay and people won't get the debugging overlays by accident? I would love to occasionally turn on the debugging mode and take a peek behind the curtains!

Thanks for this awesome blog and letting us look over your shoulder!

Nor Treblig - Oct 31, 2016 at 02:58
You already described most of the lines perfectly fine!
The red triangle in the 1st screenshot seems to be an excluded area of the green walkbox (to exclude that column).
Those exclusions are more apparent in the 2nd screenshot.

In the 1st one you also have red rectangles which are hotspots. Every hotspot has a red cross associated defining the walk-to location.
This was covered in this early blog post: https://blog.thimbleweedpark.com/wimpy
(one hotspot is for the door apparently, the others on the floor may be for currently hidden objects or NPC interactions?)

The yellow line seems to be the calculated walk path, which isn't optimal at its end btw.
This may be the reason for debugging it in the first place.


On the 2nd screenshot you can see white lines connecting every node with other directly visible nodes which are used for pathfinding.
Mic Uurloon used a similar approach with his engine, see this article: http://www.groebelsloot.com/2016/03/13/pathfinding-part-2/
It even includes interactive examples!

Blue crosses are locations of actors.

N. Harold Cham - Oct 31, 2016 at 03:32
Thanks for your extensive comment! And thanks a lot for the article on pathfinding. It's been one of the holy grails of my early programming endeavours when I was young. I was just curious about the sheer amount of white lines, which makes it look like something like an O(n²) solution where I would have guessed a faster solution might be working as well (using a mesh of connected convex polygons - think... portals!).

Nor Treblig - Oct 31, 2016 at 05:19
It started more simple and with convex polygons: https://blog.thimbleweedpark.com/walkbox_video
"Right now, walk boxes must be convex polygons, but I plan on making it so actors can navigate around the interior of concave polygons."

It seems like he decided for a more complex approach similar to the one in the other article. For this type of game it's more or less unlimited CPU anyway!

Nor Treblig - Oct 31, 2016 at 05:23

Nor Treblig - Nov 01, 2016 at 03:34
I still wonder what that is moving horizontally to the right. Certainly not fireflies. Maybe clouds?

longuist - Nov 01, 2016 at 04:23
I bet birds. Most of them are occluded, but the topmost is visible shortly.

Nor Treblig - Nov 01, 2016 at 05:34
Can't wait to find it out myself! Hope I can handle the truth...

Zombocast - Nov 01, 2016 at 19:27
Wonder how much money will it take to get Christopher Lloyd to voice Mr Edmond.

Zombocast - Nov 03, 2016 at 04:35
Ron, you should cash in your souvenir chip $ 1,000.00 = 767.17 US. Source:  http://bit.ly/2fkdIKh
PAX to Casino = 4 min, http://bit.ly/2eqxAxM

Spend it to see the sights
PAX to Melbourne Cricket Ground(Aussie baseball) = 38 min, http://bit.ly/2eCq8x2
PAX to Melbourne Star Observation Wheel(Aussie  = 30 min, http://bit.ly/2fkeyqi

.. second thought save the souvenir. you can just use google maps and see it from your laptop

Zombocast - Nov 03, 2016 at 08:04

Cole Trickle - Nov 03, 2016 at 08:45
Any words on the Cubs?

Zak Phoenix McKracken - Nov 04, 2016 at 11:21
It reminds me Back to the future II... they are late by one year, but they did their goal!

Big Red Button - Nov 04, 2016 at 20:45
The game even exceeds their goal!

Big Red Button - Nov 04, 2016 at 22:02
... presumably.

DZ-Jay - Nov 04, 2016 at 07:06
In other news, I found this video on YouTube, posted in AtariAge.  It's apparently a demo of Thimbleweed Park released for the Atari VCS back in the early 1980s to entice people to purchase a PC so that they can play the game once it is released.

https://www.youtube.com/watch?v=BH728FBmH-c

(It's all tongue-in-cheek, but I found the notion of an Atari demo to promote the game funny and creative, and thought that Mr. Gilbert would get a kick out of it.  The demo itself is crap, but so is the Atari VCS, so there. :P)

    -dZ.

Gv - Nov 04, 2016 at 10:32
I am the author of that demo :)
Thanks for watching and commenting. Yeah, it's crap but as you say, VCS is kind of crappy too. You cannot escape that "limitation" ;)
It's what makes developing for it so funny, I suppose. To try to make something not crappy.

Gv - Nov 05, 2016 at 17:23
DZ-JAy please don't think I'm offended by you calling it crap. Good luck with your game!

Gv - Nov 04, 2016 at 10:34
I mean "so fun", not "so funny"