범용 정차 규칙이 열차 설정을 줄이는 방법

품목별로 복제하던 인터럽트
2024년 1월 26일의 Factorio 개발 기록 #395는 범용 열차 인터럽트를 설명합니다. 기존 방식으로는 철 기어가 있으면 철 기어 하역장으로, 구리판이 있으면 구리판 하역장으로 가는 규칙을 각각 만들어야 했습니다. 화물이 늘어날수록 같은 구조의 조건이 반복됐습니다.
개선안은 Any item 같은 와일드카드를 사용하는 것입니다. 조건을 검사할 때 화물 가운데 조건을 만족하는 품목을 정하고, 그 품목으로 목적지 이름과 대기 조건의 와일드카드를 치환합니다. 아이템 외에 유체, 연료, 회로 신호에 대응하는 종류도 소개됩니다.
이름 규칙도 기능의 일부입니다
이 방식이 동작하려면 목적지 이름이 정해진 치환 규칙과 맞아야 합니다. 단순히 품목을 실었다고 알맞은 하역장이 자동으로 만들어지는 것은 아닙니다. 원문은 없는 정거장을 건너뛰어 예상 밖의 운반을 계속하기보다 No path 상태로 기다리게 하는 변경도 함께 설명합니다.
또 비활성화된 역은 열차 제한이 0인 것처럼 취급하되, 이미 그 역으로 가는 열차는 계속 도착하도록 했다고 설명합니다. 목적지 부재와 목적지 수용량 부족은 비슷하게 보일 수 있지만 해결 방법이 다른 상태입니다. 범용 규칙일수록 실패 이유를 사용자가 구별할 수 있어야 합니다.
공개 사용 문서로 확인하는 동작
Factorio 위키는 와일드카드가 화물·유체·연료 등 서로 다른 대상에 적용되며, 정거장 이름의 리치 텍스트 아이콘을 치환하는 절차를 설명합니다. 또한 여러 인터럽트 조건이 동시에 맞으면 목록에서 위쪽에 있는 것을 우선한다고 안내합니다. 따라서 범용 규칙 하나를 추가할 때 기존 급유나 대기소 규칙과의 순서도 확인해야 합니다.
위키는 사용 동작을 보충하는 자료이며 엔진 구현을 독립적으로 시험한 근거는 아닙니다. 공식 기록과 함께 읽으면 매개변수가 줄인 반복 설정 뒤에 이름 규칙과 우선순위라는 새로운 계약이 있음을 알 수 있습니다.
혼합 화물과 오류 상태 시험하기
다음은 실행하지 않은 시험 제안입니다. 두 품목과 대응하는 두 하역장을 준비하고, 같은 열차 규칙으로 각각 운반해 봅니다. 이어서 혼합 화물을 실어 어떤 품목이 선택됐는지와 남은 화물이 다음 동작에 어떤 영향을 주는지 기록합니다. 여러 품목 중 무엇이 먼저 선택될지 근거 없이 고정 순서를 가정하지 않는 것이 좋습니다.
다음에는 정거장 이름의 아이콘을 일부러 다르게 설정하고, 역을 비활성화하거나 수용량을 모두 사용한 상태를 각각 만듭니다. 경로 없음과 목적지 가득 참을 화면과 로그에서 구별할 수 있는지 확인합니다. 급유 조건까지 동시에 맞는 경우에는 인터럽트 순서를 바꾸어 결과를 비교할 수 있습니다.
범용화의 성공은 규칙 개수뿐 아니라 잘못된 입력에서도 상태를 이해할 수 있는지에 달려 있습니다. 이 글은 공개 기능의 원리를 정리했으며 운행 효율이나 실패 복구 시간을 실제로 측정한 보고서는 아닙니다.
미로


댓글
이 글에 대한 생각을 남겨 주세요.