LibGdx y fonts del juego: ¿algún método probado?

Uso 3 tamaños para fonts en mi juego: pequeño, mediano y grande. Tomo el tamaño de fuente base e bash escalar la fuente en function del tamaño y la densidad de la pantalla, pero esto está resultando ser bastante difícil.

¿Alguien tiene una fórmula comprobada para escalar fonts? En este momento simplemente estoy usando el ancho de píxel de la pantalla para colocar el dispositivo en tamaños de cubo de escala de fuente 1x, 2x y 3x, pero creo que también debería usar la densidad de pantalla en el cálculo.

Hay algunos methods que utilicé que funcionaron en el pasado, cada uno tiene sus pros y sus contras.

El primero fue generar alnetworkingedor de 10 tamaños diferentes de fonts en Heiro como parte de un solo atlas. Luego importo cada uno de ellos en una class de activos estáticos que uso para acceder a los resources a lo largo de mi juego. Cuando quiero dibujar text de cierto tamaño, llamo a un método estático de mi class de Activos que toma el tamaño que quiero dibujar y me da el BitmapFont más cercano del atlas al tamaño que quiero dibujar.

Pros: El text se ve bastante bien, siempre y cuando generes cerca de los tamaños que necesitas. No es necesario tratar con gdx-freetype. La carga es rápida, ya que es solo un atlas (aunque podría ser grande). Contras: Usted el atlas puede ser muy grande. Lleva un time modificar los tamaños que necesita en el atlas. Cuando agrego tamaños al atlas, necesito agregarlos manualmente a la class Assets para que puedan cargarse (aunque es posible que pueda hacer algo más inteligente para ver los nombres de las regiones y deducir qué tamaños se incluyen).

El segundo es usar gdx-freetype para generar fonts según sea necesario. En mi class de Activos tengo un método que genera fonts del tamaño que se necesita de un file de fuente. Tengo un caching que uso para compartir fonts generadas previamente para ese tamaño.

Pros: el text se ve perfecto en todas las pantallas de tamaño. Desventajas: la carga lleva mucho time, lo que es especialmente malo si utilizas un tamaño de fuente por primera vez en el medio de un juego (gran retraso). Genere tamaños de fuente al inicio para ocultar esta latencia, pero luego tengo una pantalla de carga larga para generar un montón de fonts.

El tercer método que uso es usar gdx-freetype para generar un tamaño de letra pequeño / mediano / grande a escala de la pantalla actual. Luego, puedo establecer la escala para get el tamaño correcto según sea necesario, y puedo configurar el filtrado de texturas para que no se vea mal. Dado que las fonts se adaptan a la pantalla actual, se ve bastante bien en todos los tamaños de pantalla.

Pros: el text se ve bastante bien. No tarda tanto en cargarse (solo se generan 2 o 3 fonts). El text se escala con tamaños de pantalla con gracia. Contras: el text puede no verse perfecto. Toma más time cargar que un solo atlas.