Monday, June 9, 2014

Noserudake 2 and the language of development

Noserudake 2 is a fantastic Unity browser game where you balance things on a platform. It is also the sequel to Noserudake 1, and the Japanese developer's changes between installments are telling.

They gave the player direct control over rotating the dais, they enabled real-time shadows and textured the dais to give more depth cues, and the physics objects have been well-tuned to be more forgiving and have more weight and heft. Also, the slapstick shift between level 4 and level 5 is pretty brilliant, a joke through level design that transcends language barriers. But one of the most glaring new changes in Noserudake 2 is that the developer has added English translations alongside all the in-game Japanese text. The developer is clearly conscious that they also have a Western anglophone audience following their work. But why are they accommodating us?

Ramsey Nasser has done a lot of great work and curation on the geopolitics / linguistics of developer cultures. His work on قلب, a Scheme-like programming language that consists of Arabic characters, calls to attention how the vast majority of most common programming languages have English origins, with English documentation and English communities... and due to this dominance, simply getting many computers to recognize non-Latin languages at all, is very difficult, not to mention making anything with it.

If computers are tools for art, and you're a computer artist who doesn't readily speak English, then a computer is sometimes a 20 lb. paintbrush covered in thorns and molasses that no one can tell you how to use. Good luck googling Unity Answers or Stack Overflow, good luck understanding video tutorials, good luck auto-translating the text embedded in diagrams. The self-taught "everyone can learn to make games" indie game developer identity is mediated by the politics of language.

(And of course, this isn't specific to computing. I remember a friend telling me about his interview with an economics professor, and they had a lot in common -- "Oh! ¿Hablas español?" -- and they started excitedly talking in their native language, only to realize that they couldn't actually discuss economics in Spanish, because all the jargon and research is in English.)

I'm a mostly self-taught developer myself. I'm used to figuring out things. And I could do that because I knew English.

So it was a big shock to me when my co-teacher at Parsons, Kyle Li, introduced the lesson for the day -- hooking OSC data into Unity using a MikuMikuDance plug-in. (If you have no idea what Hatsune Miku is, ask Wikipedia.)

One student needed help assigning game object references, so I walked over to help them.

And then I stared at the transform hierarchy in their Unity editor (to the left) and had no idea what any of it meant because all the labels were in Japanese and I know a grand total of about 10 characters. I didn't even know the Unity editor had support to display those characters.

Hmm, okay, well I know this is a joint hierarchy, and there are some bones with "IK" in the name so they're probably some IK influencers?

Let's check the Mecanim rig import settings on the model...

... Wait, they're bypassing Unity's model importer? What's a PMX? What's VMD? PMD?

Turns out, the Japanese MMD community has its own file format for all the various gestures and face expressions, e.g. Miku blowing butterfly kisses at you, and a lot of that bypasses Unity's built-in 3D mesh importer. And I had no idea how any of it worked, and the documentation and code comments were in Japanese. I wouldn't even know what to google for.

In this case, it wasn't just a language barrier -- it was also a different workflow / asset pipeline / approach to the engine. The last sustained comparison of Western and Japanese development cultures, in my memory, was the Japanmanship blog.

I usually have a knee-jerk reaction against stuff like this -- people writing about how "quirky" Japanese fashion is, or people arguing about how Eastern thought is so "profound" and explains X about Tokyo, or how Japanese stories don't have conflict and isn't that so much better of a narrative crutch? It's orientalist rhetoric, trying to setup one of many different Asian countries as this exotic foil for us to press our face against the glass before returning to our mundane straightforward unpoetic Western lives.

So it was refreshing to read Japanmanship and hear someone constantly complain, in pretty technical / concrete / boring terms, about Japanese game industry dev culture. Finally, a Western guy who loved Japan enough to move there, but doesn't fetishize it. Instead, he fetishized long analyses of production schedules and operations research, which Japanese industry is pretty famous for.

Fittingly, the only "Japanese game industry" anecdote I remember, totally by hear-say, goes something like this:

