Localización

Internacionalización de los videojuegos: Mejores prácticas para una arquitectura amigable con la localización

La internacionalización de los videojuegos es el proceso que permite que la localización de los juegos se lleve a cabo sin problemas. Para que la localización tenga éxito, debe tener un producto internacionalizado antes de comenzar el proceso de localización.

Los desarrolladores de juegos cometen el típico error de asumir que la localización es "sólo" una traducción. No se preparan para la localización durante las etapas iniciales de planificación y esperan a que el juego se desarrolle plenamente en su lengua materna.

La localización de videojuegos será más fácil si se siguen las mejores prácticas de internacionalización de los videojuegos desde las etapas iniciales de diseño.

¿Qué es la internacionalización de los videojuegos y por qué debe seguir las mejores prácticas?

La internacionalización de los videojuegos es el proceso que "prepara" su juego para la localización. La internacionalización de su juego permitirá que su código, arquitectura e interfaz de usuario procesen y rendericen el contenido del juego en varios idiomas.

El objetivo principal de la internacionalización de los videojuegos es eliminar la existencia de cualquier componente en el código base que difiera por "locale".

Los jugadores esperan que la interfaz de usuario localizada sea exactamente tan interactiva y el juego tan atractivo como el original. Para lograr la misma experiencia interactiva y atractiva, los programadores de juegos deben adoptar las mejores prácticas durante las etapas iniciales de diseño y desarrollo del juego.

¿Cuáles son las mejores prácticas para la internacionalización de los videojuegos?

Si eres un desarrollador de juegos que trabaja en el diseño, es bueno conocer las mejores prácticas de internacionalización de los videojuegos. Deberías adoptar las metodologías de desarrollo de videojuegos recomendadas. Las mejores prácticas de internacionalización de los videojuegos se dividen en dos categorías:

  • Arquitectura amigable con la localización: Se ocupa de la estructura de los archivos, la organización de los activos, la codificación de caracteres, los problemas de memoria y las convenciones de nomenclatura.
  • Programación amigable con la localización: Se ocupa de las prácticas de programación recomendadas para los desarrolladores (interfaz de usuario, ajustes regionales, texto).

Internacionalización de los videojuegos
Este artículo cubre las mejores prácticas recomendadas para arquitectura amigable con la localización. Las prácticas de internacionalización de los videojuegos para las metodologías de programación merecen su plena atención en un puesto aparte.

Arquitectura amigable con la localización

El diseño de una estructura amigable con la localización ayudará a que su juego se localice de forma fácil, rápida y precisa. Para que la arquitectura de su juego sea amigable con la localización, debe internacionalizar su:

  1. Estructura de la carpeta
  2. Activos del juego
    • Texto Activos
    • Bienes de arte
    • Voz en off
  3. Memoria
  4. Convenciones para la definición de nombres

1. Internacionalizar la estructura de carpetas

Es una práctica estándar externalizar todos los activos de juego localizables del código de juego y organizarlos en carpetas separadas por idioma. De este modo, podrá transferir fácilmente el contenido localizable a su LSP (proveedor de servicios lingüísticos) y los activos traducidos podrán integrarse fácilmente en su juego. Esta es una importante práctica de internacionalización de los videojuegos que es simple pero poderosa.

El ejemplo aquí muestra una estructura de directorio de ejemplo para organizar el código del juego y los recursos para prepararse para localización de juegos. Su marco de desarrollo puede proporcionar estructuras de directorio de internacionalización de videojuegos específicas. Para más detalles, consulte su documentación.
Estructura del archivo de internacionalización de los videojuegos
La carpeta de código ("Game Code") contiene todos sus archivos de código, con los que debería ser posible crear un maestro localizado del juego. La carpeta de activos ("Activos del juego") contiene todo el texto, arte, audio, cinemática y otros activos a localizar.

2. Internacionalizar los activos del juego

Internacionalización de los activos de los videojuegos
Los activos de texto, los activos de arte y la voz en off son los componentes críticos de su juego que deben abordar los requisitos de internacionalización.

2.1 Internacionalizar los Activos Textuales

El texto del juego y el texto de la interfaz de usuario son los objetivos principales de la localización. En un escenario ideal, deberías externalizar todo el texto localizable (texto en el juego, texto de la interfaz de usuario, mensajes de error de la consola, etc.) en diferentes archivos, separados del código del juego real. También debe recordar organizar todas las cadenas del instalador para la versión de PC en una ubicación centralizada.

El uso de tablas de texto externas para almacenar texto localizable facilita la organización e integración de las traducciones. Puede simplificar aún más el seguimiento de las modificaciones de los strings durante el desarrollo, utilizando IDs de string únicos para cada string.

