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

리버티게임, 모두가 만들어가는 자유로운 게임
< 리버티게임:오락실
imported>Regurus님의 2023년 4월 23일 (일) 12:50 판 (→‎문서 삭제 요청)


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

전체 보존문서 목록


백괴게임 당시 사용자 문서 내에 있었던 틀, 연습장 내용 소개

안녕하세요. 제가 오래 전 백괴게임에 기여한 이래로 실험적으로 아래와 같은 내용을 만들어보았으나, 지금은 기억이 잘 나지 않아서 여기에 설명하고자 합니다.

명진 (토론) 2023년 4월 2일 (일) 03:46 (KST)답변[답변]

게임 목록에서 게임의 기술 구조를 표시하는 것은 더 이상 의미가 없다고 생각합니다.

과거 백괴게임에서는 중국어판, 영어판을 따라 게임의 기술 구조를 썼는데요, 안드로이드 앱에서 자바로 개발했는지 코틀린으로 개발했는지를 따지지 않는 것처럼 더 이상 게임 목록에서 게임의 기술 구조를 표시하는 것은 더 이상 의미가 없다고 생각합니다. 그 대신에 서버에 저장 및 회원 가입 필요 여부, 플랫폼(웹, 윈도우, 리눅스, 맥)으로 표기하는 것이 보다 바람직하다고 생각합니다. --명진 (토론) 2023년 4월 3일 (월) 19:41 (KST)답변[답변]

  • 1안: 기술 스택 간 우선순위를 둬서 높은 우선순위의 기술 스택 하나만을 대표로 선택한다. - 현재의 관습과 유사
  • 2안: 기술 스택 분류를 통폐합한다. 위키 문법으로 가능한 링크, CGI, 루아는 위키로 (DB, 입력 상자와 같이 자바스크립트를 활용한 틀은 아마도 이쪽?), 플러그인이나 자체 소도구가 필요한 경우 자바스크립트로, 브라우저에서 바로 실행할 수 없고 별도의 파일을 다운받는 경우 네이티브? (윈도우 이외 플랫폼도 고려한 네이밍 필요)로 통폐합
    • 2-1안: 2안에서 DB 계정 추가
    • 2-2안: 웹, 설치로 단순화
  • 3안: 여러 기술 스택 선택 가능
    • 3-1안: 게임 정보에서 여러 기술 스택 중 우선순위가 높은 기술 스택 하나만 대표 기술 스택으로 표시
    • 3-3안: 게임 정보에서 모든 기술 스택을 표시
  • 4안: 기술 스택을 메타데이터와 게임아이콘에서 제외한다.
