게임 내에서 기본 모드 (크탐모 기본 설정) 이외의 다른 모드는 쓰고 싶지 않아서 직접 만듬
간단한 설계 구상을 위해 게임을 켤 필요가 없다는 것도 장점이야
바닐라 하면서 간단한 계산기를 하나 만들었는데, 크탐모 오니까 공정이 너무 복잡해져서 (하나의 아이템을 만드는 공정이 여러개, 인풋과 아웃풋에 같은 아이템이 들어가는 등) 각 잡고 새로 만들었어
<기능>
원하는 아이템/공정의 수량을 입력하면 해당 요청을 만족시키는 최적의 비율을 계산해줌.
반대로 아이템/공정의 수가 제한되어 있을 때 특정 아이템을 최대한으로 얻는 공정 또한 구성해줌
예를 들어 사진은, 모듈이 없는 상황에서 벌카나이트 채광 드릴(채광 속도 0.75, 채산성 2레벨)이 160대 돌아갈 때 벌카나이트 블록은 최대 몇 개가 나오냐? 에 대한 출력이야.
최적화 공정은 텍스트(왼쪽)와 그래프(오른쪽)으로 나와서 편한 걸 선택해서 확인하면 되고, 게임을 진행하며 변하는 상수들 (조립기계 레벨, 용광로 레벨, 드릴 레벨 등)은 매크로로 정의해서 일괄 적용할 수 있음
레시피는 직접 다 써서 넣어야 함.. ㅎㅎ
<기능 상세>
최적의 공정이 무엇이냐? 는 기준에 따라 다름.
예를 들어, 철판 10개를 얻기 위해 철 주괴를 녹여도 되고 농축된 철을 써도 되고 그냥 철광석을 바로 구워도 되지만, 철 주괴는 공정 단계가 너무 많아서 소량 생산에는 적합하지 않음.
따라서 공장 개수 / 부산물 양 / 요청한 아이템 갯수 의 3가지를 기준으로 최적화를 진행하며 상대적인 중요도는 바꿀 수 있음 (사진에선 1 / 1 / 100 으로 되어있어)
또한, 정수/실수 값으로 최적화가 가능해서 더욱 정확한 결과가 나와.
예를 들면 벌카나이트 농축 과정은 출력이 3종류나 되기 때문에 하나라도 막히면 공정이 중단되고, 이에 정확한 출력을 계산할 필요가 있는데 이런 공정들은 정수로 구하고
벌카나이트 블록을 굽는 과정은 인풋이 모자라면 모자란대로 돌아가기 때문에 1.91개가 필요하다고 하면 건물 2개를 지으면 됨 (가동률이 95%정도 나오겠지)
<구현>
핵심 로직은 python + cvxopt라는 최적화 라이브러리를 썼고 개인 서버에서 돌아감.
인터페이스는 flask + html + vis js (그래프 라이브러리)으로 만들어서 일반 인터넷 브라우저에서도 사용이 가능한데, 핵심 로직 자체는 내 서버에서 동작하기 때문에 불특정 다수에게 공개는 어려울 것 같아.
필요한 사람이 많으면, 남 보여줄 수준은 아니지만 소스 공개라도 긍정적으로 검토해볼게
오늘 집 가면 벌카나이트로 철 주괴 굽는 공정 짜야겠다.
혹시 궁금한거 있으면 물어봐주고
그럼 모두 수고!
그림 나오는거 이쁘네
OR 배우기만 하고 실제로 써본적이 없었는데 팩토리오 하면서 간접적으로나마 쓰게되더라 ㅋㅋㅋㅋ
스크립트 쓰면 인게임 레시피 죄다 추출해서 파일로 뽑아낼 수 있는데 안필요함?
있으면 당연 좋지 지금은 게임 진행도랑 맞는 공정만 나오게 하고싶어서 하나씩 써가면서 하는데 테크트리 다 열면 파일로 레시피 때려넣어도 좋을듯
https://m.dcinside.com/board/factorio/30606
옛날에 썼던 스크립트가 있는데 활성화된 레시피만 추가하고 싶다면 개량을 좀 해야할듯
오 ㄱㅅㄱㅅ 한번 테스트해보겠음
https://gall.dcinside.com/mgallery/board/view/?id=factorio&no=50667
진행도 맞는 공정 필터링하는것 까지 추가해서 글 썻으니 참고해봐
땡큐!!
게이 혹시 낙성대 컴공과노? 동문 반갑다 이기
서울대아이피보고 낙성대 이지랄ㅋㅋ
예쁘게 잘만들었네 굿굿ㄱ수
지리네 케미컬 하잎보이다...
py도 해줘.....................
시급합니다 - dc App