리버티게임:오락실/2023년 5월
리버티게임 오락실 |
---|
◀ 2023년 5월 ▶ |
새 글 쓰기 |
새로 고침 |
20230501 업데이트[원본 편집]
이달의 첫 업데이트입니다.
1. 휴면에 가까웠던 사이트 침체는 종료
일단 통계 문서를 확인해본 결과 비대위 진입 조건은 벗어난 것이 확인되었습니다. 다만 비대위 해산 조건은 아직 만족되지 않은 상황입니다(6명의 활동적 사용자가 더 필요). 비대위가 해산되면 2기 체제로 진입하고, 현 관리자들의 임기가 종료되어 재선거를 해야 하며, 관리자 선거 최소 찬성표 규정이 부활합니다. 일단 휴식을 선언한 관리자도 있고, 활동적인 관리자 수는 1~2명을 유지하기 때문에 비상대책위원회 상태는 유지되며, 백괴게임 시절 토론 ~ 1기 시절 토론이 끝나지 않은 것이 많아 아직 비대위 종료에 신경쓸 상황은 아닌 것 같습니다.
2. 밀린 안건들 진행 알림
2020년 6월 말에 사무관 되고 3년 가까이 지났지만 그동안 밀려 있던 일에 많이 신경쓰지 못한 점 사죄드립니다. 처음에는 유입을 먼저 늘려야겠다고 생각해서 상품권 이벤트도 해보고 구글 애드센스도 걸어봤는데, 개인사를 처리하면서 2년 동안 지켜보니 그렇게 들어온 유저가 오래 붙어있지 못하고 도로 활동을 중단하는 일이 많았습니다.
그래서 운영 방향을 고민한 결과 일단 사이트가 무엇을 하는지 알려야 한다는 점에서 리버티책의 청사진 문서에서 영감을 받아 1년 단위의 청사진을 먼저 세우고 그 다음 버려진 작업과 필요한 작업을 병행하는 활동 방향을 우선시하기로 하였습니다. 1단계는 다소 급하게 세운 탓에 일부는 작업을 연기하는 일을 하였으나, 게임 엔진 연결 작업 등 제대로 되고 있는 일도 있으며, 그만큼 사용자 활동이 늘어나는 것이 보여서 본격적으로 밀린 안건들을 진행하겠습니다.
- 버려진 게임 관련 토론: 버려진 게임 삭제 정책과 지금 제안된 개발 중단 게임 발전소로 미완성 게임의 처리에 관한 토론을 시작하겠습니다. 삭제 정책의 버려진 게임 관련 토론은 동결 상태를 풀 것이고, 개발 중단 게임 발전소 토론과 공사 기한 종료 게임들 발전소 토론은 의견 표명이 더 필요합니다.
- 양산형 고속도로 게임 정리: 양산형 철도 게임은 일단 1단계 처리는 끝나게 되었는데 양산형 고속도로 게임 역시 정리가 필요하다는 의견이 있어 늦어도 6월 초에는 발전소 문서가 열릴 것이며 더 빠른 진행이 필요하다면 다른 분이 그 전에 열어도 됩니다. 고속도로 게임 목록과 이전에 진행된 발전소 자료 링크를 기반으로 할 것입니다.
- 특집 게임 제도 재활 작업: 방치된 특집 게임 제도에 한번 더 활력을 불어넣는 작업을 하겠습니다. 부족하다 싶은 규칙은 특집 게임 정책 토론 문서에서 처리하고, 기존에 선정된 두 게임의 추천평 작성 진행 및 선정 절차가 도중에 중단된 게임 토론 진행을 마저 하겠습니다.
이에 따라 청사진 일정 조정 토론도 진행되며, 사이트 상단 공지사항이 다시 추가될 것입니다. 관심 있는 참여 부탁드립니다. --Senouis(토론장, 기여) 2023년 5월 1일 (월) 18:02 (KST)
- 아, 그리고 똑같이 유명무실해진 게임제작도움방은 추후 Xash3D 엔진 기반 게임 관련 질의를 받는 형태로 개편하겠습니다. 내년에 다시 활성화시킬 예정입니다. --Senouis(토론장, 기여) 2023년 5월 1일 (월) 18:21 (KST)
잡담이지만[원본 편집]
리버티게임 게임 개수는 600개 근처를 오가는 것 같습니다. 백괴게임 전성기(2018년 정도?)에는 620개까지 갔던 적도 있었는데 그 이후에 삭제조치가 많이 되면서 580개 정도까지 떨어졌다가 지금은 다시 600 초반대네요.
물론 저는 개임 개수보다는 내실을 기하는 걸 더 중요하게 봐야 한다고 생각하고 그래서 개발 중단 게임 발전소도 열고 그랬지만...
최소한 게임 600개 수준을 지키는 게 왠지 중요하게 보인다 해야 할까요.
그냥 그렇습니다. --Malgok1 (토론) 2023년 5월 5일 (금) 20:19 (KST)
- 600보다는 550 사수가 더 나은 것 같습니다. 양산형 고속도로 게임, 일부 부실한 게임을 정리하지 않을 수가 없어서 이번 분기 내 600 사수는 불가능하고, 560 선에서 삭제를 억제하게 될 것 같네요. --Senouis(토론장, 기여) 2023년 5월 13일 (토) 22:19 (KST)
- 흘러가는 상황을 보니 550개도 무너질 것 같네요. 1/5 정도가 숙청되는 셈인데... 비록 양은 깎아먹더라도 부실 게임 전수조사 및 정리 작업이 제대로 이뤄지는 것도 좋을 듯합니다. --Malgok2 (토론) 2023년 5월 28일 (일) 12:31 (KST)
서울 지하철 7호선의 이동 넘겨주기들 삭제 요청[원본 편집]
현재 서울 지하철 7호선의 이동 넘겨주기들(사용자:명진/아라/서울 지하철 7호선과 관련 넘겨주기 문서들)에 대한 삭제가 필요합니다. 그러니까 사용자 문서의 하위 보존 문서의 하위 문서로 이동하면 안되고 사용자 문서의 하위 문서로 이동해야 하는데, 그렇지 않아서 불편이 생깁니다. --명진 (토론) 2023년 5월 8일 (월) 02:28 (KST)
JR 게임즈에 속한 게임 기여가 2년 이상 실질적으로 없어 보존 조치를 하고자 합니다.[원본 편집]
2020년 이래로 JR 게임즈라는 기업형 기여자 그룹에 속한 게임 기여가 2년 이상 실질적으로 없어 저는 그걸 보존: 으로 이동하여 보존 조치를 하고자 합니다. 이에 저는 2023년 5월 30일까지 JR 게임즈 소개 문서를 보존: 으로 이동할지에 대한 의견을 받습니다. --명진 (토론) 2023년 5월 10일 (수) 13:15 (KST)
- 좋은 생각입니다. 덤으로 백괴미리내소프트 이래로 하나의 팀 명의로 제작된 게임이 많아야 2~3개라 아예 팀 제작을 처음부터 고려하는 경우라면 일단 제작하는 게임이 완성되면 즉시 해산시키는 것이 좋겠습니다. 솔직히 지난 10년간 너무 많은 결성과 활동 중단을 봐서 그냥 이렇게 못 박아도 되겠습니다. --Senouis(토론장, 기여) 2023년 5월 13일 (토) 22:42 (KST)
- game.json을 2023년 5월 30일에 자동으로 작성하는 걸로 확인이 되기 때문에 일정을 조정합니다. 의견은 2023년 5월 29일까지 받겠습니다. --명진 (토론) 2023년 5월 28일 (일) 00:35 (KST)
보존 이름공간으로 이동 완료 --명진 (토론) 2023년 5월 30일 (화) 00:06 (KST)
양산형 도로 탐색 게임 처리 발전소 개시[원본 편집]
이제 때가 되었습니다.
양산형 철도게임 1차 정리가 끝나고 이제 슬슬 양산형 도로게임 1차 정리를 시작해야겠습니다. 분량이 장난 아니게 많은데, 대상 게임이 몇십 개나 되니 리버티게임 총 게임 갯수 600선 붕괴는 필연이겠습니다. 일단 전체 게임의 3분의 1에서 절반까지 양산형으로 분류할 수 있을 것 같습니다.
리버티게임:발전소/양산형 도로기행 게임들에서 토의를 지속할 것이며, 철도 게임처럼 2단계로 나누어 처리하겠습니다. 6월 전반부에는 1차를 처치해야 비로소 청사진의 백괴클래식 게임 분류 추가(2012년에서 2015년 사이 양산형 게임을 정리하고 남은 게임에 백괴클래식 분류가 붙을 것입니다)로 넘어갑니다. --Senouis(토론장, 기여) 2023년 5월 14일 (일) 02:50 (KST)
제가 개정한 경의선 게임을 어디에 붙여야 할지 모르겠습니다[원본 편집]
제가 리버티게임:발전소/그저 그런 철도 게임들에서 경의선 게임을 인수해서 원본보다 훨씬 나아졌습니다. 그런데 문제는 이게 전철에 대한 언급은 일언반구도 없던 원본과 달리 전철이 대부분을 차지하고 있습니다. 그런데 또 초반에는 CDC 디젤동차를 타는지라 헷갈리네요. 여러분은 이 게임을 일반철도에 붙여야 한다고 생각하세요, 아님 도시철도에 붙여야 한다고 생각하세요?--Chabiytb0792 (사용자문서/토론/관련링크) 2023년 5월 14일 (일) 08:45 (KST)
앞으로는 어드벤처 게임의 개발을 방치하는 것을 막기 위해 최소한 기획이나 줄거리를 주석으로 써야 일반 문서에서 유지될 수 있도록 합시다.[원본 편집]
앞으로는 함정 카드를 찾아서와 같이 어드벤처 게임을 개발하는 도중 방치하는 것을 막기 위해 최소한 기획이나 줄거리를 주석으로 써야 일반 문서에서 유지될 수 있도록 합시다. 그렇지 않으면 1개월 방치 시 내용이 별반 없거나 IP 사용자면 즉시 삭제를, 일반 사용자면 사용자 문서에 이동할 필요가 있습니다. --명진 (토론) 2023년 5월 19일 (금) 23:52 (KST)
- 그걸로도 좀 모자랄 것 같고, 아예 내용을 더 보강해 좋은 게임을 만드는 방법이라는 지침이 따로 있는 것이 더 좋다고 생각합니다.
방학 중에 게임을 만들다 학기 중에는 쉬고, 그러다 다음 방학에 다시 사이트에 들어오는 것을 잊으면 그대로 게임이 1년 방치가 되는 패턴이 백괴게임 시절에 자주 있었던 걸로 압니다. 이렇게 방학 중에 주로 사이트에 접속하는 타입의 학생 유저가 이용자 층이 될 가능성이 높은 건 리버티게임에도 적용되기에 아예 타인이 인수할 때 그 기획 의도나 개발 방향을 자세히 알 수 있도록 기획서 작성을 장려하는 걸 도움말에 명시하는 방법이 더 좋습니다. 이러면 비단 어드벤처 게임 뿐만 아니라 모든 게임 장르에 걸쳐서 개발 지속성을 높일 것 같네요.
덤으로 양산형 게임 방지를 위해 제가 지금 도로 게임 단체 발전소에 제시한 의견도 추가하면 더 좋을 것 같습니다.
한번 리버티게임: 좋은 게임을 만드는 방법이란 문서를 만들고 지침으로 정할까요?(여담으로, 자매 위키 중 리버티책에 좋은 책을 쓰는 방법이라는 지침이 있는 걸로 압니다) --Senouis(토론장, 기여) 2023년 5월 21일 (일) 14:29 (KST) - 취지에 동의합니다. 전체 게임으로 확대해서 기본적인 진행과 시스템을 게임 대문에서 접근할 수 있는 어딘가에 명시하도록 한는 것도 좋겠네요, 대형 게임은 리버티책 이용을 권장해서 프로젝트 간 연계를 강화하는 것도 생각해볼 만 합니다. --Regurus (토/기) 2023년 5월 26일 (금) 23:32 (KST)
- 대형 게임을 예시로 들었는데요, 이 경우는 저는 방대한 게임 내용을 담는 일정한 형식과 디자인이 있다고 생각합니다. 이를 통틀어 세계관이라고 부릅니다. 하지만 리버티책의 경우 라이선스 문제도 있기 때문에, 차라리 '백괴시티/세계관'처럼 게임의 하위 내용으로 안내하는 것이 좋습니다. --명진 (토론) 2023년 5월 27일 (토) 00:06 (KST)
- 저도 동의합니다. 두 위키가 현재 문서 라이선스가 다른 상태로 운영 중이라 첫 연계 계획이었던 기존 게임의 하이퍼텍스트 문학으로의 이식은 제작자의 라이선스 변경 재배포 동의가 필요하죠. 그래서 대신 게임 제작시 짧은 단편 소설을 연재하는 형태로 미디어믹스 확장을 할 때 리버티책 연계를 유도하는 것이 좋겠습니다. --Senouis(토론장, 기여) 2023년 5월 27일 (토) 01:15 (KST)
- 이 주제와 관련해서, 저는 위키시대를 예시로 하여 게임 기획을 하지 않고 게임을 만들다 말면 어떻게 되는지에 대한 것이 필요하다고 생각합니다. 따라서 위키시대는 보존처리하여 반면교사로 삼는 것이 좋겠습니다. --명진 (토론) 2023년 5월 27일 (토) 00:06 (KST)
- 이건 해당 발전소 문서에서 동의 의견을 남기겠습니다. 그보다 토론이 토론 이름공간에서 진행할 법한 수준으로 많아져서, 해당 지침의 토론 문서에서 논의를 재개하겠습니다. --Senouis(토론장, 기여) 2023년 5월 27일 (토) 01:15 (KST)
- 찾아보니 리버티게임:어드벤쳐 및 도시생활 게임 관련 규칙이 이미 마련되어 있습니다. 저 지침을 어드벤처 게임 전체로 확대하면 저질 게임 난립을 줄일 수 있을 듯합니다. --Malgok2 (토론) 2023년 5월 27일 (토) 20:13 (KST)
설치형 게임들[원본 편집]
지금 Will It Blend? PC 버전과 백괴 RPG 게임을 플레이할 수 없습니다. 백괴 RPG는 아예 사이트 페이지부터 날라갔고 Will It Blend? PC 버전은 가상머신에다가 원하는 것 다 세팅 해줬는데도 서버에 연결할 수 없다고만 뜨고(아마 백괴게임 서버를 불러오려다 실패하는 듯 합니다) 그러네요. 이 게임들을 어떻게 해야 할까요?--Chabiytb0792 (사용자문서/토론/관련링크) 2023년 5월 25일 (목) 21:47 (KST)
- 이때는 게임 설명이라도 있으니 보존하는 게 정답입니다. --명진 (토론) 2023년 5월 25일 (목) 23:59 (KST)
- 네, 저도 백괴 RPG를 어찌할까 생각했는데 제작자 사문 공간으로 옮겨야겠습니다. 여담이지만 어차피 사이트가 비영리를 지향하기에 PC 게임을 제작할 경우 제작자 크레딧을 첨가하면서 프로젝트를 GitHub 같은 곳에 오픈 소스로 공개했으면 좋겠네요. --Senouis(토론장, 기여) 2023년 5월 26일 (금) 14:43 (KST)
20230526 업데이트[원본 편집]
이달 말의 업데이트입니다.
1. Xash3D 이식 프로세스 보고
이번 달은 원래 Xash3D가 리버티게임에서 돌아갈 때 문제가 되는 부분을 조사하고 그에 맞게 C++ 코드 및 JS 기반 Wrapper 코드를 수정하는 일을 진행하게 되어 있습니다. 이 작업 역시 개인 사정상 지연이 되었는데, 사용 중인 리눅스 태블릿에 뭔가 OS 차원의 문제가 있는지 해당 기기에서 HTML 캔버스 요소의 마우스 이벤트를 제대로 처리하지 못하는 문제가 있어 가족에게 잠시 빌려주었던 윈도우 PC를 다시 쓸 수 있을 때까지 정확한 문제 파악이 힘들었습니다. 며칠 전에야 비로소 돌려받을 수 있었기에 테스트를 해보았고, 이에 따라 문제가 되는 부분을 3가지 발견하였습니다.
상당히 쉬운 첫째 문제로, 현재의 컴파일된 코드는 개발자용 디버그 모드가 기본적으로 켜졌는지 게임을 할 때 UI 상단에 각종 콘솔 알림 문자열로 도배가 됩니다. 이건 그냥 개발자용 디버그 출력을 끄면 되는 일이라 금방 끝납니다.
둘째로 현재 컴파일한 코드는 IndexDB 등을 아직 활용하지 않아 멀티플레이어 항목 진입시 매번 플레이어 이름을 물어보는 과정이 있습니다. 일단 Xash3D 가젯은 현재 로그인한 사용자만 사용할 수 있어 유저 사칭 문제도 막을 겸 리버티게임 사이트의 닉네임을 끌어오는 방안을 생각 중입니다. 그러면 모든 Xash3D 기반 게임은 계정명을 개인정보로 수집한다고 명시해야 합니다. 이건 지금은 아직 개발 작업이 끝나지 않아 청사진 토론이나 토론란 문서에 회부하는 것이 곤란할 정도로 사소하지만 완성 이후 사용 과정에서는 토론란 회부가 필요할 수 있어 여기서 간단히 찬반 의견만 묻겠습니다.
마지막으로 Xash3D 플러그인 웹 사이트 구동 과정에서 브라우저 단축키 입력 이벤트를 Emscripten으로도 막지 못합니다. 특히 Ctrl 키(3D 게임에서 보통 웅크리기 기능을 구현할 때 해당 키를 씁니다)를 WASD 키들과 함께 누르는 것과 Esc 키가 전체화면을 강제로 해제하는 부분이 심각한 문제인데, 이 부분은 브라우저 동작이 자바스크립트 동작에 선행하는 것이 당연하기 때문에 근본적인 대책이 없습니다.
일단 임시 방편으로 저작권 문제를 제거한 레퍼런스 애셋을 배포할 때 웅크리기 기능을 Shift 키(마인크래프트의 기본 웅크리기 키이기도 합니다)로 변경하고, 콘솔 출력은 별도의 렌더링 요소로 빼고 기존의 콘솔 창 단축키였던 `키를 Esc 키가 담당하던 일시 정지 메뉴 토글 키로 쓰도록 gfx/shell/kb_def.lst 파일을 수정할 예정입니다. 일단 레퍼런스 게임이 하나 기획 중이기에, 해당 게임은 레퍼런스 애셋을 적용할 것이며 애셋 관련 매뉴얼을 작성할 때 Ctrl 키와 Esc 키는 사용하지 말라는 항목이 추가될 것입니다.
2. game.json 자동 추가 작업 예정
현재 Hsl0님이 마지막 기여로 게임 목록 문서에서 자동으로 게임 정보를 추출하는 JS 코드를 작성하신 상태입니다. 이걸 관리자가 브라우저 콘솔창으로 붙여넣은 뒤 기능을 호출하면서 자동으로 편집을 시도하는 구조인데, 이것이 서버에 높은 부하를 줄 수도 있고, 지금 부실 게임 정리 작업이 진행 중이라 위의 개인사 문제와 겹쳐 지금까지 작업 진행 확정을 못했습니다. 그러나 지금 발전소에서 몇 개의 게임의 처분이 곧 결정될 것으로 보여, 해당 게임들이 5월 29일 처분이 확정되는 대로 말일 전까지 해당 코드를 돌리는 것을 진행하겠습니다. 장르 분류는 거의 수동으로 변경해야 하니 현재 회부된 장르 재분류 토론에서 총의가 모이면 그때 추가로 변경하겠습니다. 해당 토론란 의제에 많은 관심 부탁드립니다.
3. 청사진 일정 조정 확정 알림
현재 청사진의 1단계 항목은 제가 혼자서 진행하는 것뿐이라 큰 문제가 없다면 일정 변경 내용을 그대로 확정할 예정입니다.
여기까지가 이 달의 업데이트입니다. 아래 문단에 의견 부탁드립니다. --Senouis(토론장, 기여) 2023년 5월 27일 (토) 00:20 (KST)
간단한 의견 조사 문단[원본 편집]
- 리버티게임 내에 배포된 Xash3D 기반 게임에서 자동으로 사이트 계정 닉네임을 가져오도록 엔진을 수정하는 것이 좋은가?
게임 기획 문서 작성에 도움이 될 수 있을 법한 예시 소개 및 프로젝트 소모회복 소개[원본 편집]
2023년 5월 막바지에 접어들었습니다. 저는 리버티게임에서도 활동 중이라 작은 선물로 프로젝트 소모회복을 소개하고자 합니다. 내용이 길어서 사용자:명진/프로젝트 소모회복을 별도로 참조해주세요. --명진 (토론) 2023년 5월 27일 (토) 03:52 (KST)
한 가지 질문이 있습니다. 그 게임은 행동을 함으로써 에너지를 1씩 소모하는 것인데, 이럴 때는 게임 장르가 롤플레잉에 해당됩니까? 저는 롤플레잉의 최소한의 요소만 사용했기 때문에 파티플레잉이라고 부르고 있습니다. --명진 (토론) 2023년 5월 30일 (화) 03:58 (KST)
리버티게임:이슈 보고하기를 만들고자 합니다.[원본 편집]
게임을 개발하다 보면 버그나 글리치와 같은 이슈가 생길 수 있습니다. 이 때 게이머는 게임을 하다가 이와 같은 이슈가 발견되면 이를 보고하면 개발자가 이슈를 수정하는 데 도움이 될 수 있습니다.
이슈를 보고하는 방법은 게임의 첫 화면의 토론의 이슈 보고하기 문단에 버그나 글리치가 발생하는 현상과 이 순서들을 재현하는 방법을 씁니다. 그렇다면 개발자가 이를 보고 이슈를 재현한 다음 이를 수정할 것입니다.
새로운 게임을 개발하는 개발자들은 해당 게임의 첫 화면에 주시문서 목록에 추가할 것을 권장합니다. 해당 게임의 새로운 이슈를 최근 바뀜에서 보기 편해집니다.
이게 리버티게임:이슈 보고하기의 초안입니다. 아니면 리버티게임:게임 만들기에 병합할 수 있는 내용입니다. --명진 (토론) 2023년 5월 27일 (토) 21:27 (KST)
문서 이동 요청[원본 편집]
북조선 철도/부흥역, 북조선 철도/봉화역, 북조선 철도/보통강역, 북조선 철도/평양역 네 문서를 사용자:Kjunjoel/북조선 철도 하위 문서로 이동해주시기 바랍니다. 대문만 사용자 하위 문서로 가 있네요. --Malgok2 (토론) 2023년 5월 29일 (월) 18:59 (KST)
game.json 추가 매크로 작업이 완료되었습니다.[원본 편집]
이제 게임 목록 문서를 작성하면 됩니다. 모듈:Metadata의 기능을 최대한 활용하여 서버에서 먼저 걸러내도록 해야 하는데, 모듈은 invoke 파서 훅으로 기능 호출이 가능한 것으로 압니다. {{#invoke:Metadata|(파라미터1)|(파라미터2)|...}} 이런 식으로요. 다만 설명 문서가 아직 작성되지 않아 Lua를 좀 봐가면서 해석해야 할 것 같습니다. 일단 잠깐 보니까 받은 인자를 frame이라 하며 p 데이터에 적용하고 가공하여 반환하는 구조인 것 같네요.
그리고 매크로 작업 직후 발견한 사실인데, 현재 리버티게임 분류가 붙은 575개의 게임 중 60% 정도 되는 359개만 game.json 파일이 붙었습니다. 나머지 40% 정도는 리버티게임 분류만 붙고 게임 목록에서 숨어있는데요, 이들 중 일반 이름공간에 있는 것들을 추적하는 일은 청사진에 마땅히 올려야 할 작업이나 Phase 1을 또 변경하는 게 좀 곤란하여 분량을 감안해 Phase 2의 시작(2024년 1월)부터 하겠습니다. --Senouis(토론장, 기여) 2023년 5월 30일 (화) 03:39 (KST)
- 잘 하셨습니다. 저는 거기에 게임의 세부 내용을 볼 수 있도록 리버티게임:게임 목록/세부를 하나 만들어서 현재 제 사용자 문서에 이를 링크로 적용시켜봤으나 URL 변수가 URL 디코딩이 되지 않아 이 내용을 확인할 수 없습니다. 해당 문서는 디자인을 F-Droid와 구글 플레이 스토어의 디자인을 참조하는 것이 좋겠습니다. --명진 (토론) 2023년 5월 30일 (화) 03:46 (KST)
사이트 성능 문제 및 개선 방안 제안[원본 편집]
관리자요청이 없는것같아 여기다 남깁니다.
사이트 로딩속도와 관련해 이슈가 있습니다. 페이지 로딩시마다 약 1-2초가량 아무런 페이지 조작이 불가한게 그것입니다. 원인을 찾아보았더니 ext.gadget.PluginX가 사용자 문서의 pluginX.json을 매 페이지 로딩마다 가져오는 것이 원인인 것으로 파악됩니다.
제가 미디어위키에 해박하지는 않지만, 아래에 제시된 두 가지 해결 방안을 고려해 보시면 도움이 될 것으로 생각합니다. 각 해결 방안에 대한 이해는 전문적인 지식을 필요로 할 수 있습니다.
- pluginX.json을 기본적으로 비활성화하고, 필요한 페이지에서만 활성화하는 방법
- 미디어위키의 리소스 로더를 개선하는 방법:
- 미디어위키의 리소스로더가 ES6 이상 버전을 지원하도록 1.36 이상으로 버전을 업그레이드
- 혹은, 미디어위키의 자바스크립트 리소스 로더의 유효성 검사를 해제 (XSS 공격의 위험성 때문에 주의가 필요)
- 미디어위키:Common.js에서 MediaWikiAPI 네임스페이스의 readDocument 함수를 async-await를 사용한 AJAX 비동기 함수로 전환 (이 경우, changeDocument, addDocument 등의 문서 CRUD 함수도 모두 변경하는 것이 좋습니다.)
- pluginX.json를 포함한 해당 함수를 사용하는 문서/가젯/js문서들을 모두 비동기식으로 변경
- 미디어위키의 리소스로더가 ES6 이상 버전을 지원하도록 1.36 이상으로 버전을 업그레이드
이 문제에 대한 기술 지원이 필요하다면 언제든지 도움을 드리겠습니다. 문제가 해결되어 모든 사용자들이 원활하게 이용할 수 있기를 바랍니다. --BANIP (토론) 2023년 5월 31일 (수) 20:04 (KST)
- 오랜만입니다.
일단 문제 제보에 감사드리며 PluginX까지는 ip유저에게 개방하고자 하니 비동기 통신으로 전환하는 안을 고르겠습니다. 이 요청이 거부된 것으로 봐서 ES6는 백엔드, 즉 Miraheze 서버 컴퓨터 내의 JS 코드 단계에만 작동하는 것으로 보여 클라이언트에게 노출되는 common.js에서 작동시키는 건 불가능할 것 같고, PluginX 틀이 있는 문서에서만 PluginX.json 로딩하고 비동기 통신 전환을 진행하겠습니다. 전자는 c_pluginX class가 지정된 span 태그 유무를 검사하면 될 것 같고, 후자는 mw.Api.get()이면 되려나요?--Senouis(토론장, 기여) 2023년 5월 31일 (수) 22:03 (KST)- 관심에 감사드립니다. 미디어위키 레퍼런스 참고해서 검토해보았는데 mw.Api로 대체해도 문제없을 것 같습니다. 대체하게되면 제가 이전에 만든 기존 Plugin 가젯또한 페이지 로딩 시 리소스를 잡아먹는걸로 확인이 되는데 마찬가지로 수정이 필요할 것 같습니다.
- 추가적으로 필요하시면 사용할 수 있게 mw.Api를 사용해 개선한 MediawikiAPI 함수를 사용자:BANIP/common.js에 올려놨습니다. 더 나은 개선사안이 있으시면 해당 함수를 수정하여 사용하셔도 무방합니다. 비동기로 교체해야 될 필요성이 있고 해당 함수를 사용하는 문서들과 수정해야할 내용이 파악이 되면 미디어위키:common.js에 반영하셔도 될 것 같습니다. 그리고 기존에는 플러그인 가젯들이 common.js의 MediawikiAPI 함수를 사용했었습니다. 그러나 가젯에 사용되는 함수들이 common.js 파일에 의존하도록 두는것은 차후에 유지보수를 어렵게 만드는 원인이 될 수 있으므로, 가젯의 경우 MediawikiAPI 대신 mw.Api의 사용을 권장합니다. --BANIP (토론) 2023년 5월 31일 (수) 23:57 (KST)
game.json의 도입 목적인 게임 목록의 빠른 로드를 할 수 있어야 한다고 생각합니다.[원본 편집]
그동안 게임아이콘은 게임을 틀로 불러와서 틀의 파서 처리 및 아이콘을 렌더링하느라 시간이 오래 걸렸습니다. game.json을 사용한다면 가능하다면 게임 목록을 캐시로 사전에 처리하여 게임 목록에서는 이 캐시를 불러오는 것이 서버의 부하를 줄이는 데 도움이 될 것이라 저는 생각합니다. 아니면 최신 자료를 불러오고자 하는 경우 모듈을 통해 부하를 줄이는 게 맞다고 저는 봅니다. --명진 (토론) 2023년 5월 31일 (수) 23:16 (KST)
- 서버 동작을 클라이언트 단에서 제어할 방법이 구조가 복잡한 wikibase 접근 - Scribunto 루아 모듈 기능이 필수 - 을 제외하면 한정적이라 API search query로 game.json이 있는 게임 제목의 리스트를 최초로 게임 목록 문서를 봤을 때 가져온 뒤 LocalStorage에 저장해서 게임 목록에 변동이 있을 때에만 리프레시를 하고 예외적인 상황을 감안해 48시간마다 강제 리프레시를 거는 방법을 현재 시도해볼 수 있을 것 같습니다. 성능 향상은 루아 모듈을 제대로 다룰 줄 아시는 Hsl0님이 휴식하는 현재엔 완성되어 있는 Metadata 모듈로 미리 게임 정보를 정리한 다음 깔끔하게 클라이언트에게 보내는 선에서만 동작할 것 같고 일단 game.json의 작성을 강제하면 나머지는 알아서 게임 목록에서 자동으로 처리하도록 하는 UI 기능의 변화에 초점을 맞추게 될 것 같습니다. --Senouis(토론장, 기여) 2023년 6월 3일 (토) 01:05 (KST)