# Wish: complex script support

**URL:** <https://community.easyrpg.org/t/wish-complex-script-support/167>\
**Category:** Player\
**Created:** [May 21, 2015, 12:13pm UTC](https://community.easyrpg.org/t/wish-complex-script-support/167 "2015-05-21T12:13:23Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Demetrius](https://community.easyrpg.org/user_avatar/community.easyrpg.org/demetrius/32/477_2.png) [@Demetrius](https://community.easyrpg.org/u/Demetrius)\
**Post date:** [May 21, 2015, 12:13pm UTC](https://community.easyrpg.org/t/wish-complex-script-support/167/1 "2015-05-21T12:13:23Z")

</div>

One of the declared goals of EasyRPG is…

> [@](#):
>
> Multi-language: The more languages are supported, the better. ([About page](https://easy-rpg.org/about.html))

Which is very cool. We already have Unicode support (using [Encoding=65001](https://community.easyrpg.org/t/cyrillic-font-problem/138/1#p1010) or XML; although there’s no ready-made way to edit such maps).

But currently we only support the simplest scripts where 1 Unicode codepoint = 1 character. However, to support more characters, we need:  
[ul]  
[li] combining characters and positional variants (Arabic, Indic scripts),[/li]  
[li] right-to-left writing (Herbew, Arabic),[/li]  
[li] vertical writing (vertical LRT for Mongolian and related scripts; vertical RTL might be used as an option for Chinese and Japanese).[/li][/ul]

I don’t know how this should be handled, but it would be nice to think about these features.

I’m not sure if fixed-width font works well for all the languages. We may need to use a variable-width fonts for these languages. But if we have variable-width font, the current ‘Show Message’ function is definitely not very useful: maybe we need an ‘advanced show message’ which re-flows the text and takes bidirectionality into account.

RTL and vertical writing definitely requires re-thinking the whole interface.

---

<div class="post-metadata">

**Author:** ![fdelapena](https://community.easyrpg.org/letter_avatar_proxy/v4/letter/f/43a26b/32.png) [@fdelapena](https://community.easyrpg.org/u/fdelapena)\
**Post date:** [May 21, 2015, 2:15pm UTC](https://community.easyrpg.org/t/wish-complex-script-support/167/2 "2015-05-21T14:15:51Z")

</div>

We could use [Pango](http://www.pango.org/) (LGPL) to bring these features with ease. Pango can still use FreeType in a lower layer.

---

<div class="post-metadata">

**Author:** ![Demetrius](https://community.easyrpg.org/user_avatar/community.easyrpg.org/demetrius/32/477_2.png) [@Demetrius](https://community.easyrpg.org/u/Demetrius)\
**Post date:** [May 21, 2015, 4:06pm UTC](https://community.easyrpg.org/t/wish-complex-script-support/167/3 "2015-05-21T16:06:32Z")

</div>

This will solve only the first problem, namely complex script support. Also, I’m not even sure it will solve it: is Pango available for Android? Are there fonts clear enough to be read in 320\*240 for most scripts?

For RTL support we need to mirror the menus. Here’s a fake screenshot in Uyghur (I neither speak Uyghur nor write it, so Uyghur speakers please excuse me!), which can be written in Cyrillic and in Arabic scripts:  
 ![](https://community.easyrpg.org/uploads/default/original/1X/53e7f57de56e1adda02d15d9d676db3a84eb3689.png) ![](https://community.easyrpg.org/uploads/default/original/1X/eff3a69468331063f1be75b11f495dd3e1813096.png)

It will get even more complex for vertical scripts, because width ≠ height.

---

<div class="post-metadata">

**Author:** ![Ghabry](https://community.easyrpg.org/user_avatar/community.easyrpg.org/ghabry/32/121_2.png) [@Ghabry](https://community.easyrpg.org/u/Ghabry)\
**Post date:** [May 21, 2015, 4:11pm UTC](https://community.easyrpg.org/t/wish-complex-script-support/167/4 "2015-05-21T16:11:05Z")

</div>

For the font issue to get higher quality I guess a long term solution is rendering in 640x480 instead of 320x240. That’s 4-times the pixel (and upscaling all images… in the same turn we could add “hires” image support)

Which also means to refactor the Draw API. At the moment every Drawable draws directly on the screen. Makes such hacks like “rescape this but not that” hard ^^

---

<div class="post-metadata">

**Author:** ![Demetrius](https://community.easyrpg.org/user_avatar/community.easyrpg.org/demetrius/32/477_2.png) [@Demetrius](https://community.easyrpg.org/u/Demetrius)\
**Post date:** [May 26, 2015, 9:18am UTC](https://community.easyrpg.org/t/wish-complex-script-support/167/5 "2015-05-26T09:18:59Z")

</div>

I wonder if I can add some positional forms to a private-use area of Unicode in Shinonome, and then make changes to the font display code so that it replaces Unicode codepoints with the positional glyphs in PUA.

---

<div class="post-metadata">

**Author:** ![Demetrius](https://community.easyrpg.org/user_avatar/community.easyrpg.org/demetrius/32/477_2.png) [@Demetrius](https://community.easyrpg.org/u/Demetrius)\
**Post date:** [June 9, 2015, 3:09pm UTC](https://community.easyrpg.org/t/wish-complex-script-support/167/6 "2015-06-09T15:09:45Z")

</div>

Fun fact: vertical writing doesn’t require\* bidirectional text.

![](https://community.easyrpg.org/uploads/default/original/1X/f5de3e2d41b4f52444ea673c063fb001c0b107e6.png)

* * *

- When we consider living languages. Oghamic Irish would need a bidi, as Ogham was written from top to down.
