바닐라에서는 조립기계 하나가 최대 12비콘의 효과를 받을 수 있다.
조립기계에 속도모듈을 적용한다면 최대 제작속도 11.25를 얻을 수 있다
조립기계에 생산모듈을 적용한다면 최대 제작속도 8, 생산량보너스 1.4배를 얻을 수 있다.
재료의 소비속도는 8배 빨라지고 생산속도는 8*1.4=11.2배 빨라지는 거라고 볼 수 있다.
바닐라에서는 이정도의 수치로는 별 문제가 없지만 모드를 사용하기 시작해서 수치가 매우 빨라지면 기묘한 현상들이 발생한다
이 글에서는 많이들 사용하는 밥스 모듈을 가지고 실험을 진행한다.
실험 배치는 이런 구조를 사용한다
모듈을 도배하여 제작속도를 매우 빠르게 할것이므로 생산되는 즉시즉시 물건을 바로 빼주어야 생산이 멈추지 않고 풀가동 할 수 있다
실험 1. 모듈 미사용
기본속도가 3.5인 조립기계로
제작시간0.5 철판2 입력으로 톱니바퀴 1개를 생산하는 공정을 가동시킨다
제작속도1기준이라면 초당 철판4개를 소비하여 톱니바퀴 2개를 생산하므로
제작속도3.5 기계는 초당 철판 14개를 소비하여 톱니바퀴 7개를 생산한다
생산탭을 보면 5초 동안 철판 70개를 소비하여 톱니바퀴 35개를 생산한 것을 확인 할 수 있다.
실험 2. 속도 모듈만 사용 (제작속도 < 30)
이번엔 속도모듈을 몇개 넣어서 제작속도를 29.4를 맞추어 주었다
5초동안 294개의 톱니바퀴를 생산한 것을 볼 수 있다
실험1에서 3.5의 제작속도로 35개를 생산했던것을 생각해보면 잘 비례하는 것을 확인할 수 있다.
실험 3. 속도 모듈만 사용 (제작속도 > 30)
속도 모듈을 살짝만 더 넣어서 제작속도를 30.8이 되게 하였다.
위의 두 실험에 의하면 생산량은 제작속도에 비례하므로 제작속도가 30.8이라면 5초 생산량은 308개가 되어야 할 것이다
하지만 실제 결과는 300개 생산 제한에 걸려 버렸다. 철판도 마찬가지로 톱니바퀴의 2배인 600개를 소비하였다.
이러한 일이 생긴 이유는 틱 제한에 걸러버렸기 때문이다.
팩토리오 세계에서 1초=60틱으로 이루어져 있다.
톱니의 제작시간은 0.5초이고 이는 1회 생산에는 30틱이 걸린다는 것이다
즉 제작속도가 30이되면 톱니는 단 1틱이면 생산이 완료된다
제작속도가 30을 넘기더라도 1틱당 1회 생산 제한이 걸려버려서 더이상 생산을 할 수 없게 된다.
원래 제작시간이 수 초가 걸리는 물품이라면 해당 제한이 걸리는 시점이 높겠지만
톱니바퀴같이 제작시간이 0.5초밖에 안걸리는 물품 같은 것들은 한계가 일찍 찾아온다.
제작속도가 1000을 넘겨버려도 얄짤없이 틱당1생산 = 초당60 생산에 걸려버린다
참고로 모듈에 의한 보너스는 +32767%를 넘기지 못한다.
32767은 2바이트를 이용하여 나타낼 수 있는 양의 최대값이다 (2^15-1)
실험 3까지는 속도모듈만 사용한 경우고 추가로 생산모듈을 사용하면 기괴한 현상이 발생하기 시작한다
실험 4. 생산 모듈만 사용 (생산량 +100%)
속도모듈 없이 생산모듈을 장착하여 +100%의 생산량 보너스를 얻고 있는 상태
생산모듈 사용시 속도 감소 옵션이 비활성화 되어있기 때문에 제작 속도에는 변화가 없다
실험1에서는 5초동안 철판 70개를 이용하여 톱니 35개를 생산했는데
실험4에서는 5초동안 철판 70개인건 변함 없지만 톱니를 두배인 70개 만큼 생산하는 것을 확인할 수 있다.
실험 5. 생산 모듈, 속도 모듈 사용 (생산량 +100%, 제작속도 < 30)
실험 2와 비교해봤을때 5초당 철판소비량은 588과 동일하고 톱니생산량은 294의 2배인 588이 된 것을 볼 수 있다.
그렇다면 제작속도가 30을 넘어가면 어떻게 될까?
실험 6. 생산 모듈, 속도 모듈 사용 (생산량 +100%, 제작속도 > 30)
신기한 결과가 나왔다
실험3과 마찬가지로 철판의 5초 소비량은 600개에 제한이 되어있다.
그런데 톱니의 개수는 600개가 아니라 608개가 생산된 모습을 볼 수 있다.
소비량은 한도에 걸렸지만 생산모듈에 의한 보너스에는 한도가 걸리지 않는다.
만약, 제작속도가 30.8일때 1틱 제한이 없었다면
5초동안 생산되는 톱니바퀴의 양은 308(기존 생산량)+308(생산모듈에 의한 보너스 생산량)
5초동안 소비되는 철판의 양은 308개 였을 것이다
하지만 1틱 제한이 있음으로 인해
5초동안 생산되는 톱니바퀴의 양은 300(기존 생산량, 제한됨)+308(생산모듈에 의한 보너스 생산량, 제한되지 않음) = 608개가 되었다.
5초동안 소비되는 철판의 양은 300개(제한됨)가 된다.
원래의 생산량은 +100%였을터이지만 308/300 = 102.67%의 효과를 얻는 셈이 되었다.
제작속도가 더 빨라지면 이게 더 심해진다.
제작속도가 1150.35일 경우
철판 소비량은 여전히 600이지만
톱니 생산량은 300(기존생산량,제한됨)+11503.5(생산모듈에의한 보너스 생산량, 제한되지 않음) = 11803.5개가 되었다.
즉, 11803/300 = 3934%의 효과를 얻는 셈이 되었다.
철판 하나로 톱니바퀴를 20개정도 만든다니 게임이 더 이상 정상이라고 볼 수가 없다.
공식을 하나 세워보도록 하자
레시피 재료로 사용되는 아이템의 개수를 a
레시피에 의해 생산되는 아이템의 개수를 b
레시피의 제작시간을 t
생산 모듈에 의한 생산량 보너스 효과를 p%
속도 모듈에 의해 빨라진 제작속도를 s 로로 놓자
이렇게 두면 1틱 제한에 걸리지 않을 경우
(초당 소비량) = a / t * s
(초당 생산량) = b / t * s(1+p) = (b / t * s) + (b / t * sp)
임을 유도할 수 있다.
제작속도 s 가 60t보다 커지게 된다면 1틱 제한에 걸리기 시작하고 이때의 공식은 다음과 같다
(초당 소비량) = 60a (고정됨)
(초당 생산량) = 60b (고정됨) + (b / t * sp)
위의 예시의 경우 a=2, b=1, t=0.5, p=100%=1, s=1150.35이므로
(초당 소비량) = 60a = 60*2 = 120개
(초당 생산량) = 60b + (b / t *sp) = 60*1 + (1/0.5 *1150.35*1) = 2360.7개가 된다.
5초 생산/소비량으로 환산하면 위의 그래프처럼 600개/11803.5개와 일치한다.
어짜피 이상해진 게임이니 이게 어디까지 더 이상해질 수 있는지 탐구를 해보자
한계를 더욱 확실히 보기 위해 만능형 모듈을 사용한다.
실험 7. 만능 모듈 사용 (생산량 +300%, 제작속도 > 30)
만능모듈이라 그런지 속도모듈을 따로 더 안써도 이미 제작속도가 30을 넘겨버렸다
철판 소비량은 당연히 600에서 멈춰있다.
생산량이 +300%이므로 2철판을 이용하면 1(기본)+3(보너스)= 4 톱니가 만들어져야 정상이다.
철판을 600개 소비했으므로 1200개의 톱니가 만들어져야 정상이라 볼수 있지만 1600개 가량의 톱니가 생산되는 모습이 보인다.
속도모듈을 추가로 도배하여 이를 더 뒤틀어보자
실험 8. 만능 모듈, 속도 모듈 사용 (생산량 +300%, 990 > 제작속도 >>> 30)
위에서 만든 공식을 적용해보자
a=2, b=1, t=0.5, p=300%=3, s=989.8이므로
(초당 소비량) = 60a = 60*2 = 120개
(초당 생산량) = 60b + (b / t *sp) = 60*1 + (1/0.5 *989.8*3) = 5998.8개가 된다.
5초 생산/소비량으로 환산하면 위의 그래프처럼 600개/29994개와 일치한다.
이상태에서 속도를 아주 조금만 더 높이면 또다시 기괴한 현상이 발생한다.
실험 9. 만능 모듈, 속도 모듈 사용 (생산량 +300%, 제작속도 > 990)
제작속도를 989.8에서 991.9로 증가시켰는데 5초 생산량이 오히려 29k에서 25k로 감소하였다!
또한 지금까지 600에서 변화가 없었던 소비량 마저 504로 감소하는 것을 볼 수 있다.
990이 무엇이길래 이런 현상이 발생했을까?
우리는 실험8에서 초당 생산량이 5998.8이라는 수치를 확인하였다.
만약 제작속도가 정확히 990이였다면 초당생산량은 6000이 되었을 것이다.
초당 6000 = 틱당 100개에 대응한다.
즉 이 문제는 틱당 생산량이 생산 물품 스택 한계에 도달해서 발생하여 문제인 것이다.
출력이 꽉차 조립기계가 파업을 하기 때문에 소비량 또한 따라서 줄어들게 되는 것
(좌 : 제작속도 989.8, 우: 제작속도 1019.9)
이게 참.. 움짤로 보면 잘 안보이긴하는데
대충 왼쪽이 더 분주하게 투입기들이 움직이고 있음
실제로 왼쪽 공장은 60틱의 시간동안 쉬지 않고 풀가동하지만
오른쪽 공장에서는 1틱은 일하고 1틱은 쉬고 해서 30틱만 가동이 되기 때문에 생산량이 반토막이 난다.
만약 생산 물품의 스택수가 더 크다면 이 현상은 보기 힘들것이고 스택수가 낮다면 더 일찍 이런 현상이 나타날 것이다.
결국 생산품의 스택크기를 B라고할 경우
초당 생산량의 최대치는 60B가 답이 되고
이 시점은
60b + (b / t *sp) = 60B
s = 60t(B-b)/bp 를 만족하는 s일 때이다.
톱니바퀴의 스택 B는 100이므로
s = 60*0.5(100-1)/(1*3) = 990 이 운명을 가르는 시점이다.
정리
제작속도에 따른 초당소비량, 생산량, 생산비의 그래프는 아래와 같다
s < 60t 일 때는
제작속도가 증가함에 따라 소비량 생산량도 비례 하여 증가하고 생산비는 고정이다
s > 60t 일 때는
제작속도가 증가함에 따라 생산량도 거의 비례 하여 증가한다(기울기는 약간 감소)
하지만 소비량은 더이상 증가하지 않고 유지된다. 따라서 생산비는 점점 커지게 된다.
제작속도가 점점 증가하여 한틱당 한스택 분량을 생기는 기점으로 생산량과 소비량이 반토막이 난다.
이 이후로는 거의 일정한 수치를 유지하게 된다.
따라서 제작속도는 저 시점을 넘기기 직전까지만 하는 것이 가장 유리하다.
물론 이정도로 모듈을 도배하고 플레이한다면 모든 물건들이 소비하는 것도 없이 생산되는것이나 다름없으므로 게임이 무척이나 재미없어질 것이기 때문에 s=60t를 넘지 않는 선에서만 플레이하는게 가장 바람직하다고 생각함
제작속도 989.8 움짤로 마무리
근데 이런 신호기 두른 공장은 효율이야 좋긴한데 때깔이 구리다 이거야
모드로 ups 올리면 어케 되려나
UPS올리면 배속게임임 모드로 올리건 콘솔로 올리건
ups를 올리든 말든 틱단위 연산인건 변화가 없지
왜 보너스 생산은 최대 1틱 1개 생산 제한에 안 걸리게 했지
충분히 할만 할 것 같은데 왜 안해놨는진 의문임
보너스 생산은 스택에 제한 걸리는거였네
어이가없네ㅋㅋㅋ
?
속도 990일때 왜 반토막 안나고 5/6토막 나는거임? 초당 300개만 나와야 되는거 아니냐 이 글 대로라면
거기 메커니즘 까지는 귀찮아서 안썼는데 속도를 990근처에서 좀더 높이면 즉시 반토막나는건 아니고 점점 감소하다가 반토막 지점까지 내려감
반토막지점까지 찍고내면 또다시 서서히 증가하는것도 있는데 그렇다 해도 반토막나기 직전 수치에는 도달하지 못함
이제 보니 그래프에도 그려놨누... 그건 대체 무슨 원리인거냐
이게 한틱당 100개이상(한스택)을 생산한다면 100개를 초과한분은 증발하고 사라지는게 아니라 100개를 꺼내고 나면 초과분이 안에 그대로 남아있음. 만약 틱당 101개를 생산한다면 조립기계는 2틱당 한번만 일하게 되고 투입기로 첫번째틱에는 100개, 두번째 틱에는 1개를 빼내는게 가능함, 만약 한틱당 150개를 생산한다면 조립기계는 2틱장 한번만 일하는건 여전한데 투입기로 첫번째틱에는 100개, 두번째 틱에는 50개를 빼내는게 가능함. 그래서 초당 생산량 자체는 점점 증가하긴 함.
990넘길때 즉시 반토막나지 않는건 나도 명확한 이유를 모르겠네
actual craft time 모드 쓰면 원문에 나온 계산식대로 틱이랑 생산모듈효과 고려해서 계산해줌. 예전에 크라2하다가 이거 발견해서 저거 반영되도록 구현하고 제작자가 그거 채택해줬어
아 근데 스택한계 부분은 몰랐네 ㅋㅋ
오 이런거 모드로 구현이 될까 궁금했었는데 진짜 있었나보네
와 신호기 부동소수점 몇째자리까지 계산할가 찾아보다 봤는데 연금술이 가능했네? 그래서 다들 속도모듈이 효율 좋다고 하던거구나
모드써서 개사기 모듈써야 볼 수 있는 현상이였던거고 바닐라에서는 못 썼음 그리고 이제 2.0에서는 시스템 개편돼서 사기모듈써도 아마 연금술은 안될거임