신호 기획

단어 정의

앞: 열차가 진행 중일 때, 미래에 도달할 위치
뒤: 과거에 이미 도달한 위치

목적

  • 열차가 움직일 수 있는 조건을 정의하자.
  • 열차는 특별 이벤트(폭주 기관차 이벤트 등) 없이 추돌해서는 안된다.
    • 유저의 잘못된 설계는 대신 신호 꼬임으로 인한 지연 또는 데드락을 초래한다.
  • 철도 동호인들을 대상으로 만드는 게임이므로, 과하게 현실이랑 먼 방식은 배제한다.
  • 유저가 신호 시스템을 너무 신경쓸 필요는 없다. 신호 관련 기능을 전혀 건드리지 않아도 비효율적일지언정 플레이 가능하다.

신호의 종류

모든 신호는 보호구간이 있다. 보통 신호가 박힌 곳에서 다음 신호가 나오기 전까지의 구간이다.

폐색신호기

목적

  • 일반 선로에서의 자동화된 추돌 방지

설치 위치

  • 일방통행 선로에서, 일정 간격으로. 보통 1km~5km.

역할

  • 보호 구간에 열차가 있다면, 진입 불가 신호를 현시한다.
  • 앞 신호에 따라…
    • 앞 신호가 폐색 신호기일 경우 앞 신호기보다 빠른 속도를 현시한다.
    • 장내신호기라면 장내신호기의 정책에 따른다.

장내신호기

단어 정의

1구간: 장내신호기-플랫폼 시작점
2구간: 플랫폼 옆 선로
3구간: 플랫폼 끝점-출발신호기

목적

  • 역 구내에서의 추돌 방지
  • 진입 열차에 플랫폼 지정

특징

  • 오직 장내신호기만 여러 신호기가 하나의 보호구간을 공유하고 서로 소통할 수 있음

설치 위치

  • 역 입구

역할

  • 진입하는 각 열차에게 보호 구간 내 선로를 예약해주고 진입 허용.

  • 다음 세 단계에 걸쳐 예약.

    • 정차하는 열차의 경우

      • 2구간까지의 경로 탐색. 1구간, 2구간 경로 내 선로 예약.
      • 열차가 완전히 2구간 진입 시 1구간 예약 해제
        • 열차가 너무 긴 경우에는 1구간 예약을 들고 있어야 함.
      • 열차의 승하차취급이 종료된 후, 출발신호기까지의 경로 탐색. 2구간, 3구간 경로 내 선로 예약
    • 통과하는 열차의 경우

      • 역 통과 경로(3구간까지의 경로) 탐색 후 예약
      • 예약 실패 시, 정차하는 열차로 간주
  • 뒤 폐색신호기에게 적절한 역 진입 속도 현시

    • 열차 통과가 가능한 상황일 경우 무제한
    • 아닐 경우 속도 제한 (ex. 30km/h)

출발신호기

목적

  • 3구간 종료 시점 표시

폐색신호기와 하는 일이 거의 같다.

실제 출발 신호기와는 하는 일이 조금 다르다. 실제 출발 신호기는 각 플랫폼 출발 위치에서 각 열차에게 출발 신호와 경로를 안내한다. 우리도 비주얼 적으로는 그에 비슷하게 보이려고 할 것이다. 내부 로직 적으로는 장내신호기에게 전부 맡기는 것이 편해 보인다.

장내 신호기와 출발 신호기는 절대 신호기로, 유저가 직접 조작하는 것이 가능하다.

유저 편의 정책

1. 자동 설치

폐색신호기

선로 설치 시 토글 옵션 제공

장내/출발신호기

분기 기반 자동 계산법
합류를 기준으로 앞쪽을 S구역, 뒤쪽을 H구역으로 함.
뒤로 갈 때는 n km 이상 추가 분기를 만나지 않았을 경우 그곳에서 구역 설정 종료.
SH 구역과 H 구역 경계에 장내, SH 구역과 S 구역 경계에 출발

2. 경고 표시

  • 장내신호기가 아닌데 보호구간을 겸용할 경우.
  • 장내신호기가 앞의 출발신호기를 찾지 못했을 경우
  • 출발신호기가 뒤의 장내신호기를 찾지 못했을 경우
    • 위 둘은 해당 신호기에서 갈 수 있는 모든 경로 중 단 하나만이라도 상대 신호기를 찾지 못한 경우를 말한다.
    • 끊어진 것은 괜찮기 때문에 사실상 원하는 신호기가 아닌 다른 신호기가 발견된 경우라고 이해해도 된다.
  • 플랫폼, 또는 분기가 장내-출발 사이 구간에 있지 않을 경우

한계

이 시스템에서 자동으로 불가능한 것과 변명.

  • 열차 등급에 따른 자동 대피가 불가능하다.
    • (기획 의도) 플레이어는 시간표를 더 적절하게 구성하라.
    • (기획 의도) 플레이어는 시간표가 지켜질 수 있도록 지연 등의 사고율을 줄여라.
    • (기획 의도) 플레이어는 지연 등 불상시에 더 적절하고 신속히 대처하라.
    • (보완책) 프로그래밍 가능한 신호기를 제공한다.
  • 장내/출발신호기 설치가 귀찮다.
    • (기획 의도) 플레이어는 현실 철도 시스템 설치에 가까운 경험을 얻는다.
    • (보완책) 시티즈2의 드래그 도로 업그레이드 같은 편의 조작을 도입
  • 장내신호기의 계산 코스트는…?
일단 가려놓음

현실에서는?

모든 분기기는 열차 밖의 직원이 조작하는 것이다. 즉, 분기 근처의 철도 신호는 사람이 관제한다고 생각하면 된다.
=> 게임이 알아서 해야 한다.

선로 예약 방식 (feat. 팩토리오)

팩토리오에서는 열차가 앞 폐색을 예약하는 방식으로 동작하는 것 같다. 각 열차는 자신의 제동거리만큼 앞쪽 선로를 예약하면서 움직여야 한다.

[문제점, 그리고 해결 방법]

1. 얼마만큼의 폐색을 예약해야 하는지 불분명함

  • 분기 주변에는 신호장이 생성 (역은 신호장의 일종)
    • 장내신호기 - 출발신호기(정차 가능한 경우) - 폐색신호기
  • 신호장 범위 내에 있는 폐색을 예약
  • 신호장 범위 만들기
    • 합류가 생성되었을 경우, (분기되어 나가는 경우는 아무래도 좋음) 합류 앞에 폐색 신호기 설치. 각 합류 뒤쪽으로 가며 장내신호기를 탐색. 모든 가지에 대해서 장내신호기를 찾아야 함. 특정 거리(ex. 1km) 이후로도 장내신호기를 찾지 못한 경우 그곳에 장내신호기를 설치. 최초 설치한 폐색신호와 장내신호 사이 모든 신호 (출발신호 제외)를 없앰
참고문헌

日本の鉄道信号 - Wikipedia
連動装置 - Wikipedia