2 pontos por GN⁺ 2026-02-09 | 1 comentários | Compartilhar no WhatsApp
  • Em jogos de construção de cidades, a implementação realista do sistema viário é um elemento central, servindo não apenas como componente visual, mas como base que determina a solidez estrutural do conjunto
  • Jogos existentes costumam representar estradas com splines de Bézier, mas isso tem limitações para manter a curvatura e o paralelismo das vias reais
  • Estradas do mundo real precisam refletir a distância entre eixos dos veículos e as restrições das curvas; no método Bézier, o formato se distorce ao aplicar offset, resultando em curvas irreais
  • Para resolver isso, a aplicação de curvas de engenharia como arcos de círculo (Circle Arc) e clotoides (Clothoid) permite mudanças suaves de curvatura e manutenção de offsets paralelos
  • Para superar essas limitações, o autor construiu diretamente seu próprio sistema viário e pretende divulgar futuramente o processo de implementação técnica

O fascínio por estradas e padrões

  • O autor encontra nas estradas a mesma satisfação causada por padrões caóticos dentro da ordem presentes na natureza
    • Faz uma analogia com formigueiros, colmeias e nervuras de folhas, onde regras simples se acumulam e criam estruturas complexas
    • A malha viária também é descrita como um dos padrões mais interessantes já criados pela humanidade
  • Ao imaginar os vestígios da rede viária que permaneceriam mesmo após o desaparecimento das cidades, ele destaca sua beleza estrutural

Jogos de construção de cidades e a evolução das estradas

  • De SimCity 2000 a Cities: Skylines 2, os sistemas viários evoluíram de forma constante
    • SimCity 4 introduziu elevação e estradas diagonais; SimCity 2013 trouxe estradas curvas; Cities: Skylines passou a oferecer posicionamento livre e composição de cruzamentos
  • Ainda assim, persistem problemas como curvas pouco naturais, raios de giro bruscos e alças de rodovia irreais
  • Com mods, tornou-se possível implementar faixas, marcações e curvas mais realistas, mas isso ainda não supera as limitações fundamentais da engine

As limitações das splines de Bézier

  • A curva de Bézier é uma ferramenta matemática poderosa para conectar suavemente dois pontos e é usada na maioria das engines de jogo
  • Porém, essa curva não preserva forma nem curvatura ao aplicar offset; em outras palavras, “o offset de uma curva de Bézier não é uma curva de Bézier”
  • Isso causa desalinhamento entre a curva interna e a externa, auto-interseções e o fenômeno de pinch
  • Como resultado, torna-se difícil reproduzir curvas paralelas que reflitam a trajetória real dos veículos, como acontece nas estradas do mundo real

Aplicação de arcos de círculo (Circle Arc) e clotoides (Clothoid)

  • O arco de círculo oferece paralelismo perfeito, preservando a mesma forma mesmo após o offset
    • O cálculo da interseção entre dois arcos é muito mais simples do que no caso de Bézier e eficiente, com complexidade O(1)
    • Ao conectar arcos com raios diferentes, é possível compor formas viárias tecnicamente válidas
  • No entanto, arcos têm curvatura constante, o que gera mudança brusca na aceleração lateral ao passar de uma reta para uma curva
  • Para compensar isso, usa-se a clotoide (Clothoid)
    • Sua curvatura aumenta gradualmente, proporcionando esterçamento natural e mais conforto de condução
    • Embora seja matematicamente complexa, ela é essencial no projeto de vias de alta velocidade
  • Em trechos de baixa velocidade, como cruzamentos urbanos, um projeto baseado em arcos já pode oferecer realismo suficiente

Por que criar um sistema viário próprio

  • A maioria dos jogadores não se importa muito com a precisão da curvatura dos cruzamentos, mas o desenvolvedor explora isso por curiosidade e desafio técnico
  • Embora o nível de implementação em jogos comerciais seja alto, faltam materiais e assets acessíveis para desenvolvedores indie
  • Em vez de se limitar a estradas simples em grade, ele decidiu implementar seu próprio sistema para criar algo mais refinado e compartilhável
  • No próximo texto, pretende revelar os detalhes técnicos da implementação, e é possível receber atualizações assinando o conteúdo

