리버티게임:오락실/2023년 3월

리버티게임, 모두가 만들어가는 자유로운 게임
< 리버티게임:오락실
imported>Hsl0님의 2023년 4월 11일 (화) 21:03 판 (→‎관리자 hsl0입니다.)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)


Korean.culture-PC.bang-01.jpg
리버티게임 오락실
 2023년 3월 
새 글 쓰기
새로 고침

전체 보존문서 목록

안녕하세요[원본 편집]

계정 아라로 로그인이 안되어서 오늘 새로 가입한 고도 엔진으로 게임을 만들고 싶어하는 명진입니다! 사실 기존 계정으로 로그인을 하고 싶은데, 저의 미라헤이즈에 이관되기 이전에 기여했던 다른 언어판 언사이클로피디아 때문에 로그인이 안되어서 부득이하게 새로운 계정을 팠습니다. --명진 (토론) 2023년 3월 30일 (목) 16:05 (KST)답변[답변]

반갑습니다! 돌아오신 것을 환영합니다. --Senouis(토론장, 기여) 2023년 3월 30일 (목) 21:28 (KST)답변[답변]

백괴방송 체험을 위키방송 체험으로 이동 요청[원본 편집]

제가 오늘 리버티게임에 가입한 이유로, 백괴방송 체험은 백괴사전 및 백괴게임 때 쓰기 위한 이름으로써 원래 게임 제목은 WBS라는 이름에 맞게 위키방송 체험이라고 정하고자 하였습니다. 따라서 리버티게임에서는 해당 게임 제목으로 이동을 요청합니다. --명진 (토론) 2023년 3월 30일 (목) 16:10 (KST)답변[답변]

네, 일단 이동은 해드렸습니다. 다만 계정별 DB 문서는 봇을 쓰지 않으면 대규모 이동이 힘들어 일단 DB 문서를 읽어올 때는 백괴방송 체험으로 고정해놓는 것이 좋겠습니다. --Senouis(토론장, 기여) 2023년 3월 30일 (목) 21:28 (KST)답변[답변]

3월 말일의 업데이트[원본 편집]

3월이 끝나는 말일이 다가왔습니다.

우선 지난 달에 좀 급하게 청사진을 세운 탓에 건강 문제를 고려하지 않고 무리하게 기간을 좁게 잡은 것 같습니다.

제가 지금 구직 활동을 잠시 중단하였는데, 작년부터 조금씩 아파 오던 허리가 기어이 이번 달에 완전히 작살났는지 하루의 절반을 침대에 누워 지내는 일이 예사라 뭘 길게 하기가 쉽지 않습니다. 빠른 시일 내에 병원에 다녀와야 하는데, 일단은 백수 신세라 지속적으로 치료하려면 돈과 시간이 엄청나게 필요할 것 같아 초기 기획과의 진행에 차질이 생겼습니다.

