IT
OmnvertGörsel • Belge • Ağ

Oyun yazı tipleri aslında font değil: Unicode gerçeği

6 dakika okuma
Futbol oyunu açık bir televizyonun önünde beyaz bir oyun kolunu tutan iki el.

İsim alanına yapıştırdığınız süslü harfler kurulu bir yazı tipinden gelmez; matematik ve daire içi harf bloklarından gelir. Bunun nerede çalıştığı, nerede sessizce bozulduğu belli kurallara bağlı.

Kopyaladığınız şey bir font değil

"Adopt Me fontu" ya da "Roblox fontu" diye aranıp bulunan kutulardan kopyalanan metin, cihazınıza kurulan bir yazı tipi dosyası değildir. Unicode karakterleri kodlar, glifleri değil: bir harfin ekranda nasıl çizildiği fonta aittir, ama o harfin hangi karakter olduğu dosyaya yazılan kod noktasında durur. Süslü görünen harfler, alfabenin normal harfleri değildir; bambaşka kod noktalarıdır.

Fark pratikte şuraya oturur: başkasının oyununa font kuramazsınız. Adopt Me ve Roblox kendi arayüz yazı tipini kullanır, sizin bilgisayarınızda ne yüklü olduğuyla ilgilenmez. İsim kutusuna yazdığınız şey sunucuya karakter dizisi olarak gider. Yani isimde "font değiştirmenin" tek mekanizması, harflerin yerine görsel olarak onlara benzeyen başka karakterler koymaktır. Unicode metin stilleri aracı tam olarak bunu yapar ve dönüşümü tarayıcıda, tablo üzerinden yürütür: yazdığınız metin sunucuya gitmez.

Hangi bloklar kullanılıyor

Bu stillerin neredeyse tamamı beş bloktan çıkar. Blok adlarını bilmek işe yarar, çünkü bir stilin nerede çalışıp nerede bozulacağını büyük ölçüde blok belirler.

BlokAralıkVerdiği görünüm
Mathematical Alphanumeric SymbolsU+1D400–U+1D7FFKalın, italik, el yazısı, fraktur, çift çizgili, sans, daktilo
Halfwidth and Fullwidth FormsU+FF00–U+FFEFA B C: geniş aralıklı "vaporwave" görünümü
Enclosed AlphanumericsU+2460–U+24FFⒶ ⓐ ①: daire içine alınmış harf ve rakamlar
Enclosed Alphanumeric SupplementU+1F100–U+1F1FF🄰 🅐: kare ve dolu daire içi harfler
Phonetic ExtensionsU+1D00–U+1D7Fᴀ ʙ ᴄ: küçük büyük harf (small caps)

Altı çizili, üstü çizili ve "zalgo" türü stiller ayrı bir mekanizmaya dayanır: Combining Diacritical Marks bloğundaki (U+0300–U+036F) birleşen işaretler normal harfin arkasına eklenir. Harf yine normal harftir, üzerine bir işaret binmiştir. Bu yüzden altı çizili isimlerde karakter sayısı iki katına çıkar. Tek tek karakter aramak isterseniz Unicode sembol tarayıcısı her kod noktasının bloğunu ve gösterimini listeler.

Yüzleri yukarı bakan ahşap matbaa harflerinden oluşan sık bir alan; koyu ve açık renkli onlarca farklı harf biçimi.
Gerçek bir yazı tipi, aynı harfler için çizilmiş biçimler kümesidir; tıpkı bu harf blokları gibi. Kopyala-yapıştır “oyun fontları” ise tersini yapar: biçimi korur, altındaki harfi değiştirir.

Gerçek font mu, Unicode oyunu mu

Dört hızlı test ayrımı kesin olarak yapar.

  1. Düz metin testi. Metni adres çubuğuna ya da bir not defterine yapıştırın. Süs kalıyorsa Unicode'dur; kayboluyorsa biçimlendirmedir ve zaten isim alanına taşınamaz.
  2. Arama testi. Sayfada Ctrl+F ile normal harflerle arayın. Süslü yazı bulunmuyorsa karakterler gerçekten farklıdır.
  3. Uzunluk testi. Matematiksel alfabedeki her harf UTF-8'de dört bayt tutar, normal harf bir bayt. Karakter sınırı olan alanlarda üç harflik bir ek bile sınırı doldurabilir.
  4. Kaynak testi. Size bir kopyala düğmesi veriliyorsa Unicode'dur. Bir .ttf veya .otf dosyası indiriyorsanız gerçek fonttur ve yalnızca kendi grafiklerinizde işe yarar.

Sessizce kaybolan karakterler