1 comentários

 
GN⁺ 2026-02-09
Comentários do Hacker News
  • Ao ver o texto dizendo que estradas são o elemento central em jogos de construção de cidades, acho que entendi por que urbanistas têm pesadelos
    A base da cidade não é a rodovia/estrada (road) para carros, mas a rua (street) compartilhada por pedestres, bicicletas e transporte público
    Como conceito relacionado, vale consultar o verbete Stroad

    • Eu nunca tinha pensado na diferença entre essas duas palavras, mas a explicação da Wikipedia fez sentido
      Road é centrada em transporte (transportation), enquanto street é centrada em interação pública (public interaction)
      Ainda assim, acho que a citação original está sendo criticada em excesso. A sociedade moderna tem uma demanda enorme por transporte, então a malha viária dentro e fora das cidades forma o esqueleto urbano
      Antes dos anos 1900, só dava para construir cidades perto de vias navegáveis, mas hoje as estradas tornaram possível fazê-lo também no interior
    • As ruas de São Francisco também foram projetadas desde o século XIX com base em princípios de engenharia civil
      Para criar uma cidade realista, acho que essa abordagem faz mais sentido do que usar estradas falsas
    • Eu também gosto de infraestrutura centrada no pedestre (ciclovias, calçadas, transporte público), mas é fato que as estradas foram originalmente projetadas para carruagens e carros
      Às vezes imagino como seria uma civilização que projetasse cidades usando apenas bicicletas e deslocamento a pé
  • Há um jogo de que o autor provavelmente gostaria: Junxions, um sandbox focado em criar cruzamentos viários
    O subreddit relacionado está aqui. Parece o tipo de jogo que satisfaz bem essa vontade de projetar estradas

    • Eu sou o criador desse sistema viário. Na verdade, ainda não sei exatamente o que vou fazer com ele — se vou lançar como asset ou transformar em jogo
      Eu também gosto de Junxions, mas minha abordagem é diferente. Lá eles usam uma estrutura Bézier baseada em nós, enquanto eu gero cruzamentos automaticamente por meio de colisões entre segmentos de estrada
      No próximo post do blog vou tratar em detalhe das diferenças entre as duas abordagens
  • Dizem que só 1% das pessoas se importam com o raio dos cantos em cruzamentos, e eu com certeza faço parte desse 1%

  • Definir estradas com curvas Bézier não é fácil
    Especialmente em curvas fechadas, o resultado visual pode ficar ruim
    Eu passei pelo mesmo problema no ano passado trabalhando no projeto Azoth e encontrei uma solução simplificada
    Referência: repositório do Azoth, exemplo de Bézier

  • Elementos que parecem óbvios nos jogos na verdade são resultado de muito trabalho e projeto
    Por exemplo, os jogadores não olham para estradas com tanta atenção, mas se elas parecerem estranhas, o incômodo aparece na hora
    Senti isso recentemente jogando Kingdom Come 2 — tudo parece natural como na vida real, mas cada detalhe ali foi feito com suor e lágrimas pelos desenvolvedores
    Por isso dá para entender por que a indústria de jogos sofre tanto com crunch

    • Portas em jogos também são um problema complexo. Elas costumam ser 30% maiores do que na vida real, e na maioria dos casos usam portas deslizantes por causa do processamento de física
      Texto relacionado: The Door Problem, matéria da IGN
  • É por textos assim que continuo acompanhando o Hacker News. Queria dizer ao autor para continuar escrevendo

    • Sou o autor. Obrigado pelo interesse. Na verdade eu nem conhecia o HN, só descobri por causa do tráfego chegando
      Tem muita gente com interesses parecidos, então pretendo continuar publicando mais
  • Esse texto é totalmente a minha cara. Eu tenho a mesma obsessão por estradas
    As cidades são formadas por estradas como se fossem vasos sanguíneos, e as ruas de vilas na Europa e na Ásia contam a história de terem surgido sobre trilhas de passos
    Já as estradas rurais da minha terra natal seguem em linha reta até que, se um fazendeiro se recusa a vender o terreno, elas de repente fazem uma curva
    Só algumas áreas do período colonial ou de cidades planejadas seguem um traçado em grade; a maioria muda de direção conforme o curso do rio ou o relevo
    Esses pontos de interseção entre grades são as partes mais bonitas e arquitetonicamente interessantes de uma cidade
    Seria incrível se existisse um jogo que simulasse as mudanças do crescimento urbano

    • Eu também perco a imersão quando jogos de construção de cidades históricas usam traçado em grade
      Cidades reais se desenvolveram como formigueiros, com uma complexidade dentro de uma ordem natural
      Quero escrever sobre esse tema separadamente no futuro
  • No próximo jogo Canalpunk, vou continuar usando splines Bézier
    Acho que seria interessante um sistema de desastres gerados quando caminhos fazem auto-interseção

  • Estou obcecado em implementar clotoides (curve transition) em um editor de trilhos ferroviários
    Em espaço vazio é fácil, mas conectar os trilhos é a parte difícil
    Tenho um material explicativo antigo sobre isso: Euler Spiral Explanation

    • Fiquei com uma dúvida. Quando há uma linha que se divide em dois ramos da esquerda para a direita, se você prolongar a clotoide para trás, a forma de onda não se cruza?
      Gostaria de experimentar se esse ponto de cruzamento poderia ser usado para interpolar uma nova spline
      Imagem de referência: exemplo visual
    • A explicação é realmente muito detalhada, então já salvei. Eu não fazia ideia de que conectar clotoides era tão difícil. Ainda não tenho coragem de tentar implementar isso por conta própria
  • Dá para simplificar fazendo como os romanos, com estradas retas :-)
    Claro que os romanos não se importavam muito com propriedade privada. Em Lincolnshire, no Reino Unido, onde moro, estradas romanas ainda estão em uso
    A única exceção foi quando desviaram uma estrada para ampliar a pista da RAF Scampton

    • Na verdade, os romanos também tinham problemas com propriedade privada. Por exemplo, o segundo aqueduto foi atrasado porque o proprietário Crassus se recusou a ceder o terreno
      Para mais detalhes, veja Roman aqueduct
    • As estradas da minha região seguem, desde a Idade Média, uma estrutura que liga torre de igreja a torre de igreja
      Até hoje a linha central das estradas coincide perfeitamente com a direção das torres das igrejas. Essa ideia de território centrado na igreja lembra a dos romanos