그래서 이번 달에 자체 게임 엔진 설계를 위한 자료 조사나 기획 작성, 각 게임 분류 작업에 많은 시간을 투자하지 못하게 된 점 죄송합니다. 일단 게임 엔진 설계 쪽에서 진행한 것들을 말씀드리겠습니다.

  • 유니티로 게임을 만든 다음 HTML5 게임으로 내보내는 것은 선택지에서 제외했습니다. 대형 엔진들은 너무 무거워서 도저히 온전히 그 기능들을 가져오기도, 그 중에서 일부를 쳐내고 가져올 수도 없습니다. 그래서 중소 규모의 웹 게임 엔진 내지는 오래된 엔진의 자바스크립트 포트를 가져온 다음 그 에디터를 제작하는 데에 대부분의 시간을 투자하기로 결정했습니다.
    • 게임메이커의 경우 돈을 내야 HTML5 Export가 가능해서 역시 제외입니다. 비영리 인디 게임 커뮤니티에 돈을 들여서 게임을 내는 건 미친 짓이죠.
  • 그래서 엔진 기능은 고민 끝에 그나마 제가 직접 다뤄봤던 프레임워크/게임 엔진 중 그나마 가벼운 Xash3D를 포팅하고 그 기능들을 일부 대체하거나 그대로 사용하되 Phase 2에 기획된 에디터를 위한 별도 코드 구조 설계 등의 상대적으로 간단한 수정 작업만 진행하는 것으로 방향을 잡았습니다. Xash3D 엔진은 밸브 코퍼레이션의 골드 소스 엔진을 오픈 소스로 재구현한 것으로, 밸브 코퍼레이션이 하프라이프 1의 애셋 관리 툴이나 게임 소스 코드를 풀어 자유로운 파생 게임 제작을 보장했기 때문에 쓸 수 있는 소스 코드 예제 및 애셋이 충분하다고 생각합니다. 코딩에 필요한 그래픽스 지식도 고등학교 수학 수준에서 다룰 수 있는 정도만 필요해서 리버티게임 내에 안내서를 쉽게 만들 수 있을 것으로 생각됩니다.
    • 다만 골드 소스 엔진 자체는 전체 개발 매뉴얼이 공개된 적 없기에 제가 그 동안 분석하며 쌓은 몇몇 노하우와 영미권의 튜토리얼 번역을 가져오겠습니다.
  • Xash3D는 기본적으로 C++로 코드가 작성된 것을 LLVM-Emscripten 환경에서 -s WASM=0 옵션을 주고 컴파일하는 방식으로 웹 포트 개발을 진행하며, 게임 역시 동일하게 진행합니다. 여기서 제가 걱정하는 것이 C++ 사용으로 인해 낮아지는 코드 작성법의 접근성이고, 그래서 저는 계획 기간 명시는 2024년으로 잡았지만 아예 2023년 후반부터 에디터 개발에 대부분의 시간을 투자하려고 합니다. 에디터는 아마 언리얼 에디터의 블루프린트 시스템처럼 노드 그래프 기반 코드 에디터가 될 것 같은데, 해당 방식이 코딩의 자유도를 극한까지 끌어올리고 디버깅도 편하기 때문입니다.
    • 다만 Xash3D는 2020년부터 FWGS 팀의 공식 지원을 받으면서 웹 포트 지원이 끊겼고, 그로 인해 몇 가지 수정 사항이 필요합니다.
      • 2020년대 들어서 LLVM이 fastcomp 모듈을 완전히 Deprecated 처리하고 직접 제작한 WebAssembly 백엔드를 본격적으로 쓰기 시작하면서 2019년을 끝으로 업데이트가 멈춘 마지막 Xash3D 웹 포트 빌드 스크립트를 수정해야 합니다. 일단 현재는 수십 개의 Warning을 띄우긴 하지만 포크한 리포지토리에서는 스크립트가 수정되어 작동합니다.
      • 2018년 논란이 되었던 CPU 분기 예측 보안 버그(멜트다운-스펙터)로 인해 Cross-Origin-Isolation 정책이 생기면서 ShardArrayBuffer 객체 사용에 제약이 걸렸습니다. 그래서 리버티게임에 업로드하기 전 작동을 테스트하는 데에 애로사항이 있습니다. 이 객체가 멀티스레딩을 할 때 스레드 간 공유 메모리를 다루기 때문에 이렇게 된 건 어쩔 수 없기에, 리버티게임에서 작동할 때에는 싱글스레드로 작동하도록 강제하겠습니다(애초에 2000년대 초반 게임을 실행하는 데 특화되어서, 싱글스레드 작동은 문제 안 됩니다).
      • 그리고 가장 결정적으로...결과물로 나오는 JS 파일을 분할해야 합니다. 현 스크립트에서는 xash.js란 이름으로 모든 기능을 하나의 자바스크립트 파일에 몰아넣는데, 이게 90MB가 넘어서 리버티게임 가젯으로 쓰지 못합니다(Miraheze 미디어위키 JS 파일은 최대 단일 2MB까지만 허용). 아마 렌더링, 통신, 사운드 시스템 등을 전부 분할하고 메인 JS(Xash.js)에서 로드하는 방식으로 바뀔 겁니다. 유니티보다 Xash3D가 기능이 적고 단순한데도 이 모양이라, 게임 엔진을 가져오는 개발 방향이 맞는 방향인가 싶지만, 바닥부터 쌓아 올리는 자체 설계는 몇 배의 수고가 필요하여 기획 방향으로 잡기 어렵습니다.

이로 인해 Xash3D를 매뉴얼대로 컴파일하는데 성공해도 바로 실행하지 못하고 몇 가지 수정 사항이 필요합니다. 현재 여기서 진행사항을 볼 수 있습니다. setup.sh 실행 없이 바로 make를 실행하면 컴파일이 되고 서버에서 실행까지 되도록 4월동안 으로 완전히 처리하겠습니다.

그리고 게임 분류에 관해서는 이미 Hsl0님이 모듈을 상당한 수준으로 작성한 기록이 있어서 낚시/어드벤처 게임을 제외한 게임을 먼저 1차로 4월 중에 확정적으로 분류하고, 남은 시간 내에 몇몇 최신 업데이트가 존재하는 게임 / 인기 게임 위주로 JSON 메타데이터를 작성하도록 하겠습니다. 교통 SOC 탐방 어드벤처가 너무 많아서 전부 4월에 하긴 곤란하고, 양산형/미완성 상태의 게임이 주로 포진한 곳이라 메타데이터 작성이 헛수고가 될 가능성이 크기 때문입니다. 레거시 게임 메뉴는 대문에서 접근 가능한 링크만 없을 뿐 문서는 남겨둘 것이고, 두 단계로 나눠서 수행할 수 잇도록 기록을 하겠습니다.

덤으로 이 삽질을 하는 이유에 대해 설명드리겠습니다.