Bu blokların hiçbiri tam alfabe değildir. Eksik olan yerlerde dönüştürücü karakteri olduğu gibi bırakır ve isim yarı stilli çıkar. Türkçe konuşan bir oyuncunun ilk çarpacağı duvar da budur.

  • Türkçe harfler. ç, ğ, ı, ö, ş, ü ve büyük karşılıkları bu blokların hiçbirinde yoktur. "Şeker" yazdığınızda Ş normal kalır, geri kalan harfler stillenir. İsim tutarsız görünür.
  • Rakamlar. Kare içi, dolu daire içi ve parantezli alfabelerde 0-9 için standart bir set yoktur; italik alfabelerde de rakam hiç kodlanmamıştır. Bu setlerde rakamlar düz geçer ve adında yıl ya da numara olan isimlerde bu hemen göze çarpar.
  • Parantezli harfler. ⒜ ile ⒵ arasında yalnızca küçük harf vardır. Büyük harf istendiğinde aynı glif kullanılır, yani büyük-küçük ayrımı tamamen kaybolur.
  • Küçük büyük harf. Small caps setinde x için bir karşılık yoktur. "Max" yazan bir isim "ᴍᴀx" olarak çıkar ve son harf bir baş yukarı durur.
  • Alt simge. b, c, d, f, g, q, w, y ve z harflerinin alt simge biçimi yoktur. Bu setle yazılan çoğu isim yarı yarıya normal kalır.

Kuralı tersinden okumak daha kolay: bir stil ne kadar egzotik görünüyorsa alfabesi o kadar eksiktir. Kalın sans seti 26 büyük harf, 26 küçük harf ve 10 rakamın tamamını kapsar. İtalik setlerde rakam yoktur, çünkü Unicode'da italik rakam diye bir şey hiç kodlanmamıştır; dekoratif setlerde boşluk çok daha geniştir.

Nerede çalışır, nerede reddedilir

Aynı metin her alanda aynı davranmaz. Kullanıcı adı alanları genelde dar bir karakter listesine izin verir; görünen ad (display name) alanları daha esnektir. Bir stil reddediliyorsa sorun stilin kendisinde değil, o alanın doğrulama kuralındadır.

AlanBeklenti
Oyun içi kullanıcı adıÇoğunlukla reddedilir; kayıt sırasında karakter listesi dar tutulur
Görünen ad, evcil hayvan adı, takas notuGenelde çalışır, ama filtreye takılabilir
Sohbet ve durum metniÇalışır; moderasyon filtreleri agresifse silinebilir
Instagram ve Discord biyografisiÇalışır, en güvenli kullanım alanı burasıdır
Word, e-posta, form alanıGörünür ama arama, sıralama ve otomatik tamamlamayı bozar

Platforma göre hangi stillerin ayakta kaldığını görmek için Adopt Me isim stüdyosu, Roblox yazı stilleri, Discord ve Instagram sayfalarında setler o alanın karakter sınırına göre ayıklanmıştır. Yine de tek güvenilir yöntem, ismi gerçekten kaydetmeyi denemektir.

Erişilebilirlik: kimsenin yazmadığı kısım

Kod noktalarının resmi adı burada belirleyici oluyor. U+1D5D4 karakterinin Unicode'daki adı "MATHEMATICAL SANS-SERIF BOLD CAPITAL A"dır. Bu karakter A harfinin kalın hali değildir; matematik notasyonu için ayrılmış, ayrı kimliği olan bir semboldür.

Ekran okuyucular metni karakter kimliğine göre seslendirir. Bir kelimeyi tanıyamadığında karakterleri tek tek adlarıyla okur ya da hiç okumaz. Matematiksel alfabeyle yazılmış bir isim bu yüzden ya bir dizi sembol adı olarak, ya "bilinmeyen karakter" tekrarları olarak, ya da hiç okunmaz. Ekran okuyucu kullanan bir oyuncu sizin isminizi öğrenemez. Birleşen işaretli stiller daha da kötüdür: her harfin ardından ek bir işaret geldiği için okuma tamamen parçalanır.

Bu, kozmetik bir sorun değil. WCAG'in okunabilirlik başlığı metnin makine tarafından anlaşılabilir olmasını ister; harflerin yerine sembol koymak tam olarak bu katmanı bozar. Aynı sebeple isim, sıralamada yanlış yere düşer, etiketleme ve arama kutusunda bulunamaz, otomatik tamamlamaya hiç girmez.

Platformların bu karakterleri filtrelemesinin sebebi de aynı yerden gelir: küfür ve taciz filtreleri normal harflere bakar, matematiksel alfabeyle yazılmış aynı kelime filtreden geçer. Bu yüzden birçok oyun ve sosyal ağ bu blokları kullanıcı adında baştan yasaklar.