2.1.1 Definición de tablas de cadenas

El enfoque más simple y común es almacenar todo el texto en un archivo de texto plano (para el idioma de origen). Este archivo de texto se puede entregar fácilmente para su localización, y la versión traducida se puede integrar de nuevo en su juego para el idioma de destino. Si utiliza archivos de texto sin formato, siga las instrucciones de codificación de localización, como UTF-8 o similar.

Ejemplos de archivos de texto
Independientemente de cómo almacene sus cadenas, le resultará muy útil asignar un identificador de cadena único a cada texto y referirse al texto de su código utilizando este ID de cadena.

Ejemplo de archivo de texto externo (contiene todo el texto original de una misión llamada MissionDDD)

es-US/Text/Activos/MissionDD/Strings.txt 

DDSTRING_T1 ¡Hola Jisto! ¿Haciendo el bien?
DDSTRING_T2 Sí, estoy bien.
DDSTRING_T3 ¡Adiós! Nos vemos luego.

Ejemplo de versión japonesa (traducida) de este archivo

ja-JP/Texto/Activos/MissionDD/Strings.txt

DDSTRING_T1 こんにちはレイチェル!よくやっている?
DDSTRING_T2 ええ、私は大丈夫です。
DDSTRING_T3 さようなら!じゃあまたね。

2.1.2 ¿Ya has desarrollado tu juego?

Si ya has desarrollado tu juego sin pensar en la localización, utiliza alguna herramienta para extraer todos los textos de los archivos del juego. Muévalos a una tabla de texto y asigne cada "texto" con un "identificador" único. El identificador sustituirá cada aparición del texto en el código del juego.

2.1.3 ¿Estás desarrollando un juego con mucho texto?

Para juegos con una enorme cantidad de texto, como un gran juego de RPG o juegos de aventuras, podría considerar el uso de una base de datos. Lo ideal es que la base de datos contenga lo siguiente:

  • identificaciones
  • Texto
  • Notas (proporcionando un contexto del texto)
  • El orden del texto
  • Longitud máxima de la cadena
  • Entradas localizadas para todo el texto (cuando estén disponibles)
2.1.4 Uso de tablas de cadenas en código

Su motor de juego carga la tabla de cuerdas en la memoria. Las tablas Hash son una estructura de datos de uso común. Si estás desarrollando tu juego en C++, utiliza el contenedor de mapas STL. Encapsula la tabla de cadenas en una clase que contiene todos los textos y define un método estático que acepta el identificador y devuelve el texto traducido.

En el siguiente ejemplo, GameDDStringTable es la clase que encapsula la tabla de cadenas. La API getDDString(StringID) es invocar y obtener el texto localizado de los identificadores de cadena (antes de utilizarlos en el código).

Código sin Internacionalización

DDCHARACTER1.Talk(Hola Jisto! Doing Good?);
DDCHARACTER2.Talk(Sí, estoy bien.);
DDCHARACTER3.Talk(Adiós! Nos vemos luego.);

Código Internacionalizado

DDCHARACTER1.Talk(GameDDStringTable::getDDString("DDSTRING_T1"));
DDCHARACTER2.Talk(GameDDStringTable::getDDString("DDSTRING_T2"));
DDCHARACTER3.Talk(GameDDStringTable::getDDString("DDSTRING_T3"));

2.1.5 Conservación de la legibilidad

Una de las desventajas de externalizar todo el texto del juego es que al mirar tu código, te darás cuenta de que ha perdido legibilidad. Por lo tanto, los cambios de guión pueden resultar un poco difíciles.

Por ejemplo, DDCHARACTER1.Talk(GameDDStringTable::getDDString("DDSTRING_T1")); no es legible debido a la ausencia del texto real hablado por el personaje.

Algunos equipos de desarrollo de juegos intentan superar este problema conservando el texto original (y utilizando un ID de cadena único) en el código. Siguen una sintaxis predefinida e inequívoca, como se muestra en el siguiente ejemplo.

DDCHARACTER1.Talk(GameDDStringTable::getDDString("DDSTRING_T1|Hi Jisto, ¿cómo estás?"));
DDCHARACTER2.Talk(GameDDStringTable::getDDString("DDSTRING_T2|Si, estoy bien."));
DDCHARACTER3.Talk(GameDDStringTable::getDDString("DDSTRING_T3|Adiós! Nos vemos luego."));

En el ejemplo anterior, los scripts incluyen tanto los textos como el identificador en el formato
“STRING ID | original text”.


El método estático getDDString() leerá el ID (a la izquierda del carácter de la tubería) y devolverá el texto traducido. Si no puede encontrar el texto traducido, devolverá el texto original (a la derecha del carácter pipe).

