[일반] 대환장 PyAL 일대기 - 0장 (58시간)

https://gall.dcinside.com/mgallery/board/view/?id=factorio&no=17771


위 글에서 소개된 저희 대환장 듀오의 타임랩스를 만드는 법을 소개함

순정 PyAL (64시간) 구경 => https://factorio.abstr.net/


설명 없이 알아서들 구비해야할 준비물:


1. 만날 놀고있는 64비트 윈도우 서버 콤퓨타 (Windows Server 계열 아니어도 됨, 서버로 쓸 컴퓨터가 필요하다~ 이말)

2. 공식 홈페이지에서 받은 스팀API 종속이 없는 찐바닐라 팩토리오

3. FactorioMaps Timelapse 모드 - https://mods.factorio.com/mod/L0laapk3_FactorioMaps


구하셨습니까? 그럼 시작합니다 (본 글은 Windows Server 2019 Datacenter에서 테스트되었음)



Python 64Bit와 NodeJS가 필요한데 이미 깔려있는 사람은 깔려있는 것을 써도 되고 없는 사람은

https://chocolatey.org/install 에서 시키는대로

Now run the following command: 섹션에 적혀있는 명령어를 복사해서

(윈도우 탐색기 아무 경로나 들어가서 Alt -> F -> S -> A를 순서대로 치면 나오는) 관리자 권한으로 실행한 Powershell에다 붙여넣은 다음

Chocolatey 설치가 완료되면

다시 관리자 권한 Powershell 창에서


choco install python3 nodejs -y



설치가 완료되면 아까 말한 모드를 factorio/mods에 zip로 둠과 동시에 압축을 풀어줍니다.


압축 푼 모드 폴더 안에서 Powershell을 켜고 (Alt F S A)

python -m pip install -r packages.txt 입력


근데 한글 윈도우라 그런지 CP949 인코딩 오류가 나서 나는 일부 I/O 함수에 encoding="utf8"을 써주니까 재대로 돌아갔음

한글 윈도우 아닌 사람은 그냥 해도 별 문제 없을듯?


auto.py


zoom.py

해당 부분 수정하면 되겠슴


그리고 타임랩스 전용으로 팩토리오 파일을 사용해야 함 이건 해보면 무슨 말인지 알게되는데

타임랩스를 돌리면서 서버를 돌리려면 받은 바닐라 파일을 복사해서 사용하거나 기존에 가지고 있던 팩토리오 파일로 돌려야함


서버로 사용할 server_factorio/config/config.ini 또는 (Headless의 경우) server_factorio/data/setver-settings.json에

autosave_slots 설정을 1로 맞춰준다


타임랩스로 사용할 timelapse_factorio/mods/FactorioMaps 폴더에


automatic.ps1 파일을 만들고


https://pastebin.com/28VpBUsM

위 링크의 내용을 복붙하고


$SAVE_PATH="server_factorio/saves/_autosave1.zip"

$COPY_PATH="timelapse_factorio/saves/play.zip"

이 부분의 server_factorio 부분과 timelapse_factorio 부분을 올바르게 설정함


이제 timelapse_factorio/mods/FactorioMaps 폴더에서

Powershell을 켜서 ./automatic.ps1 입력하면 SAVE_PATH의 세이브가 변경될 때마다 파일 해시를 감지해서

타임랩스 파일을 만들게 됨

*실행이 안되는 사람은 Set-ExecutionPolicy RemoteSigned 한번 입력하고 해보셈


이제 한 싸이클이 진행되면 timelapse_factorio/FactorioMaps/play.zip/ 폴더에 타임랩스 웹 파일들이 만들어지는데


웹 서버를 켜기 위해 timelapse_factorio/FactorioMaps/play.zip/ 폴더에 들어가서 Powershell을 실행하고


npm install http-server -g과

http-server -c 150을 차례로 입력하면


http://localhost:8080 또는 http://localhost:8080+n에서 타임랩스를 확인 가능함

포트 포워딩이나 리버스 프록시등을 이용해 입맛에 맞게 사용하면 되겠음


이제 플레이하다보면 타임랩스가 점점 생겨나면서 확인가능

자동 세이브 간격을 조절해서 타임랩스 간격 취향에 맞게 설정할 수 있음

자세한 추가 옵션은 해당 모드 GitHub에서 확인 - https://github.com/L0laapk3/FactorioMaps/blob/master/README.md