Normalleştirme her şeyi geri alabilir

Unicode'un normalleştirme biçimlerinden NFKC, uyumluluk eşlemesi yapar: matematiksel alfabeleri, tam genişlikli formları ve daire içi harfleri düz ASCII karşılıklarına geri çevirir. Kullanıcı adını NFKC ile normalleştiren bir sistemde 𝗔𝗕𝗖 kaydedilirken sessizce ABC olur. Kayıt kabul edilir, süs kaybolur ve neden kaybolduğu hiçbir yerde yazmaz. Bir isim "bir yerde çalışıp başka yerde çalışmıyorsa" sebebi genelde budur.

Doğru yol: grafikte font, isimde Unicode

İki ayrı iş olduğunu kabul etmek çözümü kolaylaştırır. Küçük resim, afiş, kanal görseli gibi yerlerde gerçekten font kullanırsınız: lisansını aldığınız bir .ttf veya .otf dosyasını bir grafik programında yükler, istediğiniz kalınlığı ve kerningi elde edersiniz. Orada Unicode numarasına ihtiyacınız yoktur, çünkü çıktı bir görseldir.

İsim, biyografi ve sohbet gibi metin alanlarında ise tek mekanizma Unicode'dur, ama seçici olmanız gerekir. Alfabesi tam olan bir set seçin, sonucu kopyalamadan önce rakamlarınızın ve Türkçe harflerinizin yerinde durduğunu görün, süslemeyi bir iki karakterle sınırlayın. Ayırıcı ve çerçeve için emoji genelde daha güvenli bir seçimdir, çünkü emoji filtrelenmez ve ekran okuyucuda gerçek bir adı vardır; emoji seçici kod noktasıyla birlikte kopyalamanıza izin verir.

Kısa kontrol listesi

  1. Stili seçtikten sonra ismi düz bir metin alanına yapıştırıp tüm harflerin dönüştüğünü doğrulayın.
  2. İsminizde rakam varsa kalın sans setini seçin; Türkçe harfler hiçbir sette dönüşmez.
  3. Kullanıcı adı yerine görünen ad alanını hedefleyin; kayıt alanları daha katıdır.
  4. Birleşen işaretli stilleri isimde değil, en fazla kısa bir durum metninde kullanın.
  5. Grafik işi için Unicode değil, lisanslı bir font dosyası kullanın.

Sık sorulanlar

Gerçekten bir Adopt Me fontu var mı?

Oyunun kendi arayüzünde kullandığı bir yazı tipi var, ama onu isim alanına uygulayamazsınız. İsim kutusuna yazdığınız şey sunucuya karakter olarak gider; oyun sizin cihazınızdaki fontlara bakmaz. Dışarıda 'Adopt Me fontu' diye anlatılan şey, matematiksel ve daire içi harf bloklarından gelen Unicode karakterleridir.

İsmimdeki bazı harfler neden stillenmiyor?

Kullandığınız blok tam bir alfabe içermiyor. Türkçe harfler (ç, ğ, ı, ö, ş, ü) bu blokların hiçbirinde yok; kare ve dolu daire içi setlerde rakam yok; small caps setinde x yok; alt simge setinde dokuz harf eksik. Eksik karakterler olduğu gibi geçer ve isim yarı stilli görünür.

Oyun ismimi neden reddediyor?

Kullanıcı adı alanları genelde dar bir karakter listesiyle doğrulanır ve bu bloklar listede yoktur. Ayrıca küfür filtreleri normal harflere baktığı için bu karakterler filtre atlatma yöntemi sayılır ve baştan engellenir. Görünen ad, evcil hayvan adı ve durum metni alanları çoğunlukla daha esnektir.

Ekran okuyucular bu harfleri okuyabiliyor mu?

Çoğu durumda hayır. U+1D5D4 karakterinin adı 'MATHEMATICAL SANS-SERIF BOLD CAPITAL A'dır, yani A harfi değil ayrı bir semboldür. Ekran okuyucu ya sembol adlarını tek tek okur, ya 'bilinmeyen karakter' der, ya da atlar. Birleşen işaretli stillerde okuma tamamen parçalanır.

Süslü ismim bir yerde çalışıp başka yerde neden düz görünüyor?

İki sebep var. Birincisi cihazda o kod noktasını kapsayan bir font yoksa boş kutu çıkar. İkincisi sistem girdiyi NFKC ile normalleştiriyorsa matematiksel ve tam genişlikli harfler otomatik olarak düz ASCII'ye döner; kayıt kabul edilir ama süs kaybolur.

Yazıda kullanılan araçlar

Kaynaklar

YöntemGörsel kaynakları