밥스, 크라 깨고, 우탐모 다품종 소량생산의 맛을 보고 각혈하면서 바닐라를 제외한 초대량생산 모드가 없나? 하고 모드포털 둘러보던중.

내가 만들면 되는구나 라는것을 꺠달음.

걍 관심 받는것이 아닌, 내가 끈기가 진짜 약해서 갤에 글이라도 싸면서 해야지 진척이 나올거 같아서 쓰는글.

나는 파이썬만 조금 할줄 알지, 팩토 씹고수도 아니고 코딩의 달인도 아니기 때문에 시행착오도 엄청 많고 글이 재밌지도 않을듯.

걍 이런 놈도 있구나 하고 봐주길 바람.

피드백이랑 훈수 100% 환영


---------------------------------------------


우선 내가 생각하는 모드는 현실의 공정처럼, 진짜 커다란 고로에 코크스와 철을 넣고 선철 뽑아내는 그런 모드를 만들고 싶음.





또 광물패치는 매우 크고 거의 무한한 대신 각 자원이 섬마다 분포되어있음. 이것은 리소스 오버홀 모드를 이용해볼것임.

그래서 물류모드를 통해서 기초자원을 해상운반을 하고 초대랑 정광작업을 하는거임.

하지만 이 과정에서 파이모드처럼 과도한 중간 생산품과 피드백 공정은 지양하고, 자연스러운 흐르는듯한 공정과 현실성을 챙기기위한 최소한의 아이템 추가를 할 예정.


오늘은 간단히 석탄과 철 작업만 해보겠음.


.......................


우선 모드를 만들기 위해 모드 개발 환경을 갖추어야겠지?


나는 무거운 프로그램은 못돌리는 개똥컴이기 때문에 sublime Text 라는 프로그램으로 lua 코딩을 할거임.

걍 추가 기능없이, 코드 보고 쓰고 수정 기능만 충실한 프로그램임.





모드 이름은 과분하지만 산업모드, 인더스트리오로 해보겠음.


모든 모드는 반드시 info.json 이 존재해야함.





모드의 정보를 적어주면 되는데... name과 version의 값은 반드시 모드의 폴더명과 완벽히 똑같아야함.


