로봇이 작업하는 동안 할게 없어서 뭘 할까 하다 요즘 그리드 글이 자주 보여서 그리드 디자인에 관해서 적고싶어졌음
글은 팩갤러 대부분이 눈팅을 주로 하는 초보라 가정하고 초보 친화적으로 기본적인 부분부터 적어보려고 함
팩토리오에서 그리드를 쓰는 것은 왜일까?
개인별로 이유가 다르겠지만 나는 이랬음
분당 로켓 한 대 이상을 쏠 수 있는 큰 규모의 기지(메가베이스)를 건설하려면 고려해야 될 부분이 있음
확장성(스케일업)
랙
물류 흐름(자원조달)
...
등의 기지 규모가 작을 때는 고려 안 해도 되는 부분들을 고려해야되는데
이 중에서 가장 문제 되는 부분은 랙이었음
기지가 작을 때야 랙이 와 닿지 않겠지만
대규모 기지를 건설해보면 사실상 랙으로 기지의 최대 규모가 제한되는 현상이 발생함
랙을 확인하는 방법은 F4를 누르면 나오는 디버깅 메뉴에서 show-fps를 체크하면
FPS/UPS가 표시되는데, 그중에 UPS(초당 갱신율)가 랙과 연관있는 부분임
랙이 없다면 60을 유지하고 연산이 많아지면 그 이하로 떨어지게 됨
떨어지는 만큼 게임도 느려지게 됨
팩토리오에서 랙을 유발하는 주요 요소는 아래와 같음
벨트
유체 연산(원유정제, 발전소 등)
활성 상태의 바이터
따라서 최대규모의 기지를 건설하려면
벨트와 원자력같이 랙을 유발하는 것들은 가능한 쓰지 않는 것이 좋고
바이터로 인한 랙은 어쩔 수 없긴 한데, 확장을 안 할 때는 많은 바이터들이 비활성화돼서 어느 정도 컨트롤 가능한 부분임
그럼 벨트를 가능한 없앤 기지는 어떤 구조여야 될까?
벨트를 없앴으니 당연히 로봇을 활용해야겠지?
근데 로봇만 활용하면 로봇들이 대륙횡단을 하는 문제가 생기네?
그렇다면 각 생산 구획을 끊어주고, 기차를 이용해서 물류를 운반해야겠지?
거기다 대규모 기지 건설을 위한 확장성까지 고려한다면?
이게 그리드를 쓰는 이유임
그럼 그리드는 어떻게 설계하는 게 효율적일까?
가장 먼저 고려해야 될 부분은 기차임
왜냐면 그리드 간 물류를 운송하는 것은 기차고, 결국 기차의 길이와 동선, 교통량에 따라 물류 흐름이 정해질 거니까
동선은 셀(Cell:모듈이라 하는 사람들도 있는데 보통 Grid 하위개념으로 Cell이란 용어를 사용하니 셀이라고 하겠음)에서
무엇을 생산하냐에 따라서 정해지는 것이니까 셀의 배치에 따라서 달라질 것임. 따라서 셀 디자인과 직접적인 연관은 없음
교통량은 동선과 통행하는 기차 수에 따른 것이므로 역시 셀 디자인과 직접적인 연관은 없음
기차의 길이는 신호 구간의 길이와 대기열의 길이, 상하차역의 디자인 등 셀 디자인과 직접적인 상관이 있음
결국 셀을 디자인하는데 우선으로 고려해야 될 부분은 기차의 길이임
그럼 기차의 길이는 몇이 가장 효율적일까?
가장 흔히들 쓰는 길이는 1-4(기관차-화물차)일 것임
근데 이 길이로 메가베이스를 돌려보면 물류 흐름에 애로사항이 꽃필 것임
화물차 4대로는 물류가 금방 회전되고, 이것을 커버하기 위해 기차를 늘리면 교통이 악화됨
그래서 2-8, 3-12처럼 더 긴 열차를 고려하게되는데
여기서 나는 완벽한 수학적 근거는 없지만 2-8을 선택했음
선택한 이유는 이럼
1. 원형 교차로를 어느 각도에서 진입해도 깔끔하게 탈출함
2. 3-12 이상부터는 기차가 광물 크기를 벗어나서 로봇 동선이 안 좋아짐
따라서 2-8 기차를 기준으로 셀을 설계했음
위 짤은 처음 설계한 셀 디자인임
원형교차로 안 좋은데 왜 썻냐 라고 물을 수 있는데
개인적으로 교통체증에서 교차로가 문제 되는 비중은 작다고 보았고
중요한 건 노선과 교통량이라 생각해서 가장 깔끔하다고 생각하는 원형을 선택했음
실제로도 교차로 때문에 심각할 정도로 교통체증이 발생한 적은 없었음
아무튼, 이 디자인에 만족하고 문제없겠다 싶어서 이걸로 메가베이스를 지어보니 문제가 생겼음
1. 생산구역이 불필요하게 큼.
-> 생산구역 전체를 생산시설로 채워보니 신호기와 모듈 버프를 받은 생산시설의 물류 흐름 속도를 로봇이 못 따라가는 현상이 발생했음
2. 셀이 너무 큼.
-> 셀 간 동선을 최적화하기 위해서는 셀끼리 최대한 붙여야되므로
물이 위치한 구역은 매립할 수밖에 없고, 불필요하게 커진 셀 크기만큼 불필요한 매립이 필요해짐.
이게 셀 하나일 때는 별문제가 안 되는데 메가베이스 전체로 보면 불편함을 바로 느낄 수 있을 정도임
그래서 수정한 게 아랫짤임
이걸 설계할 때 즈음에 대기열에 대한 생각도 정립됐는데
교통량을 줄이고 물류를 원활하게 공급하기 위한 최선의 방법은 무엇일까?
피크 타임 교통 체증으로 인한 물류 공급 끊김을 해결하기 위해서는 버퍼가 필수적임
그럼 버퍼는 무엇으로 하는 게 최선일까?
일반상자? 로봇상자?
난 기차 자체를 버퍼로 하는 게 최선이라는 결론을 내렸음
그럼 기차가 효율적인 버퍼 역할을 하려면 어떻게 해야 될까?
물류를 미리 싣고 와서 대기열에서 대기하다가 하역이 완료된 기차가 빠지면 바로 들어가는 게 최선이란 결론을 내렸음
그럼 물류당 몇 대의 기차를 굴리는 게 최적일까?
3대 = 1역 2대기열
결과적으로 나온 디자인이 6 역 12 대기열임
아무튼, 디자인에 만족하고 문제없겠다 싶어서 적용해봤는데 또 문제가 생겼음
1. 상단 중앙에 선로 변경 부분 신호기 디자인이 조금 잘못돼서 셀에서 나가는 기차가 있을 때 선로 변경도 막힘
-> 이건 사소하게 수정 가능한 문제라서 자세한 설명은 패스..
2. 기지를 확장하는 과정에서 로보포트를 전역적으로 관리하다 보니 불편한 점이 많이 발생함
-> 로봇 네트워크 로컬화
3. 가로로 확장 시 레이더 시야가 안나옴
-> 레이더 추가가 필요해짐
레이더 관련해서 무슨 말인가 할 수 있는데
메가베이스를 운용할 정도라면 캐릭터는 거의 이동을 안 하고 맵만 보고 전략시뮬하듯 게임을 하게됨
이게 어떻게 가능한가 하면 레이더를 설치해서 맵 상에 밝게 드러난 부분은 맵에서 확대해서 고스트(청사진) 건설이 가능하거든
그래서 레이더 시야가 안 나오면 직접 뛰어가서 건설해야 되는 불상사가 발생함
아무튼 이런 문제점들을 수정한 결과가 아랫짤임
잘 보면 전역 로봇 네트워크와 로컬 로봇 네트워크가 한 칸 차이로 떨어져있는데
그 사이에 상자와 투입기가 존재해서 전역과 로컬 간 물류를 교환해줌
여기서 필수적으로 교환이 필요한 게 두종류인데
1. 핵 연료(요청->수동 공급)
-> 정차한 기차에 연료보급
2. 내부에서 철거 등으로 발생하는 불필요한 물류를 외부로 방출(보급->능동 공급)
이 두 가지는 편의상 필수에 가까워서 기본 레이아웃에 포함시켰음
그리고 역을 최대 7개까지 커버 가능하게 늘렸는데
7개역까지 사용되는 경우는, 인공위성과 연구소 둘뿐이라서 나머지는 그 미만으로 사용하게 됨
그리고 건설이 끝나면 오른쪽에 전역과 로컬을 잇는 로보포트를 제거하고 직접 뛰어가서 수동으로 물류 로봇을 공급해주는 것으로 마무리함
이 것도 복잡하게 하자면 자동화가 가능한데, 사실 셀이 건설 완료되는 경우가 빈번하지 않아서 그렇게 불편한 것도 없고 해서 직접 뛰는 것으로 결정했음
아래는 이 레이아웃을 기반으로 건설된 생산시설들임
이건 허브
이건 전자 회로
참고로 구리선이 많은 건 마라톤이라서임
읔.. 뻐킹 사진 20개 제한에 걸림; 몇 개 지워도 더 안 올라가네;;
어.. 음.. 여기까지가 내가 그리드를 설계하면서 깨닫게 되고 수정/적용한 부분들인데; 아무도 안 물어봤지만 누군가에게 도움이 되었길 바람..
석유냄새추 - dc App
일단 대충 훑었는데 좋은 글 같네 이따 집가서 메가베이스 연습하던거 켜놓고 복습해야지 근데 그리드 크기가 대충 어느정도 되는거야? 대형전신주 기준 6x12 정도 되는거 같은데 맞아?
셀 넓이는 244 x 152, 참고로 난 사이즈 계산할 때 철로를 깔고 컨트롤 c 해서 나오는 갯수를 새거든. 철로 1칸당 2x2니까 이렇게 사이즈 재면 편하더라고
오 예전 글에서 보니 대형전신주 기준으로 하길래 물어본건데 그렇게 셀수도 있겠네 좋은 글 고마워
그리고 셀 내부에 공정도 벨트 전혀 사용 안하고 조립기계마다 요청/공급 상자 달아서 로봇으로 운반하는 방식이야?
ㅇㅇ 맞음
멋지네요 팩토리오 양덕들 하는거 유튜브로 많이 봤었는데, 얘들은 버퍼라 하지않고 스택커라고 하더군요 차이점은 모름.. 지들 말이니까 지들이 잘 알겠죠?^^
스텍은 FILO 먼저 들어온 애가 나중에 빠져나가는 구조라서 버퍼와 좀 의미가 달러, 아마 그 표현을 정확히 알고 쓰는 애들은 FILO 구조의 버퍼를 지칭하는 걸꺼야
아 검색해보니 창고 하역장치 명사가 스택커네 ㅋㅋㅋ 아는척 ㅈㅅ
근데 이 하역장치도 FILO로 쌓아 올리는 개념이라 이름이 스텍커라고 붙은 것 같음..
그리드 구조에대해 큰 도움 얻어간다 나도 똑같이 렉에 대한 부담을 줄이려고 벨트 없는 그리드를 택했고 로보포트도 로컬과 글로벌로 나눠서 운영하는식인데, 기차 대기열을 따로 두지 않고 진행해서 생산량에 무관하게 물류가 딸리는 일이 발생해버리더라 이번맵 로켓땡하고 다음맵은 너처럼 상하차 대기열을 넣어서 해볼생각이라 참고할게 필요했는데 고마워
한가지 궁금한건, 나같은 경우는 같은 물류에 해당하는 기차역은 모두 같은 이름으로 해두고 기차가 도착하면 역을 꺼버리는 식으로 운영해서 기차가 비어있는 역을 알아서 찾아가는 방식을 사용중인데 너처럼 대기열이 있는 셀을 운영할 경우에 역이름을 모두 같게 해버리면 기차가 죄다 제일 가까운 역의 대기열에 우글우글 몰려버리더라(역을 꺼버리더라도) 혹시 셀당 기차역 이름을 구분해서 상차역-하차역 1대1로 대응시켜서 기차를 굴리는지 아님 다른 방법이 있는지 궁금한데 알려줄수있을까
대기열 내에 열차가 1대 이상 들어갈 만큼 신호기가 있으면 그런문제가 생김. 대기열 길이가 얼마든 출구쪽 연속신호, 입구쪽 일반신호 하나만 두고, 일반신호의 위치를 열차의 길이에 맞출게 아니라 대기열의 입구에 지으면 해당 대기열이 꽉 찬 경우에 바로 옆 대기열로 들어가.
대기열의 입구에서 다른 동일이름의 역으로 우회하는 길을 터놨었는데도 그냥 대기열에 자리가 날때까지 기다리더라
ㅇㅇ 상하차역을 1:1로 대응시키는데, 예외가 있음. 난 용광로를 전부 광물 옆에 두고 구워진 물류를 바로 운송하는 식이거든. 근데 이런 방식을 사용하면 광물역 대기열과 물류 밸런싱, 부족한 물류 파악 등 여러가지 문제가 있음. 이걸 난 허브를 두는 방식으로 해결했는데, 광물역들 - 허브 - 생산부지 요런 식임. 여기서 허브만 이름을 동일하게 씀. 다른 역들은 네이밍 규칙을 [생산품][번호]-[물품명][번호] 이런식으로 구성하거든. 근데 허브만 [생산품][번호]-[In/Out] 같은 식으로 구성함.
예시를 들자면, Electronic Circuit 01 - Copper Plate 1, Electronic Circuit 01 - Product 1(요건 생산품 역 이름). 약간 예외로 기어, 철 막대기, 파이프 처럼 조립기가 많이 필요없고 필요물품이 동일한 경우 한데 모아서, Iron Complex Production 01 - Gear 1. 이런식으로 네이밍함. 허브는 마침 이글에 올라간 짤방에 역이름이 적혀있는데, Steel Hub 01 - In(허브 내 4개역 이름이 동일), Steel Hub 01 - Out 같은 식으로 구성함 ㅇㅇ
원댓작성잔데, 그럼 셀당 6역 12대기열을 쓴다고되어있는데, 공정 확장이나 새로운 공정을 위한 셀을 넣게 되면 대기열 보다 기차 수가 더 많아지지않아?? 셀당 상차역은 하나만 사용하는거야? 셀을 보니 하차역3개에 상차역3개로 운영중인거같은데 공정중엔 재료가 4개인것도 많은데 그럴땐 어떻게함? - dc App
상하차역이 역간 간격이 좁아서 펌프가 펌프가 들어갈 틈이 안보이는데 그럼 유체 운송은 어떻게 하는거야? 질문 많아서 미안, - dc App
6역 12대기열은 기본 레이아웃이고 사용 시에는 필요한 역을 제외한 나머지는 지우고 있어. 상차역은 왼쪽 오른쪽 구분없이 조립기에 더 가까운 쪽으로 배치하고 ㅇㅇ. 나도 최적화는 현재진행형인데 현재는 분당 1로켓이 가능한 생산 시설을 하나의 그룹으로 두고, 허브는 그룹 별로 쓰고 있어. 첫번째 그룹은 Hub 01을, 두번째 그룹은 Hub 02를 쓰는 식으로
참고로 나는 마라톤이라서 재료비가 일반이랑 다른데, 1RPM 그룹 기준으로 전자 회로 셀은 3개, 고급 회로는 2개, 원유 공장 2개를 운영함. 그리고 전자회로를 사용하는 공장에서는 요청 역에서 기차3대를 두고 각각 전자회로 1, 전자회로 2, 전자회로 3을 사용해서 별도의 허브없이 밸런스를 맞추고있음 ㅇㅇ
https://gall.dcinside.com/mgallery/board/view/?id=factorio&no=10959
원유 관리는 링크처럼 하고있어
화면 아래쪽에 인터페이스? 아이템있는칸 바꾸는거 무슨 모드 에오?
0.17 버전에 바뀐 ui 이고 기본은 2줄인데 설정에서 4줄까지 조절할수 있습니다
감사링 감사띠
벨트 없애니까 디자인에 핵심이 보이네 벨트 안쓰는 공장은 멋이 안살아서 생각도 안해봤는데 벨트던 봇이던 그리드는 첨부터 기차 크기 기준으로 짜는게 정답인듯 - dc App
이거보고 공부좀 해봐야겠넹 츄츄천
궁금한게 하나 있는데 자원생산 시설도 그리드화하는거야? 아니면 거기는 그냥 벨트로 돌려??
자원생산시설이 광물을 말하는 거라면, 로봇만 사용함 ㅇㅇ. 벨트는 의도적으로 사용하는 곳이 없어
ㄴ 광물 말하는거 맞음. 고마워!!
정작 그리드가 뭔지 모르겠어요
블프 공유 가능한가요?