저도 위와 같이 비슷한 구상과 고민을 하고 있습니다. 이 제안의 주제는 4안처럼 보이지만 내용은 2안과 유사하군요. 2안에서 DB를 추가한 형태겠네요. 다만, 틀:DB2같이 서버에 저장하지만 공개되지 않는 저장소의 경우 특별한 취급을 받을 필요가 없다고 생각됩니다. 그리고 자바스크립트는 기존 위키 게임과 조금 많이 다르기 때문에 위키 게임과 자바스크립트 게임을 웹 게임으로 합칠지 말지 고려할 필요가 있겠습니다. 윈도우에서 바로 실행 가능한 프로그램인지, 자바 같은 런타임을 깔아야하는 프로그램인지와 비슷하게 플러그인을 쓸 지 말지는 사용자에게도 와닿는 차이이기 때문이죠. 다만 자바스크립트로 문서를 자동 편집하는 게임은 DB로 표시할지, 자바스크립트로 표시할 지 문제가 있죠. 이 문제는 아래 1안과 절충할 수도 있겠습니다. 그리고 게임의 기술 구조를 알면 사용자가 게임의 퀄리티를 예상할 수 있을 것 같기도 해서 사용자 입장에서 완전히 불필요할 것 같지는 않지만 그래도 그리 중요한 역할은 아닌 것 같습니다. 저는 1, 2, 4안 중에 고민하고 있습니다. --hsl(토론, 기여, 게임, 메일) 2023년 4월 3일 (월) 20:45 (KST)답변[답변]
그렇다면, 기술 구조는 게임아이콘에서 빼는 대신에 수집 데이터 항목을 신설하여 미라헤이즈에 계정 만들기를 해야 하는지(개인 정보; True, False, Optional로 지정하며, 기본값은 False), 데이터를 저장해야 하는지(앱 활동의 앱 상호작용; 개인 정보를 False로 지정하지 않는 경우 무조건 True로 자동 지정), 플러그인 또는 데이터 등 사용자 문서/데이터의 공개된 장소에서 저장해야 하는지(앱 활동의 사용자 문서에 저장/공개된 장소에 저장)를 밝히면 될 일입니다. 게임 개발자는 가능하다면 데이터를 비공개로 저장하도록 개발할 것을 유도하면 됩니다. 그리고 플랫폼은 자바스크립트 기반의 플러그인 설치 필요 여부와 상관없이 웹, 혹은 다운로드하여 플레이 가능한 운영체제들을 표기하면 됩니다. 참고로 스팀과 itch.io에서는 게임 목록에서 사용 가능한 플랫폼이 표시되어 있고, 에픽 게임즈 스토어에는 그게 표시되어 있지 않습니다. --명진 (토론) 2023년 4월 4일 (화) 01:49 (KST)답변[답변]
일단 로그인 필요 여부는 명세에 반영하였고, 공개된 장소에 세이브 여부는 세이브 문서 경로를 지정하는 기능도 겸하여 형식을 구상하고 있습니다. 만약 설치형이 윈도우, 맥, 리눅스, 안드로이드, iOS 등 여러 플랫폼을 지원할 경우 게임아이콘을 어떻게 해야 하나의 문제도 발생하겠군요. 기술 구조 개편에 대해서는 이번주 동안 다른 사용자의 의견도 기다려보겠습니다. --hsl(토론, 기여, 게임, 메일) 2023년 4월 4일 (화) 13:13 (KST)답변[답변]
조금 더 구체적으로, 플랫폼 속성은 선택적으로 작성하게 하여 웹만 지원할 경우 생략이 가능하고, 그 외의 플랫폼을 지원하는 경우 3-3안처럼 여러 플랫폼을 배열로 작성할 수 있게 하고 모두 표시하는 것이 좋겠습니다. 물론 직접 작성할 때에도 웹을 포함할 수 있고요. 기존의 link, cgi, javascript, lua는 web으로 통합하고 windows는 유지하며 linux, macos, ios, android 정도를 추가할 수 있겠네요. 속성 이름도 platform으로 바꾸는 것이 좋겠네요. 게임아이콘은 전면적으로 개편하는 것이 좋겠습니다. --hsl(토론, 기여, 게임, 메일) 2023년 4월 6일 (목) 23:50 (KST)답변[답변]
Yes check.svg완료 리버티게임:게임 메타데이터에 제안사항을 반영하였습니다. 게임 메타데이터는 아직 확정되지 않았으므로 누구나 얼마든지 제안하고 수정할 수 있습니다. 확정 이전까지는 언제든지 이의제기나 다른 의견을 제시하셔도 좋으며, 이러한 의견을 환영합니다. --hsl(토론, 기여, 게임, 메일) 2023년 4월 7일 (금) 19:03 (KST)답변[답변]

기존 switch 기반의 Data를 JSON으로 변경

이번에는 현재 위키방송 체험에서 사용 중인 기존 switch 기반의 Data를 JSON으로 변경하고자 합니다. 호환을 위해 저장은 사용자 문서의 Data에 저장하거나, 아니면 비공개로 저장하는 방법을 고려하고 있습니다. 혹시 공개적으로 저장되는 데이터를 비공개로 저장하도록 마이그레이션하는 방법을 알 수 있습니까? --명진 (토론) 2023년 4월 4일 (화) 02:55 (KST)답변[답변]