Este enfoque hace que su guión sea legible. Además, en ausencia de una mesa de cuerdas, el juego no dejará de funcionar porque hay una opción de retroceder. Se mostrará el texto original en el lado derecho del carácter de la pipa.

2.1.4 Notas para la traducción

Si desea agilizar aún más el proceso de traducción, debe proporcionar información suficiente sobre todas las cadenas localizables. Puede proporcionarlos en forma de comentarios en sus tablas de cadenas externas. También puede proporcionarlos como notas separadas incluidas en una carpeta de documentación específica. Esta es una práctica recomendada para la internacionalización de los videojuegos.

Las notas ayudan a los traductores a comprender:

  • El orden del texto
  • Contexto del texto en el juego
  • La longitud máxima de la cadena (después de la traducción) que el motor seguirá soportando.
  • Cualquier otra regla de cuerdas que sea exclusiva de tu juego

Internacionalización de los videojuegos - Lista de control de desarrolladores para los activos de texto
Internacionalización de los videojuegos - Lista de control de activos de texto

2.2 Internacionalizar el patrimonio artístico

Reduzca la cantidad de tiempo invertido en la localización de los activos de arte minimizando la cantidad de texto que aparece en su arte. Si está usando texto en su arte, siga estas mejores prácticas:

2.2.1 Capa separada para el texto

En el archivo de imagen, defina el texto en una capa separada. Estos archivos de arte en capas son fáciles de localizar porque puede integrar las traducciones rápidamente.

2.2.2 Renderizar texto de forma programática (Runtime)

Otro enfoque es renderizar el texto en la imagen usando fuentes (programáticamente). Externalizar todo el texto, que aparece en los activos de arte, en un archivo de texto separado que puede ser fácilmente localizado. Su motor de juego puede entonces extraer el texto apropiado y mostrarlo en las imágenes según sea necesario en tiempo de ejecución.

2.2.3 Organización de las carpetas de activos

Debe colocar todos los activos artísticos localizables en las carpetas correspondientes, tal y como se explica en las secciones anteriores.

2.2.4 Notas para la traducción

Al igual que con los activos de texto, sería útil incluir notas para la traducción.

Internacionalización de los videojuegos - Lista de control para desarrolladores de activos artísticos
Internacionalización de los videojuegos - Lista de control de bienes de arte

2.3 Internacionalizar la locución

El audio del juego se puede dividir en tres pistas: voz en off (VO), efectos de sonido y música. Es una buena práctica almacenar todas las pistas VO por separado de las otras dos pistas porque esto permitirá una fácil localización. Si organiza lógicamente todos sus archivos VO, encontrará que es muy sencillo integrar el VO localizado en su juego.

Una manera es nombrar los archivos de sonido de su VO usando el identificador de cadena (asignado para el texto en su tabla de cadenas). En el ejemplo anterior, los archivos de voz en off podrían llamarse string_t1.mp3, string_t2.mp3 y string_t3.mp3. La ventaja de este enfoque es que puede codificar de tal manera que la voz en off de la cadena (que se muestra en la pantalla) se recupere y se reproduzca.

Su guión es la base para la producción de VO. Por lo tanto, debe finalizar el guión muy pronto en el desarrollo del juego e incluir tantos aspectos técnicos como sea posible (por ejemplo: longitud, mono/estéreo, etc.) junto con una definición precisa del contexto.

El proveedor de servicios de localización debe ser capaz de entender cómo fluye su historia leyendo su guión. La internacionalización de los videojuegos para voz en off le ayudará a mantener el sabor original de su juego localizado.

Sistema de subtitulado

Si es posible, implemente un sistema de subtitulado adecuado para su juego. Puede diseñar de tal manera que los subtítulos aparezcan en la pantalla junto con el contenido de los archivos VO que se están reproduciendo o sustituir la grabación VO por subtítulos. No olvide incluir todo el texto subtitulado en los activos de texto localizables (y asegúrese de hacer un seguimiento de su traducción).

Internacionalización de los videojuegos - Lista de verificación de los desarrolladores para la voz en off
Internacionalización de los videojuegos - Lista de control de los activos de voz en off

3. Internacionalizar la memoria

Al cargar el archivo de la tabla de cadenas, puede mantener todos los textos en la memoria, ya que en promedio no debería ser más de uno o dos MBs para la mayoría de los juegos. Es más probable que se encuentre con problemas de memoria si la plataforma de destino tiene memoria limitada. En este caso, puedes cargar y descargar el conjunto específico de textos que necesites para cada nivel del juego, etc.

Si estás desarrollando tu juego en inglés y tu idioma de destino de localización es el japonés u otros idiomas asiáticos, es posible que te resulte difícil ajustar sus fuentes a la memoria. Puedes abordar esto cargando los glifos que aparecen en la parte específica del juego en la memoria según sea necesario.

