Обновление 2016‑07‑14: Я всё‑таки нашёл способ работать с TTF‑шрифтами.

Работать со шрифтами в LibGDX оказалось неожиданно сложно. Создать растровый шрифт проблем нет, но вот заставить его масштабироваться под разные разрешения — реальная проблема. Более или менее рабочая практика — использовать Distance Field. После этого нужно ещё пробросить шрифт в описание скина.

Попытка использовать TTF провалилась. Настроить её в LibGDX проще простого, но вот результат получается ужасным. Возможно, я не до конца разобрался с этим процессом. Если у кого‑либо из читателей есть опыт генерации красивых шрифтов из TTF, поделитесь в комментариях.

Я выбрал путь использования Distance Field, как предлагается в документации. Используя Hiero, добавляем к шрифту Distance Field:

  • Scale — 32.
  • Spread сильно зависит от шрифта. Для Roboto Regular хороший результат получается при 1.
  • Padding — равный 1.
  • X и Y — равные −2.

Вот только полученный таким образом шрифт невозможно использовать, напрямую ссылаясь на него из JSON с описанием скина. Шрифт придётся генерировать программно из‑за того, что текстура требует наложения фильтра. На Kotlin получится вот такой код:

class MyGame() : Game() {
    var skin: Skin = Skin()

    override fun create() {
        var robotoTexture = Texture(Gdx.files.internal("roboto.png"), true)
        robotoTexture.setFilter(
            Texture.TextureFilter.MipMapLinearNearest,
            Texture.TextureFilter.Linear
        )
        var robotoFont = BitmapFont(
            Gdx.files.internal("roboto.fnt"),
            TextureRegion(robotoTexture),
            false
        )
        skin.addRegions(TextureAtlas(Gdx.files.internal("skin.atlas")))
        skin.add("font", robotoFont)
        skin.load(Gdx.files.internal("skin.json"))
        // ...
    }

    override fun dispose() {
        super.dispose()
        skin.dispose()
    }
}

Результат, который получается, я покажу на следующей неделе (очень на это надеюсь). Мой проект подходит к стадии, когда его уже надо показывать и собирать фидбек.