문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 팩토리오/팁 (문단 편집) ==== 정류장과 철도 신호 ==== 기관차 자체는 단지 철도 위로만 달릴 수 있는 평범한 이동 수단이지만 자동화된 철도 운송을 연구하게 되면 이 후 정류장을 사용할 수 있으며 비로소 자동화 운행이 가능해진다. 기본적으로 기관차가 철도 위를 순환하기 위해서는 적어도 두 개 이상의 정류장이 필요하며 일정에 등록 시 다양한 조건도 함께 부여하여 조건이 만족될 때 해당 정류장을 떠나도록 할 수 있다. 기관차가 정류장에 멈추기 위해 출발 조건이 필요하며 그 조건은 다음과 같다... * '''시간이 지남''': 정류장에 도착 직후 일정한 시간이 지날 경우 출발한다. 가장 간단한 조건으로 단지 정류장에 들어오는 순간부터 시간 카운트가 시작된다. 기본 30초이며 최소 0초부터 최대 120초까지 설정할 수 있다. * '''활동 없음''': 기관차의 연료 인벤토리나 기관차와 연결된 화물차, 유체 화물차, 대포 화물차의 인벤토리가 일정한 시간동안 변화를 보이지 않을 경우 출발한다. 시간 대기에서 인벤토리 변화 없음 조건이 추가된 것으로 주로 거의 다 고갈되어 가는 자원 매장지에 적합하다. 원유 매장지의 경우 최후에 아주 작게나마 원유를 추출하므로 적합하지 않다. * '''화물 가득 채움''': 기관차에 연결된 모든 화물차, 유체 화물차, 대포 화물차의 인벤토리가 모두 채워졌을 경우 출발한다. 화물차, 유체 화물차, 대포 화물차가 수용할 수 있는 공간을 최대한 가득 채웠을 때에 출발하게 되므로 화물차는 40칸의 아이템 모두 최대 묶음 개수일 때, 유체 화물차는 유체 수용량이 25,000 단위일 때, 대포 화물차는 대포용 포탄이 100개일 때 출발하게 된다. 만약 기관차에 연결된 화물차, 유체 화물차, 대포 화물차가 하나도 없을 경우에는 수용할 수 있는 인벤토리가 없으므로 그대로 출발한다. * '''화물 비움''': 기관차에 연결된 화물차, 유체 화물차, 대포 화물차의 인벤토리가 모두 비워졌을 경우 출발한다. 화물차, 유체 화물차, 대포 화물차가 수용할 수 있는 공간을 완전히 비울 때에 출발하게 되므로 화물차는 40칸의 모두 아무것도 없을 때, 유체 화물차는 유체 수용량이 0 단위일 때, 대포 화물차는 대포용 포탄이 0개일 때 출발하게 된다. 만약 기관차에 연결된 화물차, 유체 화물차, 대포 화물차가 하나도 없을 경우에는 수용할 수 있는 인벤토리가 없으므로 그대로 출발한다. * '''아이템 개수''': 기관차에 연결된 화물차, 대포 화물차의 인벤토리에 특정한 아이템이 특정한 개수의 조건을 만족할 경우 출발한다. 화물차는 물론 대포 화물차의 인벤토리도 포함한다. 왼쪽 값에는 원하는 아이템을, 오른쪽 값에는 비교할 아이템이나 상수 값을 적으면 되며 중앙에 두 값을 비교하기 위한 부등호를 설정한다. * '''유체량''': 기관차에 연결된 유체 화물차에 특정한 유체가 특정한 값의 조건을 만족할 경우 출발한다. 왼쪽 값에는 원하는 유체를, 오른쪽 값에는 비교할 유체나 상수 값을 적으면 되며 중앙에 두 값을 비교하기 위한 부등호를 설정한다. * '''회로 조건''': 기관차가 정차한 정류장으로부터 회로 신호를 전달받아 조건으로 사용하여 특정한 신호의 값이 만족할 경우 출발한다. 정류장이 회로 네트워크에 연결되어야 하며 '기차에 신호 보냄'이 활성화되어야 조건으로서 사용될 회로 신호를 사용할 수 있다. * '''탑승자 있음''': 기관차 혹은 기관차와 연결되어 있는 화물차, 유체 화물차, 대포 화물차에 탑승하고 있는 플레이어가 한 명 이상일 경우 출발한다. * '''탑승자 없음''': 기관차 혹은 기관차와 연결되어 있는 화물차, 유체 화물차, 대포 화물차에 탑승하고 있는 플레이어가 한 명도 없을 경우 출발한다. 만약 해당 정류장에 할당된 조건이 하나도 없다면 기관차는 해당 정류장을 거치되, 멈추지 않고 그대로 넘어간다. 조건이 둘 이상일 경우 구성을 '또는', '그리고'로 설정할 수 있다. '또는'은 위 조건과 아래 조건을 분리시킴으로써 조건의 새로운 그룹을 생성시키며 둘 이상의 조건 그룹 중 한 가지의 조건 그룹을 모두 만족하면 즉시 정류장을 떠나게 된다. '그리고'는 위와 아래의 조건을 하나의 그룹으로 만들어 둘 이상의 조건이 만족되어야만 출발하도록 하고 하나 이상이 만족되더라도 다른 하나 이상이 만족되지 않는다면 출발하지 않고 정류장에 머무른다. 모든 정류장은 직접 이름을 새길 수 있다. 처음 정류장을 배치하면 이름은 무작위로 설정되지만 그 정류장이 가지는 특성을 고려하지 않으므로 직관적으로 알 수 있는 형태의 이름으로 바꾸는 것이 좋다. 동일한 이름을 설정하는 것도 가능한데 이 경우 동일한 이름을 갖는 둘 이상의 정류장은 통합되며 열차는 이 중 가장 가까운 비어있는 하나 이상의 정류장으로 이동한다. 이는 원유 매장지를 설정하는 데에 매우 적합하다. 또한 정류장에는 그 정류장으로 올 수 있는 기차의 수를 제한할 수 있다. 이것은 동일한 이름을 사용하는 경우, 드물게 기차가 한 정류장으로 과도하게 밀집되는 상황을 방지하는 기능이다. 기본적으로는 제한되지 않으며 이는 모든 기차가 해당 정류장으로 가려 한다면 모든 기차가 그 정류장으로 이동하게 된다. 이러면 그 정류장으로 향하는 기차 줄이 일렬로 늘어나게 되는데 보통 이를 해결하기 위해 정류장을 병렬로 여러 개를 두지만 정류장으로 오는 기차의 수를 제한한다면 다른 정류장에서의 일을 마치고 해당 정류장으로 오는 즉시 기차 도착 점유 수가 계산되며 이렇게 제한 수까지 차오르게 되면 그 정류장은 기존에 이미 그 정류장으로 가고 있는 기차에게는 그대로 오게 하고, 해당 정류장으로 오려는 다른 기차는 그 정류장을 갈 수 없는 것처럼 기존 정류장에서 대기하도록 하게 만든다. 예로 게임 내에 여러 기차와 정류장이 있으며 그 중 6대의 기차가 우연찮게 동시에 정류장 A로 오려고 한다고 가정해보자. 기차 수 제한이 없다면 6대의 기차 모두가 정류장 A를 향해 모여들게 될 것이고 그러면 B 정류장 뒤로 무려 6대의 기차가 이룬 기차 행렬이 나타날 것이다. 한 대의 기차의 길이가 길다면 그만큼 기차 행렬도 굉장히 길어질 것이며 이러면 다른 기차들도 지나다니는 철도까지 침범하거나 심지어 교차로 내부까지 침범해 통행 흐름을 막아버릴 수도 있고 최악의 경우 영구적인 교착 상태가 발생할 수도 있다. 여기서 정류장 A의 기차 제한 수를 2로 설정한다면 A로 향하려는 기차가 네 대일 경우 이 중 먼저 A로 향하는 두 대의 기차만이 A로 향하게 되고 다른 두 대의 기차는 마치 정류장 A가 닫힌 것처럼 A로 향하지 않고 지금 머무르는 정류장에 계속 머무르게 된다. 이러면 A 정류장의 기차 행렬은 매우 짧을 것이며 다른 기차들이 다니는 범용 철도도 침범하는 일은 거의 일어나지 않게 된다. 이 후 먼저 A에 도착한 기차가 조건을 만족해 떠난다면 이 후 A를 향하려는 기차 중 하나가 다시 출발을 시작하게 된다. 그리고 물론 이 기차 제한 수를 활용하려면 머무르게 하고 싶은 기차의 수 만큼 기차가 대기할 수 있는 공간을 미리 마련해두어야 한다. 기관차를 한 대, 혹은 그 이상이더라도 서로 철도를 공유하지 않다면 전혀 문제가 없지만 하나의 철도 위에 기관차를 두 대 이상 운영하는 경우에는 큰 문제가 발생한다 (서로의 철도가 완전히 연결되어 있지 않더라도 단지 교차되어 있는 것만으로도 해당됨). 팩토리오의 기관차는 전방에 다른 기차가 있는지 없는지를 전혀 고려하지 않으므로 전방에 기차가 있다면 어떻게서든 밀어붙이려 한다. 기관차가 다가온다면 작용과 반작용 법칙과 무관하게 가만히 있는 대상이 충돌 피해를 받는다. 기차 자체 충돌 피해에 대한 저항은 50/60%이므로 기관차 스스로에게는 경미한 수준이나 그럼에도 단지 무식하게 밀어붙이려 하는 꼴은 두고 볼 수 만은 없는 일이므로, 기차끼리 충돌이 일어나는 상황을 막기 위해 '철도 신호'를 사용하여야 한다. 철도 신호는 앞에 존재하는 기차의 존재를 인지하여 기차가 있다면 자동화 운행을 하는 기차를 자신 앞에 정지하도록 한다. 신호는 자신을 기준으로 다음 신호를 만날 때 까지의 철도 구획을 하나의 자신의 구역 담당으로 여기므로 '한 구역 내에 기차가 있다'라는 사실을 알려주기 위해 적어도 운행되는 기차의 수 + 1개의 철도 신호를 사용하여 기차가 없는 구간도 만들어야 한다. 기차 두 대를 사용하는 경우를 기준으로 설명하여 각 A, B, C 철도 신호가 있고 그 철도는 서로 원형으로 돌아가는 구조라 가정할 경우, A 철도 신호와 B 철도 신호 사이에 기차가 있다면 A 철도 신호는 정지 신호를 보내 다가오는 기차를 바로 뒤에서 정지시키고, B 철도 신호는 그 다음 C 철도 신호까지의 선로 내에 기차가 없다면 A 철도 신호와 B 철도 신호 사이에 있는 기차에게 운행 신호를 보낸다. C 철도 신호 역시 A 철도 신호까지의 선로 내에 기차가 없다면 운행 신호를, 있다면 정지 신호를 보낸다. 즉 철도 신호는 다음 철도 신호를 만날 때 까지의 모든 철도의 구역을 담당하며 두 철도 신호 사이에 단 하나의 기차만 들어갈 수 있다. 만약 기차의 수와 동일한 수의 철도 신호를 사용한다면 A 철도 신호부터 B 철도 신호까지의 철도, 그리고 B 철도 신호부터 A 철도 신호까지의 철도에 기차가 지속적으로 인지되기에 영원히 정지 신호를 보내므로 결국 교착 상태가 된다. 따라서 철도 신호 하나를 더 배치하여 추가적으로 '기차가 존재하지 않는 공간'을 마련해 기차가 지속적으로 나아갈 수 있도록 하여야 한다. 이러한 규칙에 따라 철도 신호간의 사이에는 화물차 및 기차의 수와 크기에 관계 없이 오로지 먼저 다가오는 한 대의 기차만 들어갈 수가 있다. 철도 신호 역시 정류장처럼 오른편에 배치되어야 한다. 기차가 너무 길어서 두 공간을 차지할 경우에도 '기차가 있음'을 인지한다. 순환선이 아닌 단선 왕복 선로나 매우 다양한 선로가 서로 합쳐지거나 퍼져나아가는 복잡한 선로는 단지 철도 신호만으로는 제어가 매우 힘들어질 수 있다. 또한 철도 신호는 단지 이전 철도 신호와 다음 철도 신호만을 인지하기 때문에 보다 더욱 사전에 미리 정지시키는 것은 불가능하다. 이때 더욱 심화된 기관차 제어를 제공해주는 철도 연속 신호를 사용할 수 있다. 철도 연속 신호는 철도 신호와 동일한 기능을 겸해 다가오는 기차에게 신호를 보내고 전방 구획에 기차가 있는지를 인지하지만 추가로 현재 담당하는 구획 전방의 신호 정보를 모두 인지한다 인지하려는 철도 신호가 일반 철도 신호인지 철도 연속 신호인지는 구분하지 않는다. 철도 신호는 다음 철도 신호 안의 기관차만을 인지하며 철도 연속 신호 역시 그러하나 전방 철도에 있는 철도 (연속) 신호의 정보를 인지하여 정지 신호를 가져오므로 교차로의 경우에 아주 적합하다. 교차로에 철도 연속 신호를 사용하지 않는다면 공간이 생기는 순간 바로 교차로 내부로 들어가서 다른 기차의 길을 차단하게 만들게 되며 최악의 경우 서로 갇혀서 나아가지도, 빠지지도 못 하는 교착 상태에 이르게 될 가능성이 높으나 철도 연속 신호를 사용한다면 앞의 신호 정보를 인지하여 기관차가 교차로에 진입 전에 미리 정지시키도록 할 수 있으므로 대부분의 교착 상태를 해결할 수가 있다. 단지 두 철도 신호 사이에는 한 대의 기관차만 들어갈 수 있다는 것, 그리고 한 철도 위에는 기관차의 수 + 1만큼의 철도 신호가 배치되어야 한다는 점, 그리고 철도 연속 신호는 전방의 철도 신호를 복제한다는 것을 기억한다면 그리 어렵지 않다. 더욱 간단히 서술하면, 출구 쪽 철도에는 일반 철도 신호를, 입구부터 출구 전 까지 철도 연속 신호를 배치하면 단순 형태의 교착 문제는 해결된다. 철도 신호는 많은 교착 상태를 해결하지만, 모든 경우의 수에서 일어날 수 있는 교착 상태를 해결해주지 못 한다. 이러한 경우는 대부분 라운드어바웃 (원형 교차로)에서 일어날 가능성이 크고 또한 기차마다 길이를 일관성있게 통일하지 않는다면 길이가 매우 긴 기관차에 의해 두 개 이상의 철도 구간을 차지하여 통행에 방해를 할 수 있으며 모든 자동화된 기관차는 무조건 '철도 신호의 신호 상태'만을 인지하므로 기관차를 다룰 생각이라면 신호와 신호 간의 간격, 그리고 하나의 기관차의 길이를 되도록이면 일관성있게 통합하는 것이 좋다. 기관차를 매우 많이 늘릴 계획이라면 정류장 뒤를 넉넉히 배치해 두세대 가량의 기차가 넉넉히 대기할 수 있는 공간을 마련하는 것도 좋다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기