interactive fiction system for utf-8 RTL languages

[size=150]most interactive fiction game authoring software is in English or Latin based languages , and there is no software that give support for the RTL languages like Arabic and Farsi and Urdu and other Arabic alphabet based languages, and its huge market to simply ignore so you could just add that functionality to an existing MIT licensed interactive systems like twine monetize it through paid support , for me i searched and searched for any interactive fiction software that support utf-8 or unicode RTL style of writing but nothing comes up.[/size]

Forgive me for not knowing a lot about this, so I don’t know if this is applicable, but there is a Google font called Amiri that came up when I googled Farsi google fonts:
(I just used Farsi as a search, I know that isn’t the only language you asked about.)

I’m not familiar with Farsi so I don’t know if it includes everything but if Twine or another system will accept web-fonts, it seems you could use it for the output. The code will still be in English, but would this be a stepping stone to creating IF in one of these languages?

Here’s a forum post about Google fonts in Twine Harlowe: … in-harlowe

Here’s more in the Twine documentation: … appearance

[size=150]thanks for your kind reply ,
the issue is that interactive fiction creation systems that are used currently does not support full utf-8 set Unicode languages, and everyone who creates interactive fiction games or interactive creation tools complain of lack of donation support and paid revenue for their great works , the solution is simple create a new code-less drag and drop interactive fiction desktop editor that support all non Latin characters by being natively supporting full utf-8 set Unicode, and price it like what tyronbuilder or visual novel maker are for the paying customers in visual novel market on steam and other market platform.[/size]

I think all the major IF systems support the Unicode “base plane” (characters 0 to FFFF). Typically it’s not a matter of supporting particular character sets, but rather passing the Unicode data cleanly through the tool. For example, Twine displays in a regular web browser, so it just has to get the Unicode strings into the web document.

Right-to-left support is the tricky part. There are probably LTR display assumptions encoded in the CSS for Twine and the display code for Inform interpreters. I suspect that’s never been tested. Updating the systems to support that is possible, but it’s some work and someone would have to look at it.

Oh hey - another good reason to use fyrevm-web! Not sure about the unicode support, but the web design is entirely up to you.

[size=150]thanks for your reply,
this issue is an idea that i feel worth exploring and monetizing for IF programmers and IF growing community , so i present it as a chance for developers
i maybe the only Saudi nerd who plays interactive game :slight_smile:

[size=150] thank you for your reply,
i am honored that you commented on this issue, you effort is beyond greatness with Glulx
wish that you continue your development efforts and here is a big chance to open a huge new markets (education,gaming) be enabling people around the globe to create interactive fiction in their native languages chinese,indian,thai,
you can be an open source developer and make a living by offering services [/size]

Well, the hard part is someone altering Inform 7 to handle your language. That’s well beyond my capabilities. But if you get that done, I’d be happy to get your story file working in fyrevm-web.

[size=150]altering inform 7 to support Unicode utf-8 (non Latin character set ) and right to left language style in my opinion is enough for any known language.

Honestly, UTF-8 is the hard part. RTL is all in the display layer which is open source. But Inform accepting UTF-8 natively would be amazing and useful for a lot of languages.

(The library changes have already been made, by Andrew Plotkin. But even with his changes you can’t use non-Latin-1 characters in an Understand line. Which makes it very difficult to do any non-English parsing.)

Well, I did have this thing that pumps the output from dumbfrotz (made for piping to other programs) into a script that translates via Google translate:

For farsi, it spits out something like this:


You should be able to type in commands in the translated language as well, but the verbiage can be a bit hit or miss there.

Terminology correction: you’re talking about Inform handling Unicode input natively. The Inform compiler already accepts UTF-8 source files. The UTF-8 decoding is correct, but its internal text handling (and that of the I6 parser code) does not deal with Unicode strings.

Right. That covers the I6 parser code, which leaves the Inform compiler internals.

[size=150]thanks for your effort and kind reply,
the Farsi text output is aligned and represented in right-to-left style correctly [/size]

No problem. It also looks like the google-translate trick I mention in that thread works for inform games in quixe as well.

[size=150]yes it works for the content of the story but the commands in the parser are still in english [/size]

Indeed; you’ll need an actual game written in an RTL language for that.

I tried writing a one room game with Arabic and the description was okay, but the name property threw up a unicode error.

Yes, parsing would be nightmarish, and a system would probably need to be built from the ground-up by someone in their language.

However, click/choice based systems that don’t need to tear apart a player’s command and parse it are most likely the easiest first step.

I don’t think that’s true. The language stuff can be done in language.i6t and if the ni compiler were refactored to handle unicode, it should just work.

I believe the I6 compiler can handle unicode, so that shouldn’t be an issue.

The only thing that would hard would be to allow this:

المطبخ هو غرفة. “هذا هو المطبخ.”

Which translates to:

The kitchen is a room. “This is the kitchen.”

Of course if you were to really do this in Arabic (or any other RTL), you’re right…you’d want to build it for that language’s idiosyncrasies.

This worked:

“Arabic” by David

The kitchen is a room. “أنت واقف في المطبخ ، مقلّص بثلاجة ، وموقد ، ومنضدة رخامية.”

Rule for printing the name of the kitchen:
say “مطبخ”.

I get:

An Interactive Fiction by David
Release 1 / Serial number 180316 / Inform 7 build 6M62 (I6/v6.33 lib 6/12N) SD

أنت واقف في المطبخ ، مقلّص بثلاجة ، وموقد ، ومنضدة رخامية.

(not accounting for the RTL layout though, which would be handled in the browser)