screenshot by Duncan Harris / Dead End Thrills
It's 2007. Square is working on The Last Remnant, and licensing a foreign game engine (Unreal 3) for the first time.

There is an avalanche of problems. Epic has to translate all the documentation to Japanese, a lot of the terminology doesn't translate easily, and a lot of the Western workflow rubs the Japanese developers the wrong way since supposedly their dominant tradition is more to hard-code things into games.

The one thing that goes right for Square is actually a scheduling nightmare: for once, the Square art team has stable tools and a solid pipeline from Unreal, and they end up working so easily and quickly that they shoot far ahead of a struggling programming department. This might explain the game's terrible framerate -- if you let artists lead production, they're probably going to want to cram in as many models / textures / shaders as possible?

After their relatively bad experience with The Last Remnant, Square never went back to Unreal. They decided the hassle wasn't worth it and invested in their own engine, presumably borrowing the ideas they did like from Unreal for their own Crystal Tools thing that powers the Final Fantasy 13s.

... I don't really know if that story's true, but let's say it's at least 50% true. To me, this kind of story has fed into the dominant game industry narrative today: Japanese AAA doesn't invest in engine technology, "Japanese games just suck," Japanese games has never had an indie moment and it's headed toward inevitable collapse, etc.

So now, I feel kind of shitty for buying into that angle, especially when there's totally a very real Japanese indie community and BitSummit sounds fantastic. But that kind of suggests that all came out of nowhere, ignoring a relatively old tradition of Flash browser escape-the-room games (Crimson Room is widely seen as the "first" but Detarou is my favorite contemporary author) and the huge visual novel community, which has been around for a long time with their own established indie tools like NScripter. (The Western counterpart might be the indie point-and-click scene with its own tool, the Adventure Game Studio.)

Maybe they're not indie just because they didn't fit our idea of indie? Jesper Juul has written about "high-tech low-tech independent style", how many IGF games try really hard to evoke some sort of honesty in materials. An anime style evokes a sleek Japanese mass media where we just lump it all together as "anime" and not as "indie anime" / scrappy go-getters scratching on a concrete wall. Or perhaps the Japanese don't care about that distinction like we do.

Like, in some sense, isn't Hatsune Miku one of the biggest indie phenomenons ever? She graces glossy magazine covers and sells out concerts. While she was originally engineered by a giant company with a lot of resources, the Japanese indies took defacto ownership of her with MikuMikuDance, a popular indie freeware program (hosted on a still-operating Japanese GEOCITIES!!) that lets people record their Let's Plays of Hatsune Miku performing.

It's like sfxr + Garry's Mod, within the same cultural magnitude as Minecraft... and it's hosted on Geocities.

Note that MikuMikuDance has an English version as well. It exists for the same reason why Noserudake 2, a small Unity web browser game, saw fit to prioritize some form of English translation. As Rami Ismail argues, English has a privileged position among other languages. We expect things to be perfectly translated fluently to English (and if they're not, we mock them) but rarely extend the same courtesy the other way. This one-way exchange smacks of racist English-only policies.

When we do attempt translation to other languages, we treat it as a luxury to attempt after the game is super popular already at version 3.0, or we conduct translation as a community crowdsourcing project that doesn't deserve the same dedicated staffing as new gun reloading animations. Not even multi-million AAA shooters bother researching anything about Arabic despite their much-publicized focus on realism and military authenticity. Because "it's not worth it"?

Well, the developer of Noserudake 2 thought it was "worth it" to try to connect to foreign audiences, and prioritized THAT over changing the background color away from the default Unity blue. Localization was more important to them than polishing the game to death.

There's never been one big monolithic developer community. It has always been fragmented along geographic (do you live in Toronto?), linguistic (do you speak Russian?), technical (do you use Gamemaker?), and aesthetic (do you make pixel art notgames?) boundaries.

And that's okay! But we need to be conscious of these boundaries so that we can try to reach across them and occasionally get to know thy neighbor.