Escolar Documentos
Profissional Documentos
Cultura Documentos
Grades Regulares em Jogos Digitais
Grades Regulares em Jogos Digitais
Goiânia, GO
1
Agradecimentos
“Agradeço a meus pais, sem os quais não estaria aqui e a Deus pelas oportuni-
dades; a meus amigos, que estiveram sempre presentes, me dando forças quando mais
precisei; aos professores que me ajudaram e me guiaram pelo caminho.
Agradeço a todos os que me incentivaram a ir em frente, pois foram os que me
puxaram para frente e me ajudaram a continuar. Agradeço também a todos os que me
incentivaram a parar e fizeram duvidar de mim; esses foram os que me empurraram pelas
costas e fizeram me esforçar para provar que estavam errados.”
Sumário
Lista de Figuras 4
1 Introdução 9
3 Análise Geométrica 14
3.1 Tesselações Monoédricas Regulares Aresta-a-Aresta 14
3.2 Considerações Sobre Polígonos Regulares 16
4 Grades Triangulares 20
4.1 Estruturas de Dados para Grades Triangulares 25
5 Grades Quadradas 28
5.1 Estruturas de Dados para Grades Quadradas 31
6 Grades Hexagonais 33
6.1 Estruturas de Dados para Grades Hexagonais 38
7 Considerações Finais 40
Referências Bibliográficas 43
Lista de Figuras
5.1 Grade quadrada que tem como centro o ponto O, baricentro do quadrdado
(0, 0), e eixos da grade. 28
5.2 Células adjacentes à célula (i, j). 30
5.3 Vértices e arestas da célula (i, j). As arestas tracejadas e círculos repre-
sentam as arestas e vértices associados a outras células. 32
Cave Johnson,
Portal 2.
7
Resumo
Em grande parte dos jogos digitais nos quais existe um tabuleiro, os tabuleiros são
restritos por grades em diversos formatos, sendo a grade hexagonal e a grade quadrada os
mais comuns. Enquanto existem diversas publicações, de diversos autores e em diversos
formatos acerca de grades e seus algoritmos, são raras as publicações que tratam de mais
de um tipo de grade, com suas propriedades geométricas e algoritmos simplificados. Este
artigo procura centralizar a informação básica acerca de grades como tabuleiros digitais,
seus algoritmos e suas propriedades geométricas, e oferecer um ponto de partida para
desenvolvedores de jogos.
Palavras–chave
Grade, Tabuleiro, Jogos Digitais, Geometria Analítica, Desenvolvimento de
Jogos
8
Abstract
In most digital games in which there is a board, the boards are restricted by grids in
different formats, with the hexagonal grid and the square grid being the most common.
While there are several publications, by different authors and in different formats about
grids and their algorithms, papers about more than one type of grid, with their geometric
properties and simplified algorithms, are rare. This article seeks to centralize basic
information about grids used as digital boards, their algorithms and their geometric
properties, and provide a starting point for game developers.
Keywords
Grid, Board, Digital Games, Analytical Geometry, Game Development
CAPÍTULO 1
Introdução
para construir uma imagem maior através de sua combinação, como a criação de um
mosaico ou o assentamento de azulejos em uma construção. No decorrer deste texto,
tiling estará traduzido como “tesselação”, levando em consideração a definição do termo
por Grunbaum e Shephard.
Embora o poder de processamento dos computadores, consoles em geral e
dispositivos móveis tenha crescido muito, e não seja estritamente necessário o uso
de tiling para otimização (mesmo nos dispositivos móveis), seu uso ainda é muito
comum pelas facilidades geradas no desenvolvimento. De mesmo modo, as grades como
representações de tabuleiros, especialmente em jogos de estratégia, continuam sendo
amplamente utilizadas como forma de restringir o posicionamento de objetos no mundo
do jogo, como nas séries Civilization, The Sims, Age Of Empires, Minecraft e Terraria.
Este texto se propõe a explorar as origens dos tabuleiros e grades de uma pers-
pectiva histórica, suas propriedades geométricas e exemplos de implementação em python
para o uso de grades como tabuleiros em jogos digitais de forma relativamente simples
e concisa. A linguagem de programação Python foi escolhida para a implementação por
sua popularidade e legibilidade, permitindo que os exemplos sejam entendidos de forma
prática e possam ser facilmente reproduzidos em outras linguagens de programação.
CAPÍTULO 2
Tabuleiros, Padrões e Grades
efetivamente executado) certamente é uma tarefa árdua, dado que, mesmo na época em
que vieram a público os primeiros jogos digitais, computadores ainda eram grandes e
caros, e só podiam ser ultilizados de forma compartilhada e em ambiente acadêmico ou
em grandes empresas, onde qualquer indíviduo que ousasse fazer uso de equipamentos tão
caros para fins de entretenimento provavelmente não viria a público anunciar sua criação
por medo de represálias por parte da instituição à qual pertencesse o mainframe.
Uma característica recorrente em todos os tabuleiros conhecidos para jogos é
a presença de um padrão. Grünbaun Et. Al, em Tilings and patterns[8] se dedica não
apenas à análise geométrica dos padrões criados por diversas civilizações através da
história, mas também a uma exploração histórica desses padrões nas mais diversas formas:
tapeçaria, pinturas, mosaicos em pisos, paredes e tetos, aplicados em cestas, tecidos,
armas e utensílios diversos. Os padrões, descritos como “repetições de uma ’figura’ [ou
mais] no plano de forma ’regular’[...]” (tradução livre), são encontrados tanto na natureza
(o que fez com que grande parte dos estudos acerca do tema tenham sido conduzidos por
cristalógrafos) quanto em estruturas construídas por mãos humanas.
Por suas características geométricas, amplamente exploradas na obra supraci-
tada, vários dos padrões encontrados em diversas construções de civilizações distintas, de
épocas distintas e sem qualquer ligação aparente, apresentam semelhanças consideráveis
em sua organização e disposição dos elementos. Além dos padrões, os autores definem o
conceito de tiling, traduzido como “tesselação” neste texto, como um conjunto de regiões
poligonais que cobrem totalmente um plano, sem interseções. Uma definição mais formal
para tesselações será apresentada no capítulo seguinte.
Um conjunto específico entre as tesselações, as chamadas tesselações monoé-
dricas regulares aresta-a-aresta, referidas como "grades regulares"ou simplesmente como
“grades” no decorrer do texto, são o foco principal deste estudo (mais especificamente, as
grades triangulares, quadradas e hexagonais, as únicas grades regulares possíveis), e cor-
respondem a tesselações nas quais as regiões que cobrem o plano são polígonos regulares
com o mesmo número de lados e dimensões, e com arestas compartilhadas entre apenas
dois deles; ou seja, várias instâncias de um mesmo polígono cobrem todo o plano, com
vértices e arestas perfeitamente sobrepostos.
Os tabuleiros em jogos digitais são, em sua maioria, grades. O uso de grades
como tabuleiros, especialmente em jogos baseados em turnos, permite que os jogadores
planejem o posicionamento dos objetos controlados de forma mais simples, e também
gera uma maior sensação de controle sobre a posição dos objetos controlados pelo
jogador. Grades também podem ser utilizadas em jogos digitais como forma de compor o
mundo do jogo, fazendo uso de tilemaps.
A idéia por trás dos tilemaps é compor o mundo (ou outros objetos) do jogo
através da combinação de blocos menores de construção, chamados tiles. O uso de
13
1 Dhule[3]e Halpern[9], por exemplo, possuem capítulos inteiros dedicados ao assunto em seus livros
sobre desenvolvimento de jogos nas duas principais engines utilizadas por desenvolvedores independentes.
CAPÍTULO 3
Análise Geométrica
No decorrer deste capítulo, será feita a análise geométrica das tesselações mo-
noédricas regulares aresta-a-aresta, que são o objeto de estudo desta publicação, de modo
a estabelecer os conceitos e bases para as implementações descritas nos capítulos a seguir.
Também será feita a análise de características dos polígonos regulares, e deduções mate-
máticas acerca destes que serão utilizados como base para muitos dos conceitos utilizados
nas implementações e considerações geométricas nos capítulos seguintes.
resultado, para polígonos regulares, cada ângulo interno deve medir (n−2)π n . Logo, em
um vértice compartilhado entre um conjunto de p polígonos, com números de lados
n1 , n2 , n3 , ..., n p , a soma destes ângulos deve ser igual a 2π. Então,
p
(ni − n) π
∑ = 2π (3-1)
i=1 n i
(n − 2)
p· =2
n
np − 2p = 2n
np − 2n = 2p
n (p − 2) = 2p
2p
n= (3-4)
p−2
Uma vez que p e n são números naturais, com n ≥ 3 (pois não existem polígonos
com menos de 3 lados) e p ≥ 2 (cada vértice deve ser “compartilhado” por pelo menos
2 polígonos, para garantir a tesselação), chegamos à restrição n ≤ 6, pois, para n > 6,
partindo de (3-4):
2p
>6
p−2
2p > 6p − 12
−4p > −12
p<3
por 0 com o ao aplicar o valor na equação (3-4). Logo, n > 6 não satisfaz as restrições,
e não é possível criar uma tesselações monoédricas regulares face-a-face com polígonos
regulares com mais de 6 lados. Também, valores de n < 2 levam a equação (3-4) a valores
negativos, reforçando a restrição de que p ≥ 2. Por fim, é possível eliminar o caso onde
n = 5, uma vez que, ao aplicar o valor de n na equação (3-4), teremos p = 10 3 , conflitando
com a restrição de que p ∈ N.
Portanto, o valor de n deve pertencer a {3, 4, 6} para que todas as restrições sejam
respeitadas, e fica provado que as únicas tesselações regulares monoédricas aresta-a-aresta
possíveis devem ter suas células na forma de polígonos regulares de 3, 4 e 6 lados. Para
esses casos, ao aplicar os valores na equação (3-4), chega-se a conclusão que os vértices
dessas tesselações serão compartilhados por, respectivamente, 6 triângulos equiláteros, 4
quadrados e 3 hexágonos regulares. Por este motivo, essas tesselações são classificadas
pelos seus vértices como 36 , 44 e 63 .
No decorrer deste texto, o termo “grade” é amplamente utilizado como uma
forma simplificada de se referir às tesselações regulares monoédricas aresta-a-aresta.
l
θ 2
sin =
2 r
2π
! l
n 2
sin =
2 r
π l
sin =
n 2r
l
r= π
(3-5)
2 · sin n
xV − xO = r, yV − yO = 0
V = O + (r, 0) = O + (1, 0)r (3-6)
Pela propriedade de polígonos regulares que diz que todos os vértices estão sobre
a circunferência circunscrita ao polígono (ou, em outras palavras, todos os vértices estão
a uma mesma distância do centro), pode-se afirmar que todos os vértices estarão a r
unidades de distância do centro, e suas coordenadas podem ser encontradas à partir da
rotação das coordenadas de um vértice qualquer do polígono por um ângulo i · θ ao redor
do centro O, onde i é um número inteiro. Assim, supondo a existência do vértice V , da
equação (3-6), é possível generalizar a posição de um dos vértices do polígono como
" # " #
cos(θi) − sin(θi) 1
Vi = O + · ·r
sin(θi) cos(θi) 0
" #
1 · cos(θi) − 0 · sin(θi)
Vi = O + ·r
1 · sin(θi) + 0 · cos(θi)
" #
cos(θi)
Vi = O + · r , ou
sin(θi)
Vi = O + (cos(θi), sin(θi)) · r , com i ∈ [0, n[. (3-7)
Note que o resultado em (3-7) não é totalmente genérico, pois depende da exis-
tência de um vértice com as coordenadas relativas definidas em (3-6). Isso pode ser corri-
gido adicionando um ângulo α à rotação do vértice (e, por consequência, rotacionando o
polígono como um todo pelo mesmo ângulo):
θ θ
li = O + cos α + θi + , sin α + θi + · a , com i ∈ [0, n[. (3-9)
2 2
CAPÍTULO 4
Grades Triangulares
c a
Figura 4.2: Uso de três eixos na grade triangular.
índices (i, j) para cada célula, a diferença de orientação dos triângulos se torna um
problema, uma vez que a distância entre os baricentros de triângulos na mesma “linha”
não é constante, e será diferente para índices ímpares e pares. Além disso, a orientação
do primeiro triângulo de cada linha também varia. A criação de uma função que faça esse
mapeamento do plano da grade para o plano cartesiano é possível, mas não é simples ou
intuitiva.
Adam “BorisTheBrave” Newgas, em sua publicação de 2021[13], descreve uma
abordagem para a indexação de grades triangulares utilizando três eixos, a, b e c, com
um ângulo de 120° entre eles, com o índice (0, 0, 0) designando um vértice como centro
da grade, e com a soma das coordenadas (i, j, k) de um triângulo no plano sendo tais que
(i + j + k) ∈ {1, 2}, como mostrado na figura 4.2. Os triângulos “com a ponta para cima”
terão a soma de suas coordenadas na grade iguais a 2, enquanto os triângulos “com a
ponta para baixo” terão a soma de suas coordenadas na grade iguais a 1.
Através do sistema de coordenadas triplas para grades triangulares, para uma
célula da grade triangular em (i, j, k) e lado de comprimento l, seu baricentro será pode
ser encontrado pela combinação linear dos três vetores unitários que representam os eixos,
multiplicados pelas respectivas coordenadas e pelo raio r da circunferência circunscrita
ao polígono. A princípio temos acesso apenas ao vetor unitário b, que é vertical para cima.
b = (0, 1) (4-1)
2π
Porém, sabendo que os três vetores são separados por um ângulo de 3 radianos,
é possível encontrar a e c através da rotação de b.
22
" # " # √ !
cos(− 2π 3 ) − sin(− 2π
3 ) 0 3 1
a= · = ,− (4-2)
sin(− 2π 3 ) cos(− 2π
3 ) 1 2 2
" # " # √ !
cos( 2π
3 ) − sin( 2π
3 ) 0 3 1
c= · = − ,− (4-3)
sin( 2π
3 ) cos( 2π
3 ) 1 2 2
Oi, j,k = (i · a + j · b + k · c) · r
" √ ! √ !#
3 1 3 1
Oi, j,k = i · ,− + j · (0, 1) + k · − ,− ·r
2 2 2 2
" √ ! √ !#
i 3 i k 3 k
Oi, j,k = ,− + (0, j) + − ,− ·r
2 2 2 2
√ !
(i − k) 3 −i + 2 j − k
Oi, j,k = , ·r
2 2
√ !
(i − k) 3 −i + 2 j − k l
Oi, j,k = , ·
2 2 2 · sin π3
√ !
1 (i − k) 3 1 −i + 2 j − k
Oi, j,k = · , · ·l
2 sin π3 2 2 sin π3 2
√ !
1 (i − k) 3 1 −i + 2 j − k
Oi, j,k = √ · ,√ · ·l
3 2 3 2
(i − k) −i + 2 j − k
Oi, j,k = , √ ·l
2 2 3
√ !
(i − k) 3 (2 j − k − i)
Oi, j,k = , ·l (4-4)
2 6
i − 1, j, k i, j − 1, k
i, j, k i, j, k + 1
i, j, k − 1 i, j, k
i + 1, j, k i, j + 1, k
i, j, B
i, j,C
c = −a − b (4-5)
i+ j+k = 1 i+ j+k = 2
ou (4-6)
k = 1−i− j k = 2−i− j
i, j, N
i, j, O i, j, L i + 1, j, O
i, j + 1, N
Figura 4.5: Arestas na estrutura de dados sugerida. As arestas tra-
cejadas correspondem às arestas que estariam arma-
zenadas em uma célula vizinha.
i+1, j
i, j
i, j+1
i, j+1
Figura 4.6: Vértices na estrutura de dados sugerida. Os vértices
representados por um círculo vazio correspondem aos
vértices que estariam armazenados em uma célula
vizinha.
corresponde a cada triângulo de forma particular. Patel, em seu guia sobre partes de grades
e seus relacionamentos sugere a nomenclatura de “R” (do inglês, “right”, direita) para o
triângulo com a ponta para baixo, e “L” (do inglês, “left”, esquerda), para o triângulo
com a ponta para cima. Para manter a clareza no texto e algoritmos, os chamaremos os
triângulos com a ponta para cima de “C” (de “cima”) e os triângulos com a ponta para
baixo de “B” (de “baixo”). Essa organização está ilustrada na figura 4.4.
Patel[15] propõe que, em cada paralelogramo (i, j), sejam mantidos os dados das
arestas do triângulo B (arestas Norte, Oeste e Leste) e apenas o vértice no canto superior
esquerdo deste triângulo. Quanto às arestas do triângulo C no paralelogramo, uma delas
será compartilhada com o triângulo B (aresta Leste) de (i, j) e as outras duas virão dos
triângulos B dos paralelogramos (i + 1, j) (aresta Oeste) e (i, j + 1) (aresta Norte), de
acordo com a figura 4.5.
Quanto aos vértices, Patel[15] sugere que seja armazenado apenas um vértice
por estrutura de dados da grade. Supondo que o vértice escolhdido seja o vértice superior
esquerdo, para o triângulo B, o vértice no canto superior esquerdo virá de (i, j), o vértice
4.1 Estruturas de Dados para Grades Triangulares 27
O x
endereçar as células, uma vez que é possível definir dois eixos perpendiculares x e y, tais
que os quadrados em uma mesma linha estejam alinhados com relação ao eixo x e os
quadrados em uma mesma coluna estejam alinhados relativos ao eixo y (vide figura 5.1).
Também, na abordagem escolhida, a posição central da grade (0, 0) será o baricentro uma
célula da grade (e não um vértice), e não há restrições acerca das coordenadas1 .
Considerando o baricentro da célula central da grade como o ponto O, a posição
do baricentro de qualquer célula (i, j), considerando o tamanho do lado l, será
O resultado 5-1 pode ser utilizado para comprovar a equação em 5-2. O re-
sultado 5-1 também pode ser provado através do teorema de pitágoras. Uma vez que
i, j + 1
i − 1, j i, j i + 1, j
i, j − 1
l
V0 = O + (1, 1) ·
2
l
V1 = O + (−1, 1) ·
2
l
V2 = O + (−1, −1) ·
2
l
V3 = O + (1, −1) ·
2
2 Com exceção das células nas bordas da grade, que podem ter 3 ou 2 células adjacentes.
3 Para a abordagem escolhida, apenas as célullas que compartilham arestas entre si serão consideradas
adjacentes. Há também abordagens que consideram adjacentes todas as células que compartilhem vértices
entre si.
5.1 Estruturas de Dados para Grades Quadradas 31
(i + 1, j) a Leste, (i, j − 1) ao Sul e (i, j + 1) ao Norte. Além disso, a célula terá como
diagonais (i − 1, j + 1) a Noroeste, (i − 1, j − 1) a Sudoeste, (i + 1, j + 1) a Nordeste e
(i + 1, j − 1) a Sudeste, de acordo com a figura 5.2. O código 5.2 exibe uma função de
obtenção das células adjacentes à partir de uma célula (i, j).
Para o cálculo de distância entre duas células (i1 , j1 ) e (i2 , j2 ), utiliza-se a
chamada distância de Manhattan:
d = |i2 − i1 | + | j2 − j1 | (5-3)
i, j, N i, j i + 1, j
i, j, O i + 1, j, O
i, j − 1, N i, j − 1 i + 1, j − 1
Figura 5.3: Vértices e arestas da célula (i, j). As arestas traceja-
das e círculos representam as arestas e vértices asso-
ciados a outras células.
Sudoeste estará associado à célula (i, j − 1), e o vértice Sudeste estará associado à célula
(i + 1, j − 1). A figura 5.3 ilustra essa configuração.
Para essa representação, as células na última coluna à direita da grade não terão
vértices e arestas definidas no lado Leste, e as células na linha mais inferior não terão
vértices e arestas definidas do lado Sul, então se faz necessária a criação de células
extra, para garantir que os vértices e arestas das células “incompletas” estejam acessíveis,
assim como ocorre no restante da grade. O espaço em memória ocupado por essas
“células-fantasma” é desprezível quando comparado ao desperdício que seria causado
pela redundância gerada caso se escolhesse uma abordagem onde cada célula armazenasse
seus quatro vértices e arestas por conta própria, e perde sua relevância de acordo com o
crescimento da grade.
Certas linguagens de programação podem permitir o acesso facilitado às estru-
turas dos vértices e arestas, fazendo o acesso às estruturas relacionadas a outras células
através de referências diretas. Também é possível armazenar as informações associadas
aos vértices à parte das informações associadas às células, em uma estrutura matricial de
fácil acesso. Os efeitos dessas otimizações, porém, só tendem a se mostrar vantajosos em
grades maiores ou com grande número de acessos aos vértices.
CAPÍTULO 6
Grades Hexagonais
s q
r
Figura 6.2: Grade hexagonal com a célula central O. A linha
tracejada mostra a variação no das coordenadas do
centro das células no eixo horizontal.
As grades hexagonais sofrem do mesmo mal que as grades triangulares: para uma
grade de hexágonos com a “ponta” para cima (em contraposição às grades com hexágonos
com as “pontas” para os lados), embora os hexágonos de uma mesma linha estejam
alinhados paralelos a um eixo horizontal (mesma coordenada no eixo vertical para células
na mesma linha), os hexágonos em uma mesma "coluna"não estarão alinhados paralelos a
um eixo vertical (a coordenada no eixo horizontal varia no decorrer da coluna)3 . Por essa
razão, Patel[14] propõe o uso de três eixos de coordenadas, assim como na abordagem
proposta por Adam Newgas para grades triangulares[13].
Os três eixos q, s e r, fazem um ângulo de 2π
3 entre si, de modo que o primeiro
eixo, q, faça um ângulo de π6 radianos com o eixo horizontal do plano (vide figura 6.2).
Relativas aos eixos q, s e r, a posição do centro da grade, (0, 0, 0), será o baricentro de
uma célula hexagonal, e todas as células poderão ser acessadas por índices (i, j, k) tais
que i + j + k = 0. Para obter os vetores unitários que representam os eixos, uma vez que
os ângulos relativos ao eixo horizontal são conhecidos, basta rotacionar um vetor unitário
3 Para grades de hexágonos com as "pontas"para os lados, o problema ocorrerá no eixo vertical.
35
l
Oi, j,k = O + (i · q + j · s + k · r) ·
2 · sin π6
√ ! √ ! !
3 1 3 1
Oi, j,k = O + i · , + j· − , + k · (0, −1) · l
2 2 2 2
√ ! √ ! !
i 3 i j 3 j
Oi, j,k = O + , + − , + (0, −k) · l
2 2 2 2
√ !
(i − j) 3 i + j − 2k
Oi, j,k = O + , ·l (6-4)
2 2
i, j + 1, k − 1 i + 1, j, k − 1
i − 1, j + 1, k i, j, k i + 1, j − 1, k
i − 1, j, k + 1 i, j − 1, k + 1
A validade do resultado na equação 6-5 se dá pelo fato de que uma das coordena-
das do sistema utilizado na grade é supérflua, e, portanto, pode ser colocada em razão de
4A peculiaridade da adjacência vem da restrição de que as coordenadas de uma célula na grade devem
somar 0.
37
i, j, NO i, j, NE
i, j, O i + 1, j, O
i − 1, j − 1, NE i, j + 1, NO
Figura 6.4: Arestas de uma célula (i, j). As linhas tracejadas cor-
respondem às arestas cujos dados estarão associados
a células vizinhas.
i, j, N
i, j − 1, S i + 1, j − 1, S
i − 1, j + 1, N i, j + 1, N
i, j, S
Figura 6.5: Vértices de uma célula (i, j). As linhas tracejadas cor-
respondem às arestas cujos dados estarão associados
a células vizinhas.
Norte das células (i, j + 1) e (i − 1, j + 1). Semelhantemente, os lados para uma célula
hexagonal (i, j) serão os lados Oeste, Noroeste e Nordeste da própria célula (i, j), o lado
Oeste de (i + 1, j), o lado Noroeste de (i, j + 1) e o lado Nordeste de (i − 1, j + 1). Estes
relacionamentos estão ilustrados nas figuras 6.4 e 6.5.
CAPÍTULO 7
Considerações Finais
Embora sejam o tipo mais intuitivo e menos complexo de grades que podem ser
implementadas como tabuleiros, as grades quadradas não produzem necessariamente os
melhores resultados para todos os gêneros de jogos (e é por esse motivo que jogos de
plataforma com movimento baseado em grade são raros). Grades quadradas comumente
possuem o efeito de reduzir o passo do jogo, e podem não ser a melhor escolha para jogos
de ação, mas, em contrapartida, apelam para a familiaridade e nostalgia dos jogadores. A
recomendação geral de uso é para jogos com estética e mecânicas antiquadas e jogos que
envolvam construção limitada pela grade.
Grades hexagonais, apesar de sua maior complexidade de implementação e
manutenção, dado o fato que toda a vizinhança de uma célula é diretamente acessível
e equidistante, gera uma sensação maior de justiça em movimentos na grade. Além
disso, o movimento na grade é menos restritivo considerando válida a transição apenas
entre células adjacentes, em comparação com a grade quadrada. Apesar disso, o poder
computacional necessário para lidar com grades hexagonais é maior e planejar e prever
a movimentação na grade pode se tornar um fardo para jogadores acostumados com
grades quadradas. Dito isso, a liberdade de movimento pode ser útil em jogos baseados
em turnos, permitindo que o mapa seja percorrido com maior facilidade, acelerando o
andamento do jogo. Seu uso em jogos que envolvam construção e controle de movimento
em tempo real na grade é impopular.
Para grades triangulares, seu uso em quaisquer aplicações é impopular. Grades
triangulares combinam a restritividade de movimento na grade entre células adjacentes
(pois possuem apenas três lados) com a complexidade do sistema de coordenadas cúbico,
utilizando três eixos. Sua grande vantagem, como já citado anteriormente, é a possibili-
dade de utilização em terrenos tridimensionais com variação de altura, e sua aplicação
apela para jogadores atraídos por mecânicas criativas e incomuns.
Um detalhe digno de nota acerca de grades triangulares e hexagonais é seu
relacionamento de dualidade, e a possibilidade de substituição de uma pela outra para a
modelagem do mesmo tabuleiro. Isso ocorre em razão dos vértices nas grades hexagonais
serem compartilhados por 3 polígonos de 6 lados, e os vértices nas grades triangulares
41
lh lt
π
=
2 · sin 6 2 · sin π3
π
lh · 2 · sin = lt
3
√
lh · 3 = lt
Um ponto trivial, mas cuja citação é cabível, é que, para o armazenamento das
grades considerando índices negativos, será necessária a adição de um deslocamento
(a, b) na conversão de coordenadas da grade para os índices de linha e coluna da matriz
bidimensional. Para grades triangulares e hexagonais, a adição do deslocamento pode
ser realizada após a conversão, mantendo um impacto mínimo na complexidade das
implementações.
42
Por fim, o uso de quaisquer grades como tabuleiros em jogos deve sempre
considerar outras mecânicas-chave do jogo sendo desenvolvido, bem como estilo de
jogo, tempo gasto pelo jogador, plataforma-alvo e público-alvo. Jogos em grades que
restringem o movimento podem se tornar cansativos, lentos e frustrantes, especialmente
para jogos de estratégia baseados em turnos. Jogos em grades não-ortodoxas podem tornar
a movimentação confusa e os controles mais complexos que o necessário, se usadas em
plataformas com compatibilidade ruim ou em projetos com controles incompatíveis. Em
contrapartida, jogos com mecânicas bem pensadas e com boa sinergia com as grades
escolhidas podem oferecer experiências únicas e inesquecíveis para os jogadores. Cabe
ao desenvolvedor tomar as decisões apropriadas e projetar sua criação de acordo com a
experiência desejada.
Referências Bibliográficas
[1] The great videogame swindle? Next Generation Magazine, 23:64–66, Nov 1996.
Versão digitalizada acessada em 22 de fevereiro de 2022, disponível em The Internet
Archive, https://archive.org/details/NextGeneration23Nov1996_2400.
[3] D HULE , M. Building the game world. In: Beginning Game Development with
Godot, p. 161–202. Springer, 2022.
[4] D ONOVAN , T. Replay: The history of video games. Yellow Ant, 2010.
[7] G OOS, G.; H ARTMANIS, J.; L EEUWEN , J. V. Lecture notes in computer science.
Springer, 1973.
[8] G RÜNBAUM , B.; S HEPHARD, G. C. Tilings and patterns. Courier Dover Publicati-
ons, 1987.
[12] M ARDON , A.; W IEBE , J.; DANSEREAU, P.; TOMBROWSKI , L. The history of Board
Games. Golden Meteorite Press, 2020.
Referências Bibliográficas 44
[16] S HERIDAN , P.; H INTZ , T. Spiral Architecture for machine vision. PhD thesis,
1996.
[18] WOLF, M. J. The video game explosion: a history from PONG to Playstation
and beyond. ABC-CLIO, 2008.