goguelike 윈도우 포팅
By SeukWon Kang
윈도우에서 서버실행, 클라이언트실행, 동영상 캡처까지 한 결과물.
오류가 발생했습니다.
www.youtube.com에서 동영상을 시청하거나 브라우저에서 자바스크립트가 사용 중지된 경우 사용 설정하세요.
윈도우를 설치하고 개발 환경까지 설정했으니 윈도우에서도 작동 할 수 있게 포팅작업을 진행했습니다.
ground 서버를 제외한 (towerserver의 프로세스 제어용으로 ps 명령어 실행 및 결과를 문자 파싱해 쓰는 관계로 포팅이 꽤 어려울 것 같습니다. )
towerserver, multiclient, textclient, wasmclient(이건 포팅이 필요없는 거죠.) 등이 작동합니다. ( 아마도 ^^) 컴파일 까진 확인 했는데 작동확인이 된것은 towerserver, wasmclient 입니다.
소감을 이야기 하자면 코드의 수정은 signalhandle 의 windows 버전인 signalhandlewin 작업으로 간단하게? 완료 되었습니다. ( sig_usr1을 사용할수 없어서 logrotate가 불가능해 졌습니다. )
그러나 build 스크립트들을 수정하는 것이 큰일? 이었는데, 전혀 익숙하지 않은 (정도가 아니고 처음 써보는) powershell script를 작성해야 했기 때문입니다.
일단은 다 완료 해서 github에 올려 두었습니다.
그 과정에서 부산물로 https://github.com/kasworld/makesha256sum 와 https://github.com/kasworld/signalhandlewin 가 만들어 졌습니다.
makesha256sum은 파일들의 hash sum으로 버전 스트링을 만드는 프로그램인데 linux에선 sha256sum 으로 간단히 되고 powershell에서는 Get-FileHash 로 간단히 될것 같아 보였으나 놀랍게도 두개의 결과가 다른 관계로 만들게 되었습니다.
아마도 여러 파일을 합치는 과정에서 line-end 문자가 LF와 CR/LF로 서로 달라서 생기는 문제 같은데 이를 powershell script로 해결하느니 프로그램을 만드는 편이 간단해보였습니다.
결과적으로 makesha256sum은 리눅스와 같은 값을 만들어 냅니다. ^^
그외에는 build version 을 만들때 쓰는 time string이 또 powershell에서는 다르게 만들어 져서 대충 때웠습니다. ( build.ps1을 보시면 압니다. ;;; )