https://www.factorio.com/blog/post/fff-382
FFF #382 - 물류 그룹
게시자 kovarex
2023-10-27
안녕하세요, 오늘은 지난 FFF에서 다루지 못한 우주 플랫폼의 세부 사항과 전체 시스템을 하나로 묶어줄 몇 가지 새로운 기능에 대해 살펴보겠습니다.
우주 플랫폼 설명
- 건설 로봇이 없으면 플랫폼에 마술처럼 물건이 나타나나요?
우주 플랫폼 건설 시각화를 비롯하여 요즘 FFF에서 보여주는 많은 것들이 아직 진행 중인 작업입니다.
타일 건설 애니메이션 미리보기를 보여드리겠습니다.
엔티티에 대해서도 비슷한 기능을 제공할 예정이므로 마술처럼 무언가가 나타나지는 않겠지만, 플랫폼이 스스로 '성장'하는 것과 같은 방식이 될 것입니다.
- 파란색 과학이 로켓으로 이어진다면 저밀도 구조물와 로켓 제어 장치와 같은 첨단 기술이 더 빨리 개발될까요, 아니면 로켓은 다른 걸로 만들까요?
저밀도 구조물은 파란색 과학으로 열립니다. 그리고 로켓 제어 장치가 제거되고 대신 처리 장치(파란칩)가 사용됩니다.
게다가 로켓의 비용을 20배나 낮췄습니다. 결국 모든 행성에서 로켓을 생산하고, 우주 플랫폼을 건설하고, 행성 간에 물건을 옮기기 위해 많은 로켓을 보내야 하기 때문에 로켓에 대한 집중도를 낮추기 위해서입니다.
이로 인해 확장팩에서 최소 수천 개의 로켓이 전송됩니다.
- 플랫폼에는 일반 포탑만 보이는데 레이저 포탑은 소행성에는 효과가 없나요?
소행성의 크기에 따라 선호하는 무기가 다릅니다. 레이저 포탑은 작은 소행성에만 효율적이며, 중간 크기의 소행성에는 일반 포탑이 필요합니다.
플랫폼의 전력이 매우 부족하기 때문에 일반적으로 소형 소행성과 중형 소행성 모두에 일반 포탑을 사용하는 것이 더 나은 전략입니다.
또한 더 위험한 경로에는 크고 거대한 소행성이 있으며, 여기에는 더 강력한 무기가 필요하지만 여기에 대해서는 나중에 자세히 설명할게요.
- 화물 확장기를 사용하면 큰 인벤토리 하나를 물류 텔레포트로 사용할 수 없나요?
우린 바보가 아니에요 :) 중앙 허브에서만 투입기가 아이템에 접근할 수 있습니다. 작은 플랫폼에서는 활용할 수 있지만 확장 가능한 방식으로 남용할 수는 없습니다.
(역주 : 대충 머지 체스트로 길게 이어서 물류 날먹하기 말하는 것)
- 우주 플랫폼에 구멍이 없는 이유는 무엇일까요?
그 이유는 게임 플레이 동기 때문입니다. 우주 플랫폼에 구멍이 있다면 기본적으로 매우 편안하고 넓은 공간에 설치할 수 있고, 사용하지 않는 타일을 모두 제거하여 플랫폼의 무게를 줄일 수 있습니다.
저희는 제한된 공간에서 벨트 기반의 미니 공장을 건설하는 미니 게임을 추진하고 싶었습니다. 지금까지는 의도한 대로 잘 작동하고 있는 것 같습니다.
로켓 운반 용량
용량을 정의하는 방법
첫 번째 분명한 질문은 로켓이 얼마나 많은 것을 운반할 수 있는가입니다.
우리는 지표면에서 궤도까지 운반하는 데 비용이 많이 들도록 만들고 싶었습니다. 즉, 로켓은 소량의 물품만 운반할 수 있으므로 다양한 물품을 운반하는 데 드는 상대적인 비용이 매우 중요합니다.
로켓이 일정량의 아이템 스택(1)을 운반하도록 설정하는 것이 가장 확실한 방법이지만, 이는 실현 가능성이 낮습니다:
- 일부 품목은 운송하기에는 너무 비쌉니다. (과학 팩, 회로와 같은 저렴한 중간재 등)
- 로켓 한 대로 전체 스택을 옮길 수 있다면 일부 품목은 너무 저렴할 것입니다. (원자로, 철도 경사로 등)
- 일부 품목은 너무 무거워서 통째로 운반하기조차 어렵습니다. 로켓 사일로를 통째로 로켓에 넣어 옮기는 것은 팩토리오에게도 무리입니다.
- 재활용이 가능하기 때문에 철을 직접 보내는 것보다 특급 지하 벨트처럼 자원이 많이 소모되는 품목을 목적지에서 철로 재활용할 수 있도록 운송하는 것이 더 효율적일 수 있습니다.
- 스택 크기를 조작하여 원하는 비율을 얻을 수도 있지만, 기차와 벨트의 균형 등을 변경해야 합니다.
그렇기 때문에 용량을 무게 중심으로 선택했습니다.
무게 시스템
로켓이 1000kg의 물품을 실을 수 있다는 공리를 정하고 이를 중심으로 나머지 요소의 밸런스를 맞췄습니다. 먼저 광석의 무게를 아이템 당 2kg으로 설정하여 로켓에 500개의 아이템/10개의 스택이 들어갈 수 있도록 했습니다. 그런 다음 레시피를 기반으로 아이템의 무게를 도출하는 자동화된 공식을 만들었습니다. 또한 많은 아이템은 프로토타입에서 직접 선택한 특정 무게가 정의되어 있습니다.
이렇게 해서 대략적인 테스트 기반이 만들어졌고, 그 후 많은 부분을 수정했습니다. 중간 단계의 유틸리티가 아닌 대부분의 물건은 로켓당 최대 1스택으로 줄이고, 많은 물건을 반올림하는 등의 작업을 거쳤습니다. 과학 팩은 비싸지만 재활용이 불가능하기 때문에 로켓에 1,000개를 넣을 수 있도록 허용했습니다. 모듈은 비싸지만 모듈을 재활용하는 것은 어리석은 일이기 때문에 전체 스택이 로켓에 들어갈 수 있습니다.
로켓 채우기
로켓을 채우는 방법은 크게 수동과 자동 두 가지가 있습니다.
수동 모드에서는 제한에 맞기만 하면 원하는 아이템을 마음껏 넣고 버튼을 눌러 로켓을 우주 플랫폼으로 보낼 수 있습니다.
수동으로 로켓을 채우고 발사 준비완료.
자동 모드에서 로켓 사일로는 궤도 플랫폼의 요청에 따라 한 가지 유형의 아이템만 요청합니다. 기본적으로 로켓 용량을 낭비하지 않도록 발사하기 전에 항상 로켓이 가득 찰 때까지 기다립니다.
특별한 경우에는 '사용자 지정 최소값'을 추가하여 발사 임계값을 낮게 설정할 수 있으며, 이는 매우 비싸고 처리량이 적은 아이템에 유용할 수 있습니다.
로켓 1개를 보내는 데 필요한 기본 용량이 아닌 커스텀 용량을 선택할 수 있습니다.
'import from' 선택을 통해 플레이어는 이 요청을 수행하는 데 어떤 행성을 사용할지 지정할 수 있으며 이는 나중에 중요해집니다.
우주로 여행하는 플레이어
우주로 발사할 때는 일반 화물과 동일한 로켓을 사용하며, GUI에서 '우주 여행'을 선택하고 목적지 플랫폼을 선택하기만 하면 됩니다. 도착하면 캐릭터가 플랫폼 허브에 안전하게 고정됩니다.
그러나 무게 시스템은 플레이어가 인벤토리에 로켓에 해당하는 수많은 아이템을 보유할 수 있다는 것을 의미하므로 우주로 여행할 때는 갑옷과 총만 휴대할 수 있으며 그 외에는 아무것도 휴대할 수 없습니다. (심지어 총알도)
전체 물류
설명할 수 없는 마지막 퍼즐 조각은 궤도에서 지상으로 아이템을 운반하는 방식입니다.
화물 착륙장은 우주 플랫폼 허브처럼 화물칸으로 확장할 수 있는 특수 건물로, 행성당 하나만 가질 수 있다는 점이 가장 큰 특징입니다!
행성당 하나만 가능하다는 제한이 이상하게 들릴 수도 있지만, 저희는 이 제한이 적합하다고 생각했습니다. 그렇지 않으면 (저희가 시도해 본 결과) 가져온 아이템을 필요한 곳에 바로 배치하는 것이 너무 편리하고, 게임 후반에는 기지에 매우 바쁜 물류 교차점이 하나 있으면 좋기 때문입니다.
착륙장에는 궤도에 있는 플랫폼이 충족하는 물류 요청을 할 수 있습니다. 투입기는 이곳에서 직접 물품을 가져올 수 있으며, 지상의 물류 네트워크에 있을 때는 공급 상자로도 작동합니다.
물류 그룹
행성 간 물류 시스템은 훌륭하게 작동하지만 플레이 테스트를 통해 한 가지 중요한 문제를 발견했습니다.
보시다시피, 플레이 테스트와 반복적인 개선은 문제를 발견하고 플레이 가능한 무언가를 개발하는 데 필수적인 도구입니다.
우리가 발견한 문제는 시스템에 동일한 아이템 세트를 요청하는 지점이 많아서 업데이트해야 할 때마다 번거롭고 혼란을 초래한다는 것입니다.
이 문제는 비단 우주에만 해당되는 문제가 아니며, 물류 요청이 있는 스파이더트론 그룹에도 동일한 문제가 있어 요청하는 모든 개체를 일일이 살펴보고 복사 붙여넣기를 사용하여 그룹에서 하나만 놓쳐도 혼란을 초래하는 번거로운 작업으로 이어집니다.
그래서 저희는 이러한 모든 문제를 해결하고 몇 가지 좋은 이점도 추가하는 솔루션을 개발했는데, 바로 물류 그룹입니다.
솔루션은 크게 세 부분으로 구성됩니다:
- 명명된 그룹에 물류 요청을 할당하면 동일한 그룹을 사용하는 모든 장소가 변경 사항이 있을 때마다 자동으로 동기화됩니다.
- 각 엔터티에 여러 개의 물류 그룹을 가질 수 있습니다.
- 언제든지 개별 그룹을 켜거나 끌 수 있습니다.
이것은 제가 실제로 게임 중에 사용한 것과 비슷합니다. 제가 계획한 작업에 따라 다양한 기능을 비활성화/활성화했습니다.
최종 GUI 솔루션도 꽤 많은 반복의 결과물이며, 주요 목표는 그룹에 전혀 신경 쓰지 않는 경우 합리적으로 간단하게 사용할 수 있도록 만드는 것이었습니다. 이 경우 이름 없는 그룹 하나만 있으면 1.1에서와 같은 방식으로 사용할 수 있습니다.
요청하지 않은 휴지통
스파이더트론에 성가신 문제가 하나 있었어요. 게임을 플레이하면서 스파이더트론이 주울 수 있는 모든 물건에 대한 쓰레기 요청을 점점 더 많이 추가해야 했습니다. 예를 들어 나무, 돌, 광석 등 분해할 때 발생하는 모든 종류의 쓰레기를 처리해야 했죠.
휴지통에 버릴 항목을 10번째 정도 추가할 무렵, 항상 잊어버리는 항목이 하나씩 더 있다는 사실을 깨달았고, 실제로 제가 하고 싶은 것은 요청하지 않은 항목을 모두 휴지통에 버리는 것이었습니다. 그 순간 기능 아이디어가 떠올랐습니다.
그래서 '요청되지 않은 휴지통' 확인란을 추가했으며, 이 기능을 활성화하면 명시적으로 요청되지 않은 모든 항목이 휴지통으로 바로 이동합니다. 이 기능은 일부 그룹의 요청을 변경할 때 오래된 요청/항목이 저장소에 누적되지 않도록 하는 부수적인 이점도 있습니다.
개인 물류에서 '요청하지 않은 쓰레기'를 사용하면 때때로 예상치 못한 결과가 발생할 수 있으며, 이에 대해 의식하는 데 시간이 걸립니다. 새로운 아이템을 인벤토리에 만들면 즉시 쓰레기통으로 사라지고 무슨 일이 일어나고 있는지 깨닫기도 전에 로봇이 행복하게 제 손이 닿지 않는 곳으로 옮기는 일이 여러 번 발생했습니다... 하지만 익숙해지고 제가 하는 일에 따라 켜고 끌 수 있게 되자, 이 아이템은 더 이상 없이는 플레이할 수 없는 아이템 중 하나가 되었습니다.
물류 그룹과 요청하지 않은 쓰레기 기능은 플레이어, 요청자 상자, 스파이더트론, 로보포트, 로켓 사일로, 우주 플랫폼 허브, 착륙 패드에서 모두 통합되며, 2.0 기본 게임에서 사용할 수 있습니다.
작은 보너스
제가 가장 좋아하는 초급/중급 회로 네트워크 사용 사례를 보여드리면서 물류 그룹과 관련하여 필요한 변경 사항을 설명해드리고자 합니다.
방어선 보급 시스템
팩토리오에 대해 잘 알고 있다면 물류 네트워크를 모든 확장과 방어 경계에 분산하는 것이 최선의 방법이 아니라는 것을 알고 계실 것입니다. 일반적으로 더 작은 물류 네트워크를 보유하는 것이 더 좋으므로 로봇 배송이 더 빠릅니다. 또한, 방어 경계선을 자동으로 양호한 상태로 유지하는 방법을 설정해 놓는 것도 좋은 방법이라는 것을 알고 계실 것입니다. 이 기능은 스파이더트론이나 대포가 등장하기 전 우주 시대 확장팩에서 기지가 물리적으로 존재하지 않아도 충분히 오래 살아남을 수 있도록 보장해야 할 때 더욱 유용합니다.
따라서 기본적으로 방어 경계선 주변의 분리된 소규모 물류 네트워크에 필요한 모든 자재를 전달하는 기차인 방어선 보급 시스템을 설정하는 것이 유용합니다. 이 시스템을 실제로 작동시키려면 몇 개의 조합기만 있으면 됩니다.
자동 방어선 보급 설정의 예입니다.
일정 신호 조합기는 원격 전초 기지에서 필요한 것을 정의하고, 필요한 것에서 누락된 자재 목록을 얻기 위해 가지고 있는 것을 뺍니다. 이를 통해 열차에서 하차하는 조합기를 제어하고 필요할 때만 열차를 호출하도록 역을 비활성화/활성화할 수 있습니다.
문제
바닐라에서는 모든 것이 쉽고 간편하고 잘 작동하지만, 시스템에는 변경과 관련된 문제가 있습니다. 보급 공급 역에 새 품목을 추가하거나 품목 금액을 변경하고 싶을 수 있습니다.
거대한 전체 맵 회로 네트워크를 만들고 싶지 않다면, 모든 일정 신호 조합기(메인 기지에 하나, 원격 스테이션당 하나)를 수동으로 업데이트해야 합니다.
수동으로... 자동화할 방법도 없는데... 그건 용납할 수 없는 일입니다!
솔루션
물류 그룹 시스템을 완성한 지 얼마 되지 않았고, 순환망으로 물류 그룹의 내용을 읽을 수 있는 방법을 찾고 있었기 때문에 해결책이 분명하게 느껴졌습니다.
일정 신호 조합기는 요청 엔티티와 구성에 동일한 시스템을 사용하기 때문에 월드의 다른 조합기를 자동으로 동기화할 수 있으며, 일정 신호 조합기를 요청 엔티티와 동기화할 수도 있습니다.
짐작하실 수 있겠지만, 회로에 대해 이야기하는 것은 이번이 마지막이 아닙니다. 더 쉽게 접근하고 더 강력하게 만들 수 있는 방법이 있지만, 이 글이 꽤 길어지기 시작했기 때문에 다음 기회에 다시 다루도록 하겠습니다.
언제나 그렇듯이 평소 자주 이용하는 장소에서 여러분의 의견을 알려주세요.
아 번역다된거 올릴려했는데 빠르네
새로운 신호도 템창에 보이네
회물용량 1톤? 들어있는 아이템 갯수를 보니 화물용량 업그레이드같은게 없을수없어보이는데 여기엔 안나와있네 - dc App
발사대 퀄리티영향 받으려나
재료 더 투입해서 페이로드 늘릴 수 있는 것 아닌가?
저번FFF보고 상자없으면 화물베이 길게 연결하고 긴상자처럼하면 날먹이네 했는데 화물베이는 투입기랑 상호작용 못하게 했네 플랫폼 확장 애니메이션도 그렇고 개발자들이 갬을 직접하니까 이렇게 완벽한결과물이 튀어나오네 그러니까 빨리 DLC내놔 2개값으로도 살수있다
건설 애니메이션 멋있다. 출시때쯤 되면 여기서 훨씬 더 나아지겠지? 1톤이라는게 진짜 광석 천개면.. 파벨 하나에 철판 31개인가 들어가는걸로 아는데. 가장 낮은티어로 해도 조립기계 한스택 투입기 두세스택 겨우 넣겠네. 로켓이 20배 싸진다 해도 막 분당 수백발씩 날릴수있는건 아닌데.. 여기서 우탐모랑 차별점이 생기는듯. 랜딩패드 행성당 하나밖에 없으면 극후반에는 해결될수 없는 물류량한계가 생긴다는뜻 아닌가. 이건 잘 모르겠음.
그래서 오히려 후반갈수록 퀄리티시스템이 중요해질듯 랜딩패드가 하나라면 물류량이 제한되어있으니 퀄리티를 높이는 방법을 써야할듯함
사실 모드는 게임 오래 즐기려고 분량 뻥튀기한 면이 없잖아 있으니 필요한 재료 종류,갯수가 늘어난거고 중간에 효율 늘리는 제작법 이란것도 재료 오지게 불려 넣으니 효율이 더 필요한거고 실질적으로 바닐라 조차 후반부 보라,노랑만을 위해 들어가는 완성된 재료는 철도,전기용광로,생산모듈1,비행로봇프레임,저밀도구조물,처리회로 정도니 결국 6개 정도잖음. 우주니까 이 재료들도 각 행성에 퍼져있을거고.. 그리 걱정할 물류량은 아닐듯... 뭐 메가베이스를 굳이 꼭 해야 하겠으면 메가베이스용 모드를 받던지, 개발자도 뭔가 좀 아니다 싶으면 갯수를 늘리던, 운송량을 늘리는 방법을 찾던 하겠지.. 무한연구로 갯수를 불리던가..
로켓 1/20 된걸로는 부족하겠는데 ㅋㅋㅋㅋ 너무 용량이 작다
제어장치는 없어지고 대신에 파란 칩으로 변경 됐구나.. - dc App