Existem convenções e / ou métodos mais conhecidos em torno de sistemas de coordenadas em mapas de jogos? A origem geralmente está posicionada no centro do mapa? Ou ele fica em um canto e o mapa é construído em um único octante do espaço 3D?
Existem convenções e / ou métodos mais conhecidos em torno de sistemas de coordenadas em mapas de jogos? A origem geralmente está posicionada no centro do mapa? Ou ele fica em um canto e o mapa é construído em um único octante do espaço 3D?
Respostas:
A maioria dos jogos coloca a origem do mapa em um canto. A principal razão para isso é que os mapas de mosaico geralmente são armazenados internamente em matrizes bidimensionais e a maioria das linguagens de programação não permite índices negativos de matrizes. Existem muitas discussões sobre qual canto deve ser a origem, mas não considero nenhum dos argumentos particularmente fortes. No final, é apenas preferência pessoal. Eu recomendaria usar apenas o mesmo canto que sua API gráfica está usando para minimizar a dor de cabeça.
Exceções geralmente são jogos que permitem mapas que crescem infinitamente em todas as direções. Isso não funciona corretamente sem índices negativos, portanto, uma matriz 2D simples está fora de questão. Você precisará armazenar os dados do mapa em uma estrutura de dados mais complexa. Nesta situação, geralmente faz mais sentido colocar a origem na posição inicial.
Em teoria, a localização da origem não importa. Todas as operações matemáticas que você faz quando o mapa é renderizado ou quando os objetos se movem no mapa funcionam bem, independentemente da origem da origem.
No entanto, na prática, há uma razão pela qual você pode querer tornar o centro do mapa a origem - e isso é uma precisão limitada dos valores de ponto flutuante.
Com números de ponto flutuante, quanto mais longe você chega de 0, menor é a precisão nos dígitos menores.
Enquanto trabalhamos em um jogo de mundo aberto que tinha um mapa muito grande, na verdade encontramos problemas em que a física e outras coisas começavam a quebrar à medida que você se afastava mais da origem.
A solução foi fazer algumas manobras onde a origem sempre estava bem próxima do jogador, teleportando inteligentemente as coisas (o jogador, as peças do mapa, a câmera etc.) ao redor para não ficar muito longe da origem.
Realmente não importa. O que algumas pessoas mudam em seu sistema de coordenadas é frequentemente o eixo y. Em vez de ter (0,0) no canto superior esquerdo, eles preferem tê-lo no canto inferior esquerdo para facilitar a física.