Si estás desarrollando tu juego en un idioma asiático (usando juegos de caracteres de doble byte) encontrarás que para el inglés y algunos otros idiomas europeos, las cadenas pueden ocupar más memoria.

Por ejemplo, el inglés utiliza alrededor de 1,5 caracteres más que el japonés y el alemán utiliza el doble de letras que el japonés. Para superar estos problemas y evitar desbordamientos de memoria, es mejor utilizar una codificación (como UTF-8) que almacena los caracteres europeos como bytes únicos.

Tales mejores prácticas de internacionalización de videojuegos para la memoria asegurarán que su juego funcione bien en todos los idiomas.

4. Convenciones para la definición de nombres

Debe nombrar todas las carpetas y archivos específicos de la localización de manera que sea fácil interpretar el idioma/región que representan. Los idiomas también tienen variantes basadas en las regiones. Por lo tanto, es una buena idea combinar un código de 2 letras para el idioma con un código de 2 letras para el país. Ejemplos de nombres son en-US (inglés americano), ja-JP (japonés), zh-CN (chino simplificado), zh-TW (chino tradicional), etc.

Es una buena práctica que se adhiere a las normas ISO, ampliamente reconocidas en todo el mundo.

Sería fácil entender el contenido de los archivos, si los nombrara lógicamente de manera que los nombres sean descriptivos de la misión, el carácter, etc. Ejemplo: UI.txt, Mission1.txt, Mission2.txt, etc.

Todas las mejores prácticas de internacionalización de videojuegos para la arquitectura tienen como objetivo ayudarle a diseñar su juego para que sea fácilmente localizable. Las mejores prácticas de internacionalización para la programación de juegos son igualmente necesarias para alcanzar sus objetivos de localización.

Si usted sienta las bases para la localización durante las primeras etapas de la arquitectura, descubrirá que la localización no tiene por qué ser difícil. Su juego será igualmente atractivo en todas las versiones localizadas y los jugadores no podrán darse cuenta de que no fue desarrollado originalmente para su idioma.

¿Necesita ayuda para la internacionalización o localización de su videojuego? ¿Por qué no se pone en contacto con nosotros hoy para un presupuesto gratuito?

Vinu Saseedaran Renish

Creador de contenido

Vinu es una entusiasta de la tecnología y escritora de contenidos en DayDigital, impulsada por su pasión por la tecnología y la escritura. Ingeniera Informática por titulación y ex-alumna de Red Hat, se inspira en su inclinación por aprender algo nuevo, por ser una principiante, por adquirir nuevos conocimientos y por crecer día a día. Puedes conectarte con ella en su gestor de Twitter @VinuSRenish.

Artículo anterior
Los 5 principales retos de adopción de la nube a los que se enfrentan los usuarios de la nube
Artículo siguiente
Consultoría en la nube: ¿Pueden los expertos en cloud computing ayudarle a acelerar la transformación de su cloud computing?
Artículos relacionados
hacking ético para probar la vulnerabilidad de seguridad
General

Uso de la piratería informática para mejorar la seguridad de TI....

La seguridad de la información es la necesidad del momento! Es más importante que nunca proteger sus activos digitales. ¿El pirateo ético es su solución? Sus servidores de red, correos electrónicos, sitios web y aplicaciones son vulnerables a un ataque malicioso desde cualquier rincón del mundo. Hay muchos....

0
Internacionalización de aplicaciones móviles
Localización

6 consejos para la localización de aplicaciones móviles que...

La localización de aplicaciones móviles es imprescindible si desea llegar a una audiencia global y aumentar el número de usuarios. Para entrar en un mercado internacional, debe pensar en la localización antes de planificar cualquier otra iniciativa de marketing. El mercado es verdaderamente global en el....

0
nuestro-post -->
Artículos relacionados
hacking ético para probar la vulnerabilidad de seguridad
General

Uso de hacking ético para mejorar la seguridad de TI....

La seguridad de la información es la necesidad del momento! Es más importante que nunca proteger sus activos digitales. ¿El pirateo ético es su solución? Sus servidores de red, correos electrónicos, sitios web y aplicaciones son vulnerables a un ataque malicioso desde cualquier rincón del mundo. Hay muchos....

Internacionalización de aplicaciones móviles
Localización

6 consejos para la localización de aplicaciones móviles que...

La localización de aplicaciones móviles es imprescindible si desea llegar a una audiencia global y aumentar el número de usuarios. Para entrar en un mercado internacional, debe pensar en la localización antes de planificar cualquier otra iniciativa de marketing. El mercado es verdaderamente global en el....

wordpress tema powered by jazzsurf.com