저희는 Godot에서 전환하기로 하는 매우 어려운 결정을 내렸지만, 흥미로운 계획들을 준비하고 있습니다. 아래의 "감사 인사 및 기술적 회고 (Thank You & Technical Reflections)"를 확인해 주세요.
저희의 V2 발표는 Discord에서 가장 먼저 진행될 예정입니다: https://mirrorengine.io/discord
V2 발표 이후, 현재의 코드 기반은 이 저장소(repo) 내의 /mirror-classic으로 이동하며, "Mirror Classic"은 Godot 코드를 지칭하게 됩니다. Mirror Classic은 허용적인 MIT 라이선스를 유지할 것이며, V2의 일부는 오픈 코어 (open-core) 방식으로 운영될 계획입니다.
가장 쉬운 방법은 저희가 컴파일한 Mirror Official 앱을 사용하는 것입니다: 시작하기 (Get Started)
문서 사이트 (/mirror-docs)가 이 README가 아닌, 문서화를 위한 저희의 주요 진실의 원천 (source of truth)입니다. 문서화는 방대하게 이루어지고 있으며 앞으로도 계속될 것이기에, 저희는 이 README를 간결하게 유지할 계획입니다.
(실제) 실시간 게임 개발 (Real-Time Game Development): 영화 인셉션(Inception)처럼, 친구, 동료, 플레이어들과 함께 실시간으로 세계를 구축하는 것이 목표입니다. 저희의 접근 방식에 대한 자세한 내용은 블로그에서 확인하세요.
올인원 게임 개발 (All-in-one game development): Mirror는 에디터(editor)이자 게임 그 자체이며, 게임, 디지털 경험, 가상 세계 등을 빠르게 제작하고 플레이하는 데 필요한 모든 것을 즉시 제공합니다.
에디터 (Editor): 내장형 및 네트워크 연결형: 실시간으로 구축할 수 있는 가볍고 실시간적인 멀티플레이어 에디터입니다.
물리 엔진 (Physics): Horizon Zero Dawn에서 사용된 AAA급 물리 엔진인 Jolt를 통해 제공됩니다.
고급 네트워킹 (Advanced networking): 게임의 동기화를 유지하고, 동기화가 어긋날 경우 되감기 (rewind) 기능을 제공합니다.
비주얼 스크립팅 (Visual scripting): 코딩을 모르더라도 게임 로직을 빠르고 쉽게 구현할 수 있습니다.
전통적인 코딩 (Traditional coding): 게임 코드 내에서 즉시 수정할 수 있는 GDScript 인월드 에디터 (in-world editor)를 제공합니다.
GDScript가 처음이라면, Python과 유사하여 초보자에게 매우 친숙하며 배우기 쉽습니다.Material editor (재질 에디터): 재질(material)을 변경하기 위해 에디터를 종료할 필요가 없습니다. 모든 작업이 실시간(real-time)으로 이루어집니다.Shader editing (쉐이더 편집): 향후 텍스트를 이용한 실시간 쉐이더 편집 기능이 제공될 예정입니다.Asset management (에셋 관리): 에셋은 클라우드 또는 로컬 저장소(자체 호스팅)에 자동으로 저장되므로, 에디터를 재시작할 필요 없이 실시간으로 워크플로(workflow)를 간소화할 수 있습니다. 번거로움이 훨씬 적고 팀원들과의 협업이 용이합니다.Open asset system (개방형 에셋 시스템): GLTF를 기반으로 구축된 The Mirror는 Blender에서 직접 시트(seats), 조명(lights), 장착 가능 아이템(equipables), 커스텀 물리 모양(custom physics shapes)을 지원합니다.Mirror UI elements (Mirror UI 요소): 상태(state)를 성능 저하 없이 복제하면서 모든 데이터를 UI 요소에 쉽게 매핑할 수 있는 테이블 클래스(table class)를 포함합니다.Collision shape generation (충돌 모양 생성): 볼록(convex) 및 오목(concave) 모양을 모두 지원합니다.Audio (오디오): 별도의 에디터를 열거나 재컴파일(recompile)할 필요 없이 게임에 오디오를 실시간으로 쉽게 추가할 수 있습니다.Player controllers (플레이어 컨트롤러): FPS (1인칭 슈팅), TPS (3인칭 슈팅), VR (가상 현실)을 즉시 사용할 수 있도록 지원합니다.VR-ready (VR 지원): 플레이할 때 유선 헤드셋을 착용하기만 하면 됩니다! Meta Quest 2 및 3로 테스트를 완료했습니다.Intentional architecture (의도된 아키텍처): (Space)Objects는 향후 모든 유형의 Godot 노드(node)를 지원하는 것을 목표로 하는 단순한 게임 오브젝트 추상화(game object abstraction)입니다.Bidirectionality with Godot (Godot와의 양방향성): The Mirror에서 시작하여 Godot에서 끝낼 수도 있고, Godot에서 시작하여 The Mirror에서 끝낼 수도 있습니다. 우리의 목표는 두 환경 사이를 쉽게 전환하거나 나란히 개발할 수 있도록 만드는 것이며, 선택은 여러분의 몫입니다.Godot plugin (Godot 플러그인): 출시 예정
1. Discord 참여하기
2. 문서 읽기: 사이트, monorepo /mirror-docs
3. 오픈 소스 발표 게시물 확인하기
The Mirror는 Godot을 기반으로 구축된 올인원(all-in-one) 게임 엔진이자, Roblox 및 UEFN의 대안입니다.
목표는 영화 인셉션(Inception)처럼 에디터(editor)와 게임이 모두 되는 것입니다. 즉, 친구들과 실시간으로 세계를 구축하는 것입니다. 이를 통해 엄청난 양의 작업을 절약할 수 있습니다. 인프라(infrastructure), 백엔드 HTTP 경로(backend HTTP routes), 웹소켓(websockets), 에셋 관리(asset management), 인증(authentication), 네트워크 동기화(netsync), 그리고 다양한 시스템을 처음부터 구축해야 하는 걱정을 하지 않아도 됩니다.
이 저장소(repo)는 The Mirror의 소스 코드입니다. Godot 앱(클라이언트/서버), 웹 서버(web server), 그리고 문서(docs)가 한곳에 모여 있습니다. 여러분이 최대한 빠르게 게임을 제작할 수 있도록 저희가 제공할 수 있는 모든 것을 포함했습니다.
- 저장소를 Git clone 하세요 (서브모듈(submodules)을 함께 clone 할 필요는 없습니다. 선택 사항입니다).
- 미리 컴파일된 Godot 엔진의 Mirror 포크(fork) 버전을 빌드하세요: https://github.com/mirror-engine/godot
- Godot 에디터(The Mirror 포크 버전)를 열고, import를 클릭한 뒤
/mirror-godot-app 폴더에 있는 project.godot를 선택하세요. 만약 팝업창이 뜨더라도 안심하고 무시한 채 진행하셔도 됩니다.
- 모든 파일이 임포트되었으므로, 모든 것이 올바르게 로드되는지 확인하기 위해 Godot 에디터를 닫았다가 다시 여세요.
- Godot 에디터에서 재생(play) 버튼을 누르세요!
- 새로운 스페이스(Space)를 생성하면 자동으로 해당 스페이스에 참여하게 됩니다. 또는 기존의 스페이스에 참여할 수도 있습니다.
The Mirror는 Godot의 커스텀 포크(custom fork)를 기반으로 구축되었으며, The Mirror의 코드를 사용하려면 이 포크가 필요합니다. 해당 포크는 오픈 소스이며 여기서 확인할 수 있습니다.
분석(Analytics) 면책 조항: 저희는 Posthog와 Mixpanel을 사용하며, 오픈 소스 저장소에서 자동으로 분석 데이터를 수집합니다. mirror-godot-app/scripts/autoload/analytics/analytics.gd 파일의 메서드들을 주석 처리함으로써 이를 수동으로 비활성화할 수 있습니다. 현재 Posthog에서 Mixpanel로 전환 중이며, Posthog는 향후 릴리스에서 제거될 예정입니다. 추후에는 비활성화가 더 쉽도록 개선할 것입니다. 미국 델라웨어주 법인인 The Mirror Megaverse Inc.는 Posthog 및 Mixpanel 인스턴스의 데이터 컨트롤러(data controller)입니다. 여러분은 자유롭게 분석 기능을 비활성화할 수 있으며, 심지어 여러분의 게임 분석 데이터를 직접 캡처하기 위해 본인만의 Posthog 또는 Mixpanel API 키를 연결할 수도 있습니다!