새벽에 삽질하다가 존나 빡쳐서 글이 두서없으니 양해 부탁
PC/모바일 버전 구현을 어느정도 마무리 하고나서 근래까지 바빠서 개발을 못 만진 것도 있지만
지금 웹타일 개발이 지지부진한 최대 이유는 계속 제자리인 삽질이 있어서 그런데
바로 넷핵의 NAO 서버나 돌죽의 CAO 서버처럼 텔넷이나 SSH 접속으로 아스키 플레이를 구현하는 작업임
이건 dgamelaunch라는 일종의 터미널 게임 런처랑 게임을 연결시켜야 하는데
dgamelaunch가 뭐하는 녀석이나면 아스키로 간단히 구현된 게임 로비, 회원 가입 상호작용을 제공하고
chroot로 격리된 샌드박스 공간에 넷핵이나 돌죽같은 게임을 실행시켜주는 녀석임
그래서 최종 서버 세팅은 텔넷 데몬이나, SSH 데몬에 익명 유저가 접속하자마자 dgamelaunch를 띄워주는 식으로 진행되게 됨
근데 이게 소스도 좀 오래되고 하다보니, 내가 모르고 부족한 부분도 많고 골치가 많이 아픔
돌죽 같은 경우 웹타일에서 실행시켜도 dgamelaunch 로비에 뜨고, dgamelaunch로 게임을 실행시켜도 웹타일에 표시됨
사실 dgamelaunch에서 실행시켰을 때 웹타일 측에 표시하는 것은, 내가 확인하고 삽질해본 바로는 돌죽 프로세스가 웹타일 서버에 따로
로컬 소켓으로 데이터를 보내주는 방식이고, 이건 넷핵 웹타일에서도 똑같이 구현해서 문제가 안됨
실제로 위에 있는 스크린샷이, dgamelaunch에서 실행된 게임 정보를 넷핵 웹타일 서버가 수신하게 하는거 삽질 성공한 스크린샷임
문제가 되는 것은 반대의 경우인데 웹타일에서 실행한 게임 정보를 dgamelaunch에 어떻게 반영하는지 모르겠음
IRC 뛰어다니고 나름 실험 해본 결과, dgamelaunch 끼리는 프로세스간 공유 메모리에 로비 정보를 띄워놓고 이걸 공유해서 표시해주는 것 같고
아마 크롤 웹타일도 dgamelaunch의 공유 메모리를 조작해서 표시하지 않을까 싶은데 (추측)
공유 메모리가 아닌 다른 진입점이 있는 것 같기도 하고 더 삽질을 해봐야 알 일임
갈길은 먼데 계속 저거 분석 단계에서 갈피 못잡고 빙빙 돌고있으니 환장할 노릇이고
이렇게 시간 한 4번 붓다가 현생살 다오니까. 구조 분석해둔거 또 까먹고 ㅋㅋㅋㅋ 처음부터 개발 세팅 다시하고 제자리됨
일단 최근에는 테스트 환경 구축하는 것이 너무 번거로워서 Docker 컨테이너로 바로 지웠다가 세팅했다가 할수 있게 만들어두고 삽질하는 중
이 작업이랑 웹타일에서도 mail daemon으로 메시지 보내는 것 까지만 완료가 되면, 더 이상 개발 소요 시간이 측정이 안되는 미지의 영역이 없어지기 때문에
더러운 소스코드들 한번 다 재작성해서 주석넣고 정리좀 하고, 바로 웹타일 애드온 기능 구현해서 사운드 패치랑 한글 패치 시작할텐데 매우 답답하다...
혹시 분석 도와줄 C/C++ 초고수 있으면 webtiles.nethack.live에 적힌 연락 채널로 연락주시면 매우 감사하겠음...
이러면 웹타일 플레이를 터미널 dgamelaunch에서 관전하는 부분이 안되는건가? 웹타일 - 터미널 플레이 연동은 되는거고
맞음, 반대는 어거지로라도 만들수 있긴 한데, 그렇게 만들면 반쪽짜리니까 결국 저 부분때문에 구현을 시작을 못하고 있는 중
이건 c++고수라도 관련작업안해봤으면 모르겠는데 ㅋㅋ
그래도 눈이 많아지면 도움이 많이 될듯 함 내가 생각치 못한 부분을 볼수도 있고
넷핵이랑 dgl쪽이 아니어도, 그나마 로갤에서 개작이 된적이 있는 크롤쪽 소스 익숙한 사람이 그쪽 부분 어떻게 되어있는지 분석해줘도 엄청 도움될 듯함