시작하기 앞서 앞 글을 안 봤다면 참고 바람.

UPS 와 투입기 수와의 관계에 대해 wars 3 의 결과를 가지고 추측해본 글임.


https://gall.dcinside.com/mgallery/board/view/?id=factorio&no=15411


지난번에 글 쓰면서 활성화된 투입기의 수와 UPS가 반비례할거라는 가설을 세웠는데


각 디자인에 따라

세로축을 그 맵의 실행 시간으로 하고

가로축을 디자인에 따른 이상적인 조건에서의 활성화된 투입기의 수로 했더니



viewimage.php?id=2bbcd332eac031a9&no=24b0d769e1d32ca73fed82fa11d028313b437bcefb649778a1210ba42baeac2e2fe3033946275d5376ae2276903449ccf19377be4ed969c614e853b1a9fc820cc377406d


그래프로 그려보니 거의 정확하게 정비례하는데 이거?


다른 디자인에도 성립하는지 좀더 데이터를 얻고 싶은데 벤치마크 맵 만드는게 상당히 귀찮은 일이라 직접 하긴 귀찮다


뭣보다 이전까진 신호기 없는 디자인 보다 신호기 쓰는 디자인이 훨씬 좋고,

8비콘 디자인보다 12비콘이 당연히 훨씬 좋을 거라고 얘기해왔는데

그게 활성 엔티티 수(조립기계 수+투입기 수)가 줄어서 그런거라고 설명하는거는 많이 봤었음.


근데 비콘 개수랑 조립기계 수와는 관계가 별로 없고

아이템당 투입기 수가 줄어드는 효과가 훨씬 크다고 이야기 하는건 잘 못봄.

정확히 하려면 아직 실험으로 확인이 필요하지만 관계가 있더라도 투입기 수보다 영향이 훨씬 적은게 이 데이터에서 보임.

왜냐면 기계 수만 따졌을때

투입기가 18개일때 (조립기계+용광로) 수가 투입기 6개일때 (조립기계+용광로) 수의 1/2 이하로 적은데도

성능 향상 효과가 투입기 수의 효과에 비해 미미함.




viewimage.php?id=2bbcd332eac031a9&no=24b0d769e1d32ca73fed82fa11d028313b437bcefb649778a1210ba42baeac2e2fe3033946275d5376ae221bfe3d44c97f49b48b5f4b8985f4e1698f5a986d35bf7353


예를 들면 이런 두 디자인이 있을때

조립 기계 속도가 왼쪽은 3, 오른쪽은 8임.

같은 수의 아이템을 생산하려면 오른쪽은 3개만 복붙하면 되지만 왼쪽은 8개를 만들어야 함.


그냥 봐서는 당연히 오른쪽이 필요한 기계 수가 적고 필요한 면적도 적으니까 UPS 최적화에 좋을거 같은데

실험해보면 아마 왼쪽이 훨씬 좋게 나올거임.

같은 수의 아이템을 운반하는데 필요한 투입기 수를 세보면 왼쪽이 활성화 되는 투입기 수가 1/2정도 되기 때문.

실험 결과 오른쪽이 훨씬 좋았다고 한다. 이건 제작속도가 느려서 전체 투입기와 조립기계 수가 많아지는 영향이 더 크게 작용한거 같다.


혹시 찾아보면 이미 해외에선 토론된적 있는 내용이려나?

레딧에 이 데이터를 보여주면 외국 고인물들이 무슨 반응을 보일지 궁금하네

레딧은 가끔 개발자도 와서 보고 가던데 이런건 좀 알려주고 싶다.

게임 최적화에 도움이 될지도 모르잖아.



아래는 활성 투입기 수를 구한 방법임.


투입기의 속도에 대한 정보는 위키를 참고함

https://wiki.factorio.com/Inserters


일단 이상적인 투입기는 항상 자기가 집을 수 있는 최대 스택인 12개를 집고 움직인다고 가정했고

선별 묶음 투입기와 시계 회로를 이용하면 이걸 거의 정확하게 구현 가능하고

위 UPS war 3의 디자인에서도 이 선별 묶음 투입기 트릭이 대부분 사용되었기 때문에 이렇게 두고 계산함.


위처럼 이상적인 상황을 가정할 때 투입기 수가 의미하는 값은 정확히 말하면 이거임.


(#of inserters swing)/(12 item output)
(인서터가 왕복한 횟수)/(12개의 생산된 아이템)


이상적인 조건에서는 모든 묶음 투입기가 최소한의 시간동안만 움직여야 하고

따라서 투입기가 12개의 물건을 집을 수 있을때만 한번 왕복함.

이 때 걸리는 시간이 26 tick임.


벨트에 내려놓거나 벨트에서 줍는 경우는 45~62tick 까지 다양한 값을 보이는데 대략 26tick의 2배 정도 걸린다고 가정함.

(벨트 방향, 벨트가 2 레인 중 어느쪽에 차있는지에 따라 다른데 이거까지 정확하게 계산하긴 귀찮아서)


그리고 생산물이 재료보다 생산모듈로 받는 뻥튀기 개수만큼 많이 나올테니

재료는 그만큼 적게 넣어도 될거고

그래서 엑셀시트 만들어서 계산 때린뒤에 그래프 그려봤는데 대충 정비례하게 나오더라.


viewimage.php?id=2bbcd332eac031a9&no=24b0d769e1d32ca73fed82fa11d028313b437bcefb649778a1210ba42baeac2e2fe3033946275d5376ae221bfe3d44c97f49b48b5f4b898eafb76f8f0ac9683537437a




한줄요약 : UPS는 활성화된 투입기 수에 거의 정확히 반비례한다.