리버티게임:도움방/자바스크립트 엔진 구상

리버티게임, 모두가 만들어가는 자유로운 게임
참고: 이 주제는 310일동안 편집되지 않았으므로 이 주제는 보존된 것으로 간주됩니다. 정말로 답변이 필요한 주제가 아니라면 추가하지 마세요.

발의[원본 편집]

초기 계획(취소 및 대체됨)[원본 편집]

네, 자바스크립트 엔진인 가칭 LibertyDevelop의 개발에 관한 도움방입니다.

현재 GDevelop의 IDE를 포크한 Github 저장소가 열려있는 상황입니다. 해당 IDE는 Node.JS에 React를 써서 구현된 것으로 확인되었습니다. 포크를 취소하고 바닥부터 쌓아올리는 것으로 개발 방향을 바꾸었습니다. Xash3D 청사진으로 대체되었습니다. 아래 3단계 단락을 참조해주세요.

언리얼 엔진을 만져보고 3D 슈팅게임 프레임워크를 짜고 있는 입장에서 어떤 기능이 자바스크립트 게임엔진에 필요할지 감은 들지만 정확히 어떤 요소가 들어가야 할지는 다양한 게임 엔진의 기능을 뜯어봐야 알 것 같습니다. 그리고 그 결과물을 Xash3D에 이식할 예정입니다.

그리고 WYSIWYG(What You See Is What You Get, 해석하자면 보이는 대로 만들어진다 정도 되겠습니다)이 가능한 게임 에디터를 상기 저장소를 기반으로 만들고자 합니다. 다만 백엔드로 UI를 구현하기 때문에 이걸 프론트엔드 기반으로 갈아엎는 과정에서 어마어마한 시간이 소요되거나 아니면 아예 별도의 호스팅을 하는 웹앱으로 분리독립할 수 있습니다.

게임 엔진 제작 중 필수적 기능임에도 제가 놓친 기능이 있다면 어떤 요소가 추가되어야 할지 여기서 말해주세요. 일단 2D, (제한적으로)3D 게임 모두 구현해내는 것이 목표입니다.

엔진 개발에 직접 도움을 주고 싶은 분은 제게 Github 아이디가 되는 이메일을 주시면 상기 저장소 협업자 리스트에 추가해드립니다. --Senouis (토론) 2020년 12월 24일 (목) 11:06 (KST)

추가로 대부분의 요소는 Web API들을 구현해내는 데에 중점을 두겠지만 그 요소들을 조합할 프로그래밍 모델에 관해서는 제가 개발중인 Xen2K의 프로그래밍 모델을 사용하고자 합니다. 난해한 프로그래밍 언어인 Java2K를 결정적으로 동작하도록 개조한 녀석이라 문법이 백괴스럽지만, IDE 구상중 WYSIWYG을 구현해 낼 비주얼 스크립팅에는 적합한 모델이라 생각되어 해당 언어의 구조를 채용하겠습니다.
그리고 로고 개조할 분이 필요해서 디자인 및 드로잉 관련해서 필수 한 분 모집합니다. 제가 로고를 직접 만들면 공돌이 감성이 충만할 것 같습니다. --Senouis(토론장, 기여)2021년 8월 20일 (금) 11:55 (KST)

Xash3D 청사진으로의 대체 알림[원본 편집]

Crystal multimedia.png 현재 이 프로젝트는 Xash3D를 포팅하는 것으로 대체되었으며, 소스 엔진용 모델을 가져오기 위해 VTFLibemscripten 컴파일이 가능한 libsquish로 개조해 가져오는 작업을 기획 중입니다.

한편 제가 지금 Rust 프로그래밍 언어를 공부하기 시작했는데 rustup으로 Emscripten을 사용 가능한 것이 확인되어 이쪽을 활용해 프론트엔드 게임 에디터를 작성하는 방법을 생각하고 있습니다. 기존의 Parse Tree 기반 에디터는 이해가 어려울 것 같아, 그냥 언리얼 에디터처럼 Syntax Diagram 구성 방식의 비주얼 스크립팅으로 변경할 것입니다(이러면 언리얼 에디터 코드를 참고 자료로 사용하는 것도 가능합니다) 마침 독립 서버로 오기도 해서, 아예 리버티게임 전용 확장 기능으로 만드는 것도 가능하고요. 다만 일단은 레퍼런스 게임 제작이 선행되어야 하기에 Phase 2~3 이후로 확정적으로 미뤄두었을 뿐입니다. --Senouis(토론장, 기여) 2023년 7월 15일 (토) 08:44 (KST)

토론[원본 편집]

발제 후 토론 진행이 아예 안 되고 있네요... --Malgok2 (토론) 2023년 5월 31일 (수) 20:14 (KST)
이건 청사진 Phase 2에서 본격적으로 다루어질 내용이라 지금은 달 단위로 의견을 업로드해도 괜찮을 겁니다. --Senouis(토론장, 기여) 2023년 7월 15일 (토) 08:44 (KST)