백괴사전은 국제 프로젝트이고 디시위키는 2020년까지는 본진 디시인사이드의 관심을 받는 등 뒷배가 워낙 든든했으니 지금까지 버텼습니다. 리그베다 위키의 영향을 받은 위키들도 공식적인 조직 설립에 성공한 나무위키와 리브레 위키만 살아남았고요.

그런 소위 '빽'이 없어서 서버 문제나 적극적 관리 역량을 갖추기 어려웠던 수많은 위키가 빠르게 망한 건 충분히 예측 가능했던 일이 아닐까 생각됩니다. 그래서 제가 리버티게임에서 시상식을 여는 등 나름 재정 운용을 시도한 것도 이런 능력을 갖추고자 한 시도였고 지금 자체 게임 엔진 계획을 서두르는 것도 같은 이유입니다.

하지만 전에 디시인사이드 위키 갤러리에서 우연히 PluginX 개발자 분의 푸념을 본 적이 있는데, 그걸 보고 개인이 자바스크립트 게임 개발 프레임워크를 바닥부터 짜는 건 사실상 불가능하다라는 확신이 섰습니다. 당장 저도 지금 침대에 엎어진 이상 줄어든 관리 시간을 전부 엔진 포팅 + 에디터 개발에 투자해야 할 것 같은데, 커뮤니티 관리는 어떻게 해야 할지 감이 안 잡힙니다. 그래서 청사진은 거창할 수밖에 없는데, 인원 투입은 매우 어려운 거죠.

그래서 일단 청사진은 저리 짜 놓았고, 최대한 명목 상으로는 나름 따라가겠으나, 청사진 내용을 문자 그대로 해석하는 대로 노동을 하는 것이 아님을 알려드립니다. --Senouis(토론장, 기여) 2023년 3월 31일 (금) 01:30 (KST)답변[답변]

관리자 hsl0입니다.[원본 편집]

안녕하세요, 리버티게임의 관리자를 맡고 있는 hsl0 입니다. 개인 사정으로 인해 다음달(5월)부터 내년 11월까지 활동이 어려울 것 같습니다. 양해 부탁드립니다. 관리자 공백이 우려되어 관리자를 하게 되었으나, 또 다시 공백을 만들고 떠나게 될 것 같습니다. 관리자 공백이 우려되는 경우 대책을 미리 마련해야 할 것 같습니다. 사무관님께서 야심차게 기획한 로드맵 일정에도 찬물을 끼얹는 것 같아 죄송하고 아쉬울 따름입니다. 한 달 정도 남은 기간 동안은 계속 최선을 다하겠습니다. 휴가 기간이 시작되면 제 관리자 권한은 상황에 따라 회수하여도 좋고 유지하여도 좋습니다. 죄송합니다. 감사합니다. 내년에 다시 뵙겠습니다. (다만, 예정보다 일찍 접속할 수도 있습니다. 하지만 예정된 복귀 일자 이전까지는 관리자 업무는 여전히 어려울 것입니다.) 아직 만우절 아닙니다. 저 진지합니다. 휴가 기간으로부터 한 달 전이 하필 만우절이었습니다. --hsl(토론, 기여, 게임, 메일) 2023년 3월 31일 (금) 23:44 (KST)답변[답변]

괜찮습니다. Xash3D 엔진 포팅 및 테스트는 원래 개발 환경 상 다른 유저에게 요청이 어려워 단독으로 진행하려고 했고, CDN 사이트 소개해 주신 것으로도 굉장히 도움이 되었습니다. 페이즈 1과 2에 따르면 내년에 돌아오실 때에는 API 관련 문서와 알파 버전의 WYSIWYG + 노드 기반 코딩 에디터가 리버티게임에 생성되어 있을 겁니다. 그럼 그때 그걸 점검 해주시는 것만으로 충분하고 디버깅 정보 관련 도움이 필요한 페이즈 3때 따로 도움을 요청하겠습니다. 일단 제가 손댄 적 없는 이벤트 컨트롤 프레임워크랑 게임 목록 로딩 모듈만 마저 완성되면 그 이후는 제가 알아서 해보겠습니다. 정말 고생 많으셨습니다! --Senouis(토론장, 기여) 2023년 4월 11일 (화) 15:53 (KST)답변[답변]
덤으로 큰 병원에서 진찰한 결과 허리 디스크가 터진 것이 아니라 자세 불량 등의 원인으로 그쪽 근육이나 인대에 무리가 가서 만성적인 염증이 생긴 거라 합니다. 그래서 약 먹고 몸 관리만 잘 하면 생각보다 회복이 빨리 될 것 같아 개발에 좀 더 많은 역량을 투자할 수 있을 것 같네요. --Senouis(토론장, 기여) 2023년 4월 11일 (화) 15:56 (KST)답변[답변]
아이고 이런 일이... 빠른 쾌유를 빕니다. --hsl(토론, 기여, 게임, 메일) 2023년 4월 11일 (화) 21:03 (KST)답변[답변]