모드 개발을 위해서는 반드시 팩토리오 모드 공식 서브포럼에 익숙해져야 하는데 (https://forums.factorio.com/viewforum.php?f=14&sid=68de6ef9ee46dcd7566653335917752b)

이곳에서 모드 개발에 필요한 모든 정보를 얻을수 있음. 영어로 되어있긴 한데, 구글 페이지번역 이용하면 대충 뭔소린지 알수 있음.





모드는 크게 3가지 타이밍에서 동작하는데, 이중에서 일단 프로토타입에 집중할거임.

프로토타입은, 맵을 만들고 딱 시작할때 정해지는 정보들을 말하는데, 이곳에 아이템의 정보, 레시피정보, 건물 정보 등등이 들어감.

또 프로토타입은 종류가 매우 많기 때문에 따로 폴더를 추가해서 묶어서 관리해 줄거임.





그러면 이제 프로토타입 폴더 안에, item.lua 와 recipe.lua 폴더를 만들고 다음과 같이 작성해 줬음





여기서 타입,아이템 등등은 게임에서 사용하는 코드 개념이지, 인게임에서 보이는 이름이 아님. subgroup은 아이템이 인벤에 어느 부분에 존재할지 정하고

order는 배치되는 순서를 정하는건데, 크게 중요하지 않음.



이때, lua 코드를 뭘 작성해야할지 처음에 전혀 몰랐지만, 이럴때는 항상 모드 서브포럼을 보면 됨.

아까 링크에서 프로토타입 설정을 누르면 다음과 같이 보이는데,





옆에 검색창에다가 그냥 궁금한거 치면 됨. 나는 아이템 프로토타입을 어케 쓰는지 궁금하니까 itempro 로 검색함.





그럼 옆에 필요한 정보가 주르륵 뜨는데, 밑으로 스크롤 하다보면, 각각의 인자가 하는 역할이 뭔지, 기본값이 뭔지, 어떤 형식으로 작성하는지가 다 나와있음.





이런식으로 반드시 작성해야 하는 정보인지, 기본값이 뭔지 다 알려줌.


다 작성했으면 파일을 저장해줌.





이걸로 끝난게 아님. 모드에서 우리가 만든 프로토타입을 불러오도록 정해줘야함.

프로토타입 폴더가 아닌, 제일 상위 폴더에 data.lua 파일을 추가하고 다음과 같이 입력함.





이러면 게임을 시작할때 저 프로토타입들을 불러올수 있음.


이제, 아이템 개념은 만들었으니 이미지도 만들어야겠지?


메인 폴더에 graphics 폴더를 추가했음.






이제 사진을 만들어야하는데, 나한테 그림 그리는 능력은 없으므로 재탕을 할거임.


Steam\steamapps\common\Factorio\data\base\graphics\icons 경로에 가면 팩토리오의 모든 아이콘들을 볼수 있는데,

그곳에서 coal.png를 복사하고, 포토샵으로 회색빛으로 수정함.





이제 이걸 industrio_0.0.1\graphics\icons 경로에 추가하면 끝임.


마지막으로 이 아이템이 인게임에서 실제로 어떻게 보일지 작성하면 됨.

최상위 폴더에 locale\en 폴더를 만들고 그 안에 locale.cfg파일을 만들고 다음과 같이 작성함.







이러면 일단 준비는 끝임. AppData\Roaming\Factorio\mods 폴더에 우리가 만든 모드파일을 압축해서 넣은후 팩토리오를 켜보자.






모드 칸에 잘 잡혀있는것을 볼수 있다.





인벤에 이름 잘보이고, 연료량과 설명 스택크기까지 잘 저장된것을 볼수 있다.





돌 용광로에 석탄을 넣으니 설정한대로 5초동안 석탄 2개를 구워서 코크스 1개가 나오는것을 볼수 있음.


이제 아이템과 레시피가 잘 추가되는것을 확인했으니, 본격적으로 작업을 시작해 볼거임.


............................................


우선 아이템. 코크스, 재, 흑연, 슬래그를 추가함.





레시피 부분임. 코크스 말고도 철판, 흑연의 제작법을 추가했음. 또 입출력이 1개 고정이 아닌, 여려개가 사용되도록 수정함.





이떄, 철판 제작법이 변경되었으니까 기존의 제작법은 비활성화 하고, 또 용광로의 슬롯도 증가해야겠지?


최상위 폴더에 data-updates.lua 파일을 만들고 다음을 추가함.





기존의 철판 제작법을 비활성화 하고 임시로 돌 용광로의 입출력 슬롯을 2개로 만들었음.


또 아이템 말고도 레시피에서 보이는 설명도 추가함.






이제 실행해보면....?





.......


서브위키의 furnaceprototype 문서를 보니까, 출력은 자유롭게 설정 가능하지만, 입력은 무조건 1개인것을 알수있음.





일단 그러면 레시피의 입력은 전부 1개로 하고, 이 문제는 나중에 해결해야겠음.


다시 실행해보면?




아이템도 잘 보이고





용광로에서 2개의 출력물도 나오고





기존의 철판 제작법을 무시하고 내가 추가한 제작법으로 만들어지는것도 볼수 있음.


일단 오늘은 너무 시행착오를 많이해서 여기까지 하고. 다음에 또 시간이 나면 만들어 보겠음.


-추후 계획-

1. 얼리게임을 위한 기초 제련법을 만들었으니, 중반게임을 위한 고로, 코크스로 설비를 만들고, 그곳에서 만들수 있는 고효율 레시피 만들기.

2. 용광로에 2개의 입력을 못받는 문제를 조립기계 타입으로 용광로를 만들어 해결하기.


일기 끗