게임 속 도로의 예술

14 hours ago 3

  • 도시 건설 게임에서 도로 시스템의 사실적 구현은 핵심 요소로, 단순한 시각적 요소를 넘어 구조적 완성도를 결정하는 기반임
  • 기존 게임들은 Bezier 스플라인을 사용해 도로를 표현하지만, 이는 실제 도로의 곡률과 평행성 유지에 한계를 가짐
  • 현실의 도로는 차량의 차축 간 거리와 곡선 제약을 반영해야 하며, Bezier 방식은 오프셋 시 형태가 왜곡되어 비현실적인 곡선을 초래함
  • 이를 해결하기 위해 원호(Circle Arc)클로소이드(Clothoid) 같은 공학적 곡선을 적용하면, 부드러운 곡률 변화와 병렬 오프셋 유지가 가능함
  • 작성자는 이러한 한계를 극복하기 위해 직접 도로 시스템을 구축했으며, 향후 기술적 구현 과정을 공개할 예정임

도로와 패턴의 매력

  • 자연의 질서 속 무질서한 패턴에서 느끼는 만족감을 도로에서도 발견함
    • 개미굴, 벌집, 잎맥처럼 단순한 규칙이 쌓여 복잡한 구조를 만드는 현상에 비유
    • 도로망 역시 인간이 만든 가장 흥미로운 패턴 중 하나로 묘사됨
  • 도시가 사라진 후에도 남을 도로망의 흔적을 상상하며, 그 구조적 아름다움을 강조함

도시 건설 게임과 도로의 진화

  • SimCity 2000부터 Cities: Skylines 2까지, 도로 시스템은 꾸준히 발전해 왔음
    • SimCity 4는 고도와 대각선 도로, SimCity 2013은 곡선 도로, Cities: Skylines는 자유로운 배치와 교차로 구성을 지원
  • 그러나 여전히 곡선의 부자연스러움, 급격한 회전 반경, 비현실적 고속도로 램프 등의 문제가 존재
  • 모드(Mod) 를 통해 현실적인 차선, 표식, 곡선 구현이 가능해졌지만, 여전히 엔진의 근본적 제약을 벗어나지 못함

Bezier 스플라인의 한계

  • Bezier 곡선은 두 점 사이를 부드럽게 연결하는 강력한 수학적 도구로, 대부분의 게임 엔진에서 사용됨
  • 그러나 이 곡선은 오프셋 시 형태와 곡률이 유지되지 않음, 즉 “Bezier 곡선의 오프셋은 Bezier 곡선이 아님”
  • 이로 인해 내측과 외측 곡선의 불일치, 자기 교차, 핀칭(pinch) 현상이 발생
  • 결과적으로 현실의 도로처럼 차량 궤적을 반영한 병렬 곡선을 구현하기 어려움

원호(Circle Arc)와 클로소이드(Clothoid)의 적용

  • 원호는 오프셋 후에도 동일한 형태를 유지하는 완벽한 평행성을 제공
    • 두 원호의 교차 계산은 Bezier보다 훨씬 단순하며, O(1) 의 계산 복잡도로 효율적
    • 서로 다른 반지름의 원호를 연결하면 공학적으로 타당한 도로 형태를 구성 가능
  • 그러나 원호는 곡률이 일정하여, 직선에서 곡선으로 진입 시 측면 가속도의 급격한 변화가 발생
  • 이를 보완하기 위해 클로소이드(Clothoid) 가 사용됨
    • 곡률이 점진적으로 증가해 자연스러운 조향과 승차감을 제공
    • 수학적으로 복잡하지만, 고속 주행 도로 설계에 필수적
  • 도시 내 교차로처럼 저속 구간에서는 원호 기반 설계로도 충분한 현실감을 확보 가능

직접 도로 시스템을 만든 이유

  • 대부분의 플레이어는 교차로 곡률의 정확성에 큰 관심이 없지만, 개발자는 호기심과 기술적 도전으로 이를 탐구함
  • 기존 상용 게임의 구현 수준은 높지만, 인디 개발자가 접근할 수 있는 자료나 에셋은 부족
  • 단순한 격자형 도로 대신, 더 정교하고 공유 가능한 시스템을 만들기 위해 자체 구현을 진행
  • 다음 글에서 기술적 세부 구현 과정을 공개할 예정이며, 구독을 통해 업데이트를 받을 수 있음

Read Entire Article