확장팩 FFF 모음 정리 링크




https://www.factorio.com/blog/post/fff-402



FFF #402 - 광속 회로

게시자 kovarex, Rseding

2024-03-15



안녕하세요,

이 글을 읽고 계신 회로 애호가 여러분을 위해 또 다른 사실을 알려드립니다.




레이더 전송 네트워크 - kovarex


때로는 장거리에 걸쳐 회로 신호를 보내는 것이 유용할 수 있습니다. 저는 개인적으로 사용해 본 적은 없지만, 얼마 전 플레이 테스트를 할 때 Boskid는 언제 유용하게 쓰일지 모르니 철도 청사진에 회로선을 포함하자고 주장했습니다.


나중에 유용하지 않을 수도 있는 것을 부풀려서 미리 작성하는 것은 '필요할 때 작성한다'는 코딩 원칙에 어긋나기 때문에 불안한 마음이 들었습니다. 하지만 실제로 나중에 필요하게 되면 그때 가서 수정하기가 훨씬 더 어렵다는 것을 이해합니다.




이것이 저희 철도 시스템의 '만약을 대비한' 모습입니다.



이러한 딜레마를 피하기 위해 오랫동안 요청되어 온, 레이더를 이용한 무선 회로신호 전송 기능을 추가했습니다.






여러 가지 방법이 있지만, 저희는 이를 단순하게 유지하고 싶었습니다. 그래서 각 표면마다 하나의 레이더 채널만 사용하기로 결정했습니다. 즉, 아무것도 설정할 필요 없이 전선을 연결하기만 하면 바로 사용할 수 있습니다. 레이더의 전원이 끊기면 회로 연결이 끊어집니다.







전선 절단 - kovarex


요즘 회로네트워크 개선으로 인해 더 많이 사용하게 되면서 이 문제로 인해 점점 더 짜증이 났습니다:





하단의 조합기 세트를 옮기고 싶은데 잘라내기/붙여넣기로 하면 두 부분 사이의 전선이 모두 끊어져서 다시 연결해야 합니다.


너무 귀찮아서 블루프린트가 외부 회로선 연결을 기억하고 가능하면 다시 연결하도록 하는 기능을 추가해야만 했습니다. 혹시 모를 문제를 최소화하기 위해 이러한 연결은 잘라내기(ctrl+X) 도구를 사용할 때만 기억되며, 블루프린트 라이브러리나 블루프린트 내보내기 문자열로 전송할 수도 없습니다.










광속은 너무 느립니다. 저희는 더 빠르게 나아가야 합니다! - Rseding


팩토리오에는 "너무 빠르다"는 것은 없습니다. 더 빠른 벨트, 더 빠른 투입기, 더 빠른 조립기계, 더 빠른 속도 모듈을 통해 더 빠른 공장을 만드는 데 모든 것을 집중합니다. 하지만 그것만으로는 충분하지 않습니다. 다음으로 속도 모듈이 있는 신호기를 추가하고, 또 다른 신호기를 도배합니다.


하지만 여전히 충분하지 않습니다. 결코 충분하지 않습니다. 모드를 통해 수치를 더욱 높이고 엔진 자체에서 처리할 수 있는 한계에 부딪히기도 합니다.


이 문제는 '몇 번' 보고되었고(69490 107571 60136), 그때마다 저희는 "미친 숫자는 미친 결과를 낳는다", "기본 바닐라 게임에서 이런 문제가 발생하지 않는 한 제작 로직을 더 복잡하고 취약하게 만들고 싶지 않다", "그냥 그렇게 하지 마, 틱당 제작 1개면 충분히 빠르다" 등 거의 같은 말을 했습니다.


하지만 우주 시대 DLC에 전설 속도 모듈이 등장하면서 갑자기 기본 바닐라 게임에서도 동일한 문제가 발생했고, 저는 이제 마지못해 해결책을 찾아야 합니다.



특이사례는 처리하되 원래 상태까지 느리게 만들지 마세요


개념적으로는 간단한 해결책입니다. 틱당 1개보다 빠르게 실행해야 하는 경우 제작 로직을 반복하면 됩니다. 하지만 코드 측면에서는 결코 그렇게 간단하지 않습니다. 수년간 기계 조립과 관련된 최적화와 기능을 개발해왔기 때문에 각 코드 줄이 무엇을 해야 하는지, 실제로 무엇을 하는지 완전히 이해하지 못하면 변경을 해도 다른 무언가를 망칠 가능성이 높았습니다.


약 이틀 동안 코드를 살펴보고, 다시 정리하고, 필요한 부분을 설명하는 코멘트를 작성하면서 어떻게 작동하게 할 것인지에 대한 계획을 세웠습니다. 모든 기능이 올바르게 작동하도록 최종적으로 변경하는 데 약 1시간이 걸렸고, 첫 번째 시도에서 제대로 작동했습니다. 이런 일이 일어나서는 안 되는 일이었기 때문에 의구심이 들었습니다. 나중에 몇 번의 추가 테스트를 거쳐 Boskid에게 테스트를 해보라고 요청하자 제대로 작동하는 것으로 확인되었습니다.


기존 코드를 분석하고 이해한 이틀간의 노력이 결실을 맺었습니다!



전설적인 주조소는 +2500%의 속도로 아이템을 제작하며, 틱당 4.33개의 제작물을 완성합니다.



근본적인 문제는 해결되었으며 (제가 알기로는 말이죠) 이제 제작 속도에 대한 유일한 제한은 기계에 재료와 완성품을 넣고 뺄 때 필요한 공간의 양뿐입니다.



언제나 그렇듯, 평소와 다름없는 장소에서 여러분의 생각을 무선으로 전달해 주세요.