바닐라에서 LTN 등을 사용하지 않고 다중하차를 구현하는걸 디자인하고 있어.


전통적 그리드에서는 재료마다 역을 따로 두는데 재료 역을 하나만 두는거지.

  • 철상차
  • 기어(톱니바퀴) 상차
  • 벨트 재료 하차
  • 투입기 재료 하자

이렇게 4종류의 역이 있어. 설명의 편의를 위해서 투입기 재료중에 철, 기어만 고려하자.

  • 벨트 재료: 철, 기어
  • 투입기 재료: 철, 기어


방법1) 상차역-하차역 종류 조합마다 다른 기차

  • 기차1: 철상차-벨트재료 하차
  • 기차2: 철상차-투입기재료 하차
  • 기차3: 기어상차-벨트재료 하차
  • 기차3: 기어상차-투입기재료 하차


여기서 첫번째 문제는 철을 운반한 기차가 벨트재료 역에서 오래 머물수 없다는 점이야. 철 기차가 화물을 비운뒤에 움직이게 하면 기어를 운반한 기차가 하차를 못하는 문재가 생겨. 그래서 시간제한이나 화물양을 체크해서 기차를 출발시켜야지.


이러면 두번째 문제가 발생하는데 벨트재료 역이 여러개일때, 하나의 역에만 계속 기차가 오는 상황이 발생해.

전통적 그리드에서는 기차가 하차를 완료할때까지 머물고 있기 때문에 그 역에는 다른 기차가 가지 않겠지만, 

철을 운반한 기차와 기어를 운반한 기차가 서로 비켜줘야하니 공급 과다인 역을 표시할 구분할 수 없는거지.


화물양을 체크해서 역을 꺼버릴수도 없어. 왜냐하면 철이 과다이고 기어가 없을때 역을 끄면 기어가 안 오게되잖아? 



방법2) 하차역 종류마다 다른기차


  • 기차1: 철상차-기어상차-벨트재료 하차
  • 기차2: 철상차-기어상차-투입기재료 하차


이렇게 설계하면 각 기차는 재료 하차 역에서 오래동안 머물수 있어. 그럼 다른 기차는 빈 역을 찾아서 움직여야하니 하나의 역만 공급받는 문제는 없어지지.


대신 기차 화물칸이 기어 없이 철만 채우는걸 피하기 위해서 기차 인벤토리에 필터를 걸어야겠지. 따라서 기차가 한번에 운반하는 화물의 양이 주는 단점이 생겨. 


방법3) 모든 하차역 별도지정


벨트 재료역과 투입기 재료역이 각각 2개쌕이라고 가정해보자.

  • 기차1: 철상차-벨트재료 하차1
  • 기차2: 철상차-벨트재료 하차2
  • 기차3: 철상차-투입기재료 하차1
  • 기차4: 철상차-투입기재료 하차2
  • 기차5: 기어상차-벨트재료 하차1
  • 기차6: 기어상차-벨트재료 하차2
  • 기차7: 기어상차-투입기재료 하차1
  • 기차8: 기어상차-투입기재료 하차2

이렇게 하면 특정 하차 역에만 공급이 과잉되는 발생하지 않을거야.

필요하다면 기차 1~4를 합쳐서 하나의 기차가 순서대로 방문하게 할 수도 있겠지.

대신 문제는 기차의 종류가 늘어나고 벨트 공장을 추가할때마다 기차를 새로 추가해야하는 문제가 생기겠지.


 -


기차 퍼즐 풀기 어렵다..