تقریباً هر بازیساز ایرانی این صحنه را دیده: متنی که در ویرایشگر درست بود، در بازی حروف جدا از هم و برعکس نمایش داده میشود. دلیلش این است که نمایش درست فارسی دو کار جدا لازم دارد و همهی موتورها هر دو را خودکار انجام نمیدهند.
دو مشکل اصلی
۱. اتصال حروف (Shaping)
در فارسی، شکل هر حرف به جایش در کلمه بستگی دارد: «ب» در ابتدا، وسط و انتهای کلمه شکل متفاوتی دارد. سیستم نمایش متن باید شکل درست را انتخاب کند.
۲. جهت (Bidi)
فارسی راستبهچپ است، اما اعداد و کلمههای انگلیسی وسط متن چپبهراستاند. ترکیب درست این دو، الگوریتم خودش را دارد.
در گودو
نسخههای جدید گودو (۴ به بعد) از شکلدهی متن پیچیده و راستبهچپ پشتیبانی داخلی دارند. کافی است:
- یک فونت فارسی مناسب به Label یا RichTextLabel بدهید؛
- جهت متن را روی راستبهچپ یا خودکار تنظیم کنید.
این یکی از دلایلی است که گودو برای بازیهای فارسیزبان جذاب شده. (مقایسهی موتورها)
در یونیتی
سیستم متن یونیتی (TextMeshPro) بهطور پیشفرض حروف فارسی را به هم نمیچسباند. راهحل رایج، استفاده از پلاگینهای متنباز فارسیساز است که متن را قبل از نمایش شکلدهی و مرتب میکنند. موقع انتخاب پلاگین، به پشتیبانی از اعداد، علائم و متن چندخطی دقت کنید و حتماً متنهای واقعی بازیتان را تست کنید.
فونت
- فونتی انتخاب کنید که همهی حروف فارسی و نیمفاصله را داشته باشد.
- لایسنس فونت را بررسی کنید؛ بسیاری از فونتهای فارسی برای استفادهی تجاری مجوز جدا میخواهند. فونتهای متنباز با لایسنس آزاد هم وجود دارند.
- خوانایی در اندازهی کوچک روی صفحهی گوشی را تست کنید.
اعداد
تصمیم بگیرید اعداد فارسی (۱۲۳) نمایش دهید یا لاتین (123) و در کل بازی یکدست باشید. برای امتیاز و قیمت، اعداد فارسی حس بومی بهتری دارند.
ورودی متن
اگر بازیکن نام یا پیام مینویسد، ورودی متن هم باید فارسی را درست نشان دهد؛ این بخش معمولاً از نمایش متن سختتر است و تست جداگانه میخواهد.
چکلیست
- متنهای طولانی چندخطی را تست کنید.
- ترکیب فارسی، عدد و انگلیسی را تست کنید.
- نیمفاصله را چک کنید («میشود» نه «میشود» یا «می شود»).
- طراحی رابط کاربری را آینه کنید: دکمهی بازگشت و فلشها در RTL جابهجا میشوند.
جمعبندی
فارسیسازی درست، تفاوت یک بازی حرفهای با یک بازی سرهمشده را نشان میدهد. همهی بازیهای نمونهکار کلیپا کاملاً فارسیاند؛ اگر بازی فارسی میخواهید، سفارش ساخت بازی را ثبت کنید.