밥스, 크라 깨고, 우탐모 다품종 소량생산의 맛을 보고 각혈하면서 바닐라를 제외한 초대량생산 모드가 없나? 하고 모드포털 둘러보던중.
내가 만들면 되는구나 라는것을 꺠달음.
걍 관심 받는것이 아닌, 내가 끈기가 진짜 약해서 갤에 글이라도 싸면서 해야지 진척이 나올거 같아서 쓰는글.
나는 파이썬만 조금 할줄 알지, 팩토 씹고수도 아니고 코딩의 달인도 아니기 때문에 시행착오도 엄청 많고 글이 재밌지도 않을듯.
걍 이런 놈도 있구나 하고 봐주길 바람.
피드백이랑 훈수 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개의 입력을 못받는 문제를 조립기계 타입으로 용광로를 만들어 해결하기.
일기 끗
조립기계프로토타입으로 하면 레시피 자동 변경이 안될거임 furnance는 레시피 자동 변경이 가능하지만 입력을 하나로 제한해서 레시피 꼬이는걸 방지하고 assemblingmachine은 입력이 자유로운 대신 레시피 지정 해야해서 재활용기도 furnance임
파이팅이야 나도 모드 거의다 만들었는데 그래픽이 문제여서 완성이 안되겠더라
그리고 내가 sublime text는 잘 몰라서 그러는데 여기 vscode에서 쓰는 확장플러그인도 쓸수있어? 포럼에 디버깅툴이랑 apidocs 연결시켜서 속성 유효한지도 표시해주고 암튼 좋은거 많아 한번 찾아봐
@말랑별 아니 vs에 팩토리오 lua 디버깅 플러그인이 있다고? 갈아타야하나... 내가 파이썬 할때도 vs 안쓰고 idle만 쓰는 ㅂㅅ이라. 최신문물에 좀 약함. 함 찾아봐야지. 서브라임 텍스트에 플러그인 기능이 있는데, 팩토리오 플러그인은 없을거같네
@ㅇㅇ(58.227)
나도 코딩은 모드 만들면서 처음 한거라 다른건 아예 모르고... idle도 몰라 뭔지
플러그인은 디버깅모드로 실행시 오류난 코드 부분에서 멈추고 어딘지 표시해주고
특정 라인 표시해놓으면 인게임에서 그 동작 실행시 표시해주고 암튼 좋아 확실히
https://github.com/justarandomgeek/vscode-factoriomod-debug
@말랑별 지린다. 문제가 딱 하나 있는게, 내 개발환경이 피시방이라는거... vs깔다가 시간다감 ㅋㅋㅋ
@ㅇㅇ(58.227) 구글클라우드로 서버 하나 만들어서 거기서 개발하면 안되는거야?
@말랑별 ㄴㄴ 걍 지금 집에서 pc사용을 못해가지고. 피방에서 할수밖에 없는데, 피방은 매번 컴 초기화 되니까 vs코드도 다시 깔아야하잖음
@ㅇㅇ(58.227) 클라우드 서버에다가 vscode랑 플러그인도 설치하면 pc방에서 서버로 접속하고 접속하는것도 설치 필요없고 인증키만 휴대폰에 저장해두면 될거같은데 내가 상황을 모르니
첫짤 꼬추인줄알았네
화로 입력 두 개 받는거는 크라스토리오 2에서 사용하는 방식이니까 한 번 참고해보셈 윗 댓 말대로 조립 기계 프로토타입으로 화로를 새로 만들었음
크라2 함 뜯어봐야겠네. ㄱㅅㄱㅅ
생각해보니까 우주시대 주조소도 조립기계 기반이겠네. 어짜피 내 모드도 초대량생산이 메인이니까 그냥 조립기계 기반이 좋을듯. 조언 감사
맞아 크라2 화로는 조립기계에 껍데기씌운거임 그래서 구리판인지 철판인지 강철인지 레시피지정 해줘야하고..
와 지린다
완성되면 재밌는 모드일듯! 화이팅이야
자세한 설명 ㄳ