Spring Thing finished on May 7th. The Audience Choice Ribbon was awarded to Tangaroa Deep and the Alumni’s Choice Ribbon to The Xylophoniad. I was the lucky winner of a Sunless Sea Steam key for entering Evita Sempai in the Thing. I also got infinite joy from watching Lynnea Glasser playing my game at Twitch.

The main issue with Evita Sempai was that people from outside of Argentina didn’t quite get the historical context. This made me determined to translate the game into Spanish, my native language, for all of my fellow Argentinians to enjoy. This paid off a lot: Tembac an Argentinian developer and teacher showed my game to his students at UNTREF and got me invited to the first Congreso Internacional de Humanidades Digitales, a neat academic space to display my work alongside other developers and people from academia.

I used Twee2 for the Spanish translation. The process consisted of making a copy of Evita Sempai inside Twine, translating the copy and renaming all the passages to something like passagename-es, decompiled both original and copy with Twee2 using twee2 decompile input.html output.tw2 and then I included my copy in the original with:

::StoryIncludes
first_section.tw2

Finally I recompiled with twee2 build input.tw2 output.html and I uploaded the result to github pages. One of the advantages is that now Evita Sempai code lives on github. Another is that localization wasn’t too cumbersome for Twine. My friend David T. Marchand has been doing Spanish localizations for his games for years and I was surprised to find out that he does so by hand, because vanilla Twine doesn’t provide it’s users with tools to streamline the localization process =(

The Twee2 method isn’t too pretty though, it leaves you with duplicate code, which means you better fix all the bugs you can find before you start localizing or bug fixing will be hell. I was left with a bug in which several line breaks make the text box look bigger than it should, things will continue to be this way until I whip up a script that scans the files and removes the unnecessary line breaks or someone decides to fork my game and fix it for me. Trying to do this by hand is on the won’t fix territory. Also, have you seen all the inconsistent dots at the end of the links? Those work as intended.

There are some alternatives that might be better than what I did. People from LocJAM2 propose to use a javascript localization library such as ln20 or i18next. They even made a tool that would extract Twine 1 strings into a localizable format, such tool was lost and windows only, because they never uploaded the code to github, bitbucket, or anything of the sort.

All this experience has made me tired of Twine, so I won’t be using it anymore for my own releasable games. I will probably move on to Raconteur and might try Texture for the Discworld Jam, because it feels quirky, experimental and parser like without being super dense.

I think Twine is great for very specific tasks, like prototyping games that don’t rely too heavily on variable tracking, making really small games for people’s birthdays and lowering the barrier for those who wish to make games and don’t know where to start. The last one is really important, because games are art, they are for everyone and delving into them should be as easy as delving into any other art form.

I think that thanks to languages like Ruby, Python and Lua or tools like PICO-8 coding has become a really accesible activity, so it pains me to see so many people who are afraid of coding and think it’s impossible to learn. Because programming is so much fun and has brought so much joy to my life that I want to share it with everyone.

That’s why I try to help out with Django Girls when I can and why I’m trying to organize a local initiative for making game development more accesible to everyone. Some friends and I gave an IF workshop two weeks ago and there’s more to come.