14.07.2026 16:22

Moonlight Animate — tekst w grze po polsku i nie tylko

⏱️ 3 min read
Share:

Do tej pory tekst wyświetlany w grze zbudowanej w silniku 2D Moonlight Animate — napisy, HUD, etykiety przycisków — rozumiał tylko podstawowy alfabet angielski. Polskie „ą, ś, ż", europejskie akcenty, typograficzne cudzysłowy „ " czy myślniki – — wychodziły jako pytajniki. Ten etap to naprawia: tekst w grze mówi teraz po polsku i w innych językach.

Skąd brały się pytajniki

Silnik trzymał gotowy zestaw obrazków liter — ale tylko dla znaków angielskich (95 znaków). Każdy bajt spoza tego zestawu zamieniał się na „?". Do tego tekst był liczony bajtami, a nie znakami — a polskie „ą" to w kodowaniu UTF-8 dwa bajty. Efekt: nie dało się napisać ani jednego zdania po polsku tak, by wyglądało poprawnie.

Co się zmieniło

Dekoder tekstu. Silnik dostał własny, jeden wspólny mechanizm zamiany bajtów na znaki (codepointy Unicode). Jest odporny na uszkodzone i celowo złośliwe dane — dowolny nieprawidłowy ciąg zamienia się na znak zastępczy „�" i nigdy nie wywraca gry ani nie czyta pamięci poza buforem. To ważne, bo pliki gry mogą pochodzić z zewnątrz.

Poszerzony zestaw liter. Z 95 znaków angielskich urósł do 343 glifów: pełny polski alfabet (ąćęłńóśźż), akcenty używane w językach europejskich, rumuńskie ș/ț oraz typografia — prawdziwe cudzysłowy „ ", półpauzy i pauzy – —, wielokropek …. Pisząc dialog nie musisz już podmieniać ich na proste zamienniki.

Tekst liczony znakami. Etykiety, przyciski, pole tekstowe, dialogi z formatowaniem i kontenery układu mierzą teraz tekst po znakach, nie po bajtach — więc ramki i zawijanie wierszy dopasowują się poprawnie do polskich napisów.

Formatowanie działa dalej. Znaczniki dialogów — kolor, efekt fali, drżenie tekstu — pozostają w prostym zapisie, a ich treść jest już w pełni wielojęzyczna. Możesz napisać kolorową, „falującą" kwestię po polsku.

Bezpieczeństwo i solidność

Ten fragment przeszedł ostry przegląd pod kątem błędów. Wychwycił i naprawił m.in.: przywrócenie sprawdzania pliku czcionki, zanim silnik go użyje (uszkodzona czcionka z paczki gry nie może już wyprowadzić silnika w pole), bezpieczne budowanie zestawu liter po jednym zakresie (eliminacja rzadkiego błędu przy czcionkach z brakami), oraz uodpornienie parsera formatowania na złośliwie spreparowany tekst. Nowe znaki objęte są zestawem testów granicznych, które pilnują poprawności dekodera.

Co dalej

To fundament, nie koniec. Kolejny krok to pismo azjatyckie (chińskie, japońskie, koreańskie) i emoji — wymaga zestawu liter budowanego „na żądanie", bo takich znaków są dziesiątki tysięcy. Na razie znak spoza obsługiwanego zakresu pokazuje się jako „?". A docelowo cała ta praca prowadzi do jednego: systemu dialogów — rozmów, kwestii i wyborów w grach fabularnych składanych w całości w Moonlight Animate.

📚 Related posts

27.08.2026 20:55

Data, której nie cofniemy nawet my

Każdy certyfikat autorstwa dostaje datę zapisaną w blockchainie Bitcoina — takiej nie podważy nikt, my też nie. Sprawdzisz ją bez konta i bez Moonligh...
Continue reading →
27.08.2026 19:35

Twój kolor, wszędzie

Trzy tryby i siedem akcentów, wspólnych dla strony i Moonlight Animate. Motyw jedzie z kontem, profil pokazuje gościom Twoje kolory, a harmonogram sam...
Continue reading →
27.08.2026 18:31

Kto moderuje i na jakiej podstawie

Moderator to teraz osobna rola z własnym zakresem, a nie administrator w przebraniu. Odrzucenie treści wymaga powodu, który trafia do autora razem z d...
Continue reading →

📧 Stay up to date!

Join the waitlist to get notified about new Dev Blog posts and Moonlight platform launch.