Mejores prácticas para el sistema de coordenadas del mapa

20

¿Existen convenciones y / o métodos más conocidos en torno a los sistemas de coordenadas en los mapas de juego? ¿El origen suele colocarse en el centro del mapa? ¿O vive en una esquina y el mapa está construido en un solo octante del espacio 3D?

TaylorE
fuente
Hm, etiquetaste tilemap y la respuesta principal está hablando de preocupaciones de tilemap, pero también mencionas 3D y octantes, lo que probablemente sea la razón por la cual la segunda respuesta habla de precisión de flotación. La geometría 3D generalmente no se almacena en una cuadrícula, por lo que los orígenes son más arbitrarios, y nunca he oído hablar de problemas de precisión de flotación en un mapa de cuadrícula 2D. Quizás sea necesaria alguna aclaración o unificación ...
StarWeaver
Octant fue editado. Menciono 3D porque la mayoría de los marcos que he visto tienen algún tipo de eje Z. El mapa del juego puede ser plano y en 2D, pero la cámara está desplazada a lo largo de un tercer eje.
TaylorE

Respuestas:

37

La mayoría de los juegos colocan el origen del mapa en una esquina. La razón principal de esto es que los mapas de mosaico a menudo se almacenan internamente en matrices bidimensionales, y la mayoría de los lenguajes de programación no permiten índices de matriz negativos. Hay muchas discusiones sobre qué rincón debería ser el origen, pero no considero que ninguno de los argumentos sea particularmente fuerte. Al final es solo preferencia personal. Recomendaría usar el mismo rincón que usa su API de gráficos para minimizar el dolor de cabeza.

Las excepciones son a menudo juegos que permiten mapas que crecen infinitamente en todas las direcciones. Eso no funciona correctamente sin índices negativos, por lo que una simple matriz 2d está fuera de discusión. Deberá almacenar sus datos de mapas en una estructura de datos más compleja. En esta situación, generalmente tiene más sentido colocar el origen en la posición inicial.

Philipp
fuente
12

En teoría, la ubicación del origen no importa. Todas las operaciones matemáticas que realiza cuando se representa el mapa o cuando los objetos se mueven en el mapa funcionan bien, independientemente de dónde esté realmente el origen.

Sin embargo, en la práctica hay una razón por la que es posible que desee que el centro del mapa sea el origen, y es la precisión limitada de los valores de coma flotante.

Con números de coma flotante, cuanto más se aleja de 0, menos precisión hay en los dígitos más pequeños.

Mientras trabajábamos en un juego de mundo abierto que tenía un mapa muy grande, en realidad encontramos problemas en los que la física y otras cosas comenzarían a descomponerse a medida que te alejases del origen.

La solución fue hacer algunos trucos donde el origen siempre estaba bastante cerca del jugador, teletransportando inteligentemente cosas (el jugador, los mosaicos del mapa, la cámara, etc.) para no alejarse demasiado del origen.

Alan Wolfe
fuente
1

Realmente no importa. Lo que algunas personas cambian en su sistema de coordenadas es a menudo el eje y. En lugar de tener (0,0) en la parte superior izquierda, prefieren tenerlo en la parte inferior izquierda para facilitar la física.

Martens Cedric
fuente
¿Cómo es más fácil la física si el origen del sistema de coordenadas está en la parte inferior izquierda?
Tyyppi_77
3
Supongo que a la última oración le falta una palabra: depuración . Es más intuitivo si el suelo es cero y todo sube desde allí, que si el 'techo' es cero y todo se mide con eso.
Vaillancourt