일단 비공개적으로 저장하는 방법은 틀:DB틀:DB2 같은 시스템을 이용하는 방법 뿐입니다. DB는 로컬에만 저장되고, DB2의 경우 IP 사용자는 로컬에, 계정 사용자는 서버의 비공개 저장소에 저장됩니다. 이러한 시스템을 이용하려면 각 틀의 설명을 확인해 주세요. 공개된 문서에서 비공개된 저장소로 마이그레이션을 하려면 사용자가 직접 접속하는 방법 뿐입니다. 이러한 비공개 저장소는 제 3자가 건들 수 없어요. 만약 공개된 문서를 계속 사용하고 switch를 JSON으로 변경하려는 경우 {{#switch:{{{1}}}|{{풀기:#invoke:JSON|new|로 바꾸면 JSON이 됩니다. 그리고나서 컨텐츠 모델을 JSON으로 변경하는 것이 권장됩니다. 사이드바의 도구 섹션에서 문서 정보를 누른 뒤 문서 내용 모델에서 '위키텍스트' 옆의 변경 버튼을 누르고 JSON을 선택하고 요약과 함께 저장을 누르면 됩니다. 아니면 특수:콘텐츠모델변경 문서로 바로 가서 문서명을 입력하거나 특수:콘텐츠모델변경/(문서명)으로 바로 갈 수도 있죠. --hsl(토론, 기여, 게임, 메일) 2023년 4월 4일 (화) 13:24 (KST)답변[답변]

기존 switch 기반의 Data를 JSON으로 변경하면, 저장시 위키방송 체험/DB의 화면을 보여주고 싶은데, 기술적으로 가능한가요? --명진 (토론) 2023년 4월 10일 (월) 20:53 (KST)답변[답변]

저장 이후 넘어갈 페이지와 파라미터를 지정하는 기능이 있습니다. redirectquery 기능인데요, 여기에 넘어갈 CGI 파라미터를 URL 인코딩해서 넣으면 되며, 다른 페이지로 보내려면 title 파라미터에 문서명을 넣으시면 됩니다. 예를들어, 저장후 위키방송 체험/DB로 넘겨주는 저장 페이지의 get 파라미터에 redirectquery={{urlencode:title={{urlencode:위키방송 체험/DB}}}}를 추가하시면 됩니다. --hsl(토론, 기여, 게임, 메일) 2023년 4월 10일 (월) 23:40 (KST)답변[답변]
한번 테스트를 해보았는데 뭔가 이상하네요. JSON은 등호가 아닌 콜론을 씁니다! 제가 바꿔드릴까요? --hsl(토론, 기여, 게임, 메일) 2023년 4월 13일 (목) 15:23 (KST)답변[답변]
제가 미디어위키 함수와 JSON의 문법을 헷갈렸습니다. 해당 이슈는 이제 수정하였습니다. --명진 (토론) 2023년 4월 13일 (목) 16:04 (KST)답변[답변]

게임 장르 분류 재검토

리버티게임의 현행 장르별 게임 분류는 통합 게임, 시간 낭비하기, 예언 게임같이 의미를 알 수 없는 분류가 있고, 사용자:hsl0/연구소/11다른 사이트의 장르 분류를 구 백괴게임에서 유래된 현행 리버티게임 분류에 대응시킨 것입니다.에서 보시다시피 모든 게임들을 커버하기 어렵습니다. 따라서 게임 목록 시스템 개편 이전에 이 분류를 개편할 필요가 있다고 생각됩니다. --hsl(토론, 기여, 게임, 메일) 2023년 4월 8일 (토) 16:21 (KST)답변[답변]

이 작업은 여러 모로 위의 game.json 양식과 연동하여 빠르게 확정하는 게 좋겠네요. 일단 중요하다 여겨지는 부분은 전부 해당 문서에 의견을 표명했습니다. --Senouis(토론장, 기여) 2023년 4월 11일 (화) 16:05 (KST)답변[답변]
의견 표명은 고맙습니다만 저 문서가 의견 표명하는 공간은 아닙니다. 의견 표명은 여기에 해주세요. 제 생각에는 리버티게임만의 독특한 분류인 어드벤처 게임의 세부분류는 존치하는 것이 좋다고 생각됩니다. --hsl(토론, 기여, 게임, 메일) 2023년 4월 11일 (화) 21:14 (KST)답변[답변]
저는 기존 백괴게임 장르 분류에서 시간 낭비하기, 통합 게임을 제외하고 시뮬레이션 게임, 캐주얼 게임, 스포츠 게임, 레이싱 게임/자동차 경주 게임 (도로를 탐험하는 도로교통 게임과는 별개이므로), 전략 게임을 추가할 것을 제안합니다. 그리고 다른 사이트에는 없는 분류이지만, 게이 테스트, 공대생 테스트같은 종류의 게임을 분류하는 테스트 게임 분류도 추가할 것을 제안합니다. 예언 게임과 랜덤 게임은 더 고려해볼 필요가 있습니다. 멀티플레이 게임 역시 장르와 별개의 분류로 분리할 것을 생각해보고 있습니다. --hsl(토론, 기여, 게임, 메일) 2023년 4월 11일 (화) 21:14 (KST)답변[답변]
시간 낭비하기 제외는 철회하겠습니다. 시간 낭비하기가 없다면 큐브와 같은 게임을 분류하기 애매해지네요. --hsl(토론, 기여, 게임, 메일) 2023년 4월 12일 (수) 18:13 (KST)답변[답변]
큐브는 비록 테마로는 방치형(클리커도 방치형에 해당되네요.)이기는 하지만, 모험을 하는 것이므로 장르로는 어드벤처로 분류하면 됩니다. --명진 (토론) 2023년 4월 13일 (목) 02:54 (KST)답변[답변]

파일 깨짐 현상

현재 Miraheze의 서버 문제로 인해 파일이 뜨지 않고 있으며, 업로드도 불가능하다고 합니다. 하지만 안심하십시오. 상단 공지에서 안내되는 Miraheze의 공지사항에 따르면 이미지 원본을 저장하는 서버에는 문제가 발생하지 않고, 사용자가 이미지를 확인할 수 있는 권한을 가지고 있는지 확인하는 서버에서 문제가 발생되었다고 합니다. 즉, 백괴게임 시절의 사태처럼 이미지를 다시 영영 잃어버리는 일은 없을겁니다. 다만 복구 완료 시점을 알 수 없어 이 문제가 해결될 때까지 다소 오래 걸릴 수 있겠습니다. --hsl(토론, 기여, 게임, 메일) 2023년 4월 13일 (목) 00:38 (KST)답변[답변]

문제가 해결되었다고 합니다. 만약 여전히 깨진 이미지(Miraheze 이주 이후 업로드된 이미지 한정)가 있는 경우 phab:에 제보해 주세요. --hsl(토론, 기여, 게임, 메일) 2023년 4월 17일 (월) 18:14 (KST)답변[답변]

리버티 게임 기업이라는 분류는 이제 필요 없지 않을까 싶습니다.

원래는 백괴게임 기업이라는 백괴게임 기여자 그룹으로서 게임 기업이라는 설정으로 하여 게임 개발을 주도하는 모임이었습니다만, 설정놀음과 친목질이라는 명목 하에 여러 기업이라는 설정의 모임들의 소개가 삭제(리버티게임:토론란/사용자 소모임와 기업에 대하여를 참조)되어, 현존하는 설정상의 기업으로 JR 게임즈만 남았습니다. 그리고 이제는 JR 게임즈도 보존해아 할 것으로 예상됩니다. 앞으로는 이러한 게임 기업이라는 설정놀음식 모임보다는 게임 그 자체만을 개발하는 개발팀 이름(이미 델타룬 팀과 같은 사례가 있습니다.)으로 쓰는 게 더 바람직하지 않을까 싶습니다. 대신 스튜디오 그룹의 별칭을 병기하는 것으로 타협하는 것이 좋겠습니다. --명진 (토론) 2023년 4월 13일 (목) 03:30 (KST)답변[답변]

20230423 업데이트

네, 4월의 말을 향해 가네요.

일단 희소식 하나가 있습니다. 드디어 리버티게임 내에서 Xash3D 엔진 구동에 성공했습니다!

아직 canvas element에 마우스 그랩이 제대로 잡히지 않아 마우스가 매우 튀고 포인터 위치가 부정확하며 마우스 포인터가 보이지 않아 UI 조작이 어렵지만, 어쨌든 돌아가게 되었습니다.

왜 이리 오래 걸렸나 하면, 일단 xash3d 웹 포트 파일이 레거시 처리가 된 이후 LLVM-Emscripten 개발 환경이 wasm을 강제하도록 변경되는 것 외에도 자체 backend 코드로 라이브러리 링킹을 하도록 변경되면서 fastcomp backend의 지원이 끊겼습니다. 또 Emscripten이 Unaligned structure(void 포인터나 통신 패킷 등의 변수가 가지는 부정형 크기의 데이터 구조) 지원이 미진해서 아예 fastcomp 백엔드를 엔진 제작 팀이 추가로 개조를 했습니다. 그래서 xash3d 웹 포트 컴파일을 레거시 환경에서 돌아가도록 시도했으나 지금까지도 실패했습니다.

그래서 일단 xash3d를 javascript로 컴파일하는데 성공한 결과물이 있는 다른 리포지토리를 포크한 뒤에 연결하는 작업을 먼저 하고 컴파일 환경 구성 재현은 천천히 하는 방식으로 선회했습니다.

그 다음은 자바스크립트 코드의 Cross-Origin 보안 문제가 걸렸는데, 이건 Hsl0님이 Miraheze에서 사용 가능한 CDN을 하나 소개하셔서 GitHub에 포크한 스크립트를 CDN을 경유해 가져올 수 있도록 하였습니다. 도와주신 Hsl0님께 감사드립니다. 일단 여기에 따로 리포지토리를 파고 JSDelivr CDN을 경유해 코드를 가져오게 되었습니다.

실제 구동 영상을 보시죠. 제가 일전에 구입했던 하프라이프 1에서 애셋을 추출한 뒤 로컬 애셋 환경, 즉 Miraheze 서버에 애셋을 저장하지 않고 클라이언트 컴퓨터에서 애셋을 zip 파일로 압축하고 업로드로 연결해 구동한 것입니다.

(여담으로, 임베드비디오 확장기능이 꺼져있는 것을 도중에 발견해서 덤으로 활성화했습니다)

Xash3D 엔진 게임을 리버티게임에서 배포할 때 애셋은 당연히 지적재산권 문제가 있으므로 리버티게임에서 Xash3D 기반 게임을 제작할 때 애셋은 애셋 폴더만 zip 파일로 압축해 구글 드라이브 공유 등으로 배포하도록 강제할 겁니다. 소스 코드는 일단 하프라이프로 모딩하는 건 라이선스 변경 필요 없이 밸브가 공개한 코드를 기반으로 해도 무방합니다. 그리고 게임 별로 별도의 JS 파일을 분리한 경우에는 그냥 (Xash3D 틀이 삽입된 문서)/lib/(내부적으로 처리되는 게임 이름).js 문서를 만들어 거기에 컴파일 결과물 스크립트를 복붙하는 식으로 구현할 수 있습니다.

또 기존에 있는 JS 코드로 된 하프라이프 기반 모드들은 그냥 리버티게임으로 가져오시면 안 됩니다. ModDB나 GameBanana에서 공개된 애셋을 가지고 직접 만드세요. 기존 모드의 코드가 공개된 경우에 한해 GPL 등의 라이선스 확인하고 코드 긁어오는 건 가능합니다. 비영리 게임을 만드는 리버티게임에서는 GPL로 코드 라이선스를 지정해두는 것이 낫습니다.

Hammer++(밸브의 공식 에디터인 그냥 Hammer는 불편하므로 서드파티 툴인 Hammer++ 쓰세요)로 단일 레벨로 구성된 게임을 만드는 것을 권장하며, 게임 음악 작곡은 DAW를 다룰 수 있으면 그걸로, 트래커를 쓴다면 OpenMPT나 Famitracker로 'wav 파일'을 만드시면 됩니다. 이미지 파일은 BMP 파일뿐만 아니라 TGA 파일을 편집 가능한 툴로 하세요(그림판은 권장하지 않습니다). 블렌더로 모델링한 것을 MDL 파일로 내보낼 수 있고, 자잘한 모델링은 ModDB랑 GameBanana, 심지어 한정적이지만 스팀 창작마당에서 다운로드 링크가 공개된 것을 가져올 수 있습니다.

이걸 다듬기만 해도 일단 Xash3D 이식의 한 고개를 넘습니다. 이 달의 남은 기간 동안 플레이에 불편함이 없도록 수정한 뒤에 완전히 정상 작동함을 확인 후에 틀 문서로 옮기고 마일스톤의 관련 항목이 완료될 것입니다. 상기한 내용들은 Xash3D 이식 작업이 완전히 끝난 다음에 도움말 문서에 제작 방법과 리버티게임의 Xash3D 게임 관련 정책, 팁 등의 형태로 더 자세히 기록될 것입니다.


한편 Hsl0님이 당분간 활동이 어려워진다 밝히신 바가 있어, 게임 목록 문서에 관해 하나 정하고 가야겠습니다. 메타데이터 구조는 이대로 확정해도 괜찮겠는데, 아무래도 아직 작동하지 않는 game.json 하위 문서와 새로운 게임 목록 문서는 Hsl0님이 남긴 자료를 바탕으로 제가 직접 만들어야 할 것 같습니다. 자바스크립트로 가능한 작업 중 본인이 시간 상 하기 어려운 부분이 있다면 구현 세부만 적어서 넘겨주셔도 되겠습니다. Lua 모듈만 제가 못 건드려서 모듈이 필요하다면 4월 내로 그쪽을 먼저 구현해 주셨으면 합니다.

덤으로 제가 이벤트 프레임워크 항목은 진행 상태를 몰라 이게 완성되어서 적용될 수 있을지 모르겠는데 이 작업이 단기 완성이 되지 않는다면 적용 및 완성은 Phase 3으로 미루는 것이 좋겠습니다. 지금 추가된 Xash3D 가젯과 거기 종속될 에디터 가젯이 사실상 마지막 가젯이 될 것 같은데, 사이트 성능 최적화에 영향을 미치는 해당 프레임워크는 지금 완성되어도 되지만 Xash3D for Libertygame(가제) 가젯이 전부 완성되면 그때 시작해도 늦지는 않을 것 같습니다(해당 가젯이 추가하는 엘레먼트는 class나 id 속성, JS 변수명 앞에 'xash-' 혹은 'emscripten' 접두사가 붙거나 붙을 예정이라 충돌 가능성이 다소 낮습니다)

묵은 발전소 항목도 처리가 끝나가고 그러면서 청사진 항목을 처리할 수 있다는 것이 실증된 것 같네요. 이대로만 갑시다, 여러분! --Senouis(토론장, 기여) 2023년 4월 23일 (일) 03:04 (KST)답변[답변]

문서 삭제 요청

 이 글을 보려면 오른쪽의 "펼치기"를 눌러 주세요.

현실 고증7700번 노선 변경 및 화곡역 승차 정류소 위치 변경 반영을 위해 청라-강서 BRT 게임을 소폭 갈아엎었으며, 이에 따라 사용되지 않게 된 위 목록 문서들의 삭제를 요청드립니다. --Malgok1 (토론) 2023년 4월 23일 (일) 04:07 (KST)답변[답변]

처리 Yes check.svg완료했습니다. 기여에 감사드립니다! --Regurus (/) 2023년 4월 23일 (일) 12:50 (KST)답변[답변]