오프라인 모드
”오프라인”이 실제로 의미하는 것
GDLauncher의 오프라인 동작은 세 가지 다른 네트워크 필요에 따라 달라집니다:
- Microsoft 인증 (Mojang 서버에 Minecraft 소유 증명).
- 모드와 에셋 다운로드 (CurseForge, Modrinth, Mojang 라이브러리 CDN).
- GDL 계정 기능 (인스턴스 공유, 프로필, 표시명 기록 등).
각각이 오프라인에서 다르게 실패하고, 런처의 행동도 그에 맞게 다릅니다.
설치된 인스턴스를 오프라인에서 실행
가장 흔한 시나리오: 비행기 안, 산장, 집 인터넷이 끊김, 이미 설치된 걸 플레이하고 싶음.
대체로 작동합니다. GDLauncher가 실행에 필요한 데이터를 캐시하기 때문에:
- Mojang 인증 토큰이 만료 시각과 함께 로컬에 저장.
- Minecraft 라이브러리와 에셋이 이미 디스크(런타임 경로)에 있음.
- 모드 인스턴스는 모드도 로컬에 설치되어 있음.
오프라인에서 Play를 누르면 런처가:
- 활성 Microsoft 계정의 Minecraft 인증 토큰이 아직 유효한지(만료되지 않았는지) 확인.
- 유효하면 그 토큰으로 Minecraft를 직접 실행. Minecraft 자체는 싱글플레이어 월드 실행에 인터넷이 필요하지 않습니다.
- 액세스 토큰이 만료되었지만 리프레시 토큰이 여전히 유효하면, 런처가 Microsoft의 리프레시 엔드포인트를 호출하려 시도하는데 인터넷이 필요. 오프라인이면 이 호출이 실패하고, Settings → Accounts에서 그 계정 상태가 “expired”로 바뀝니다.
- 계정이 만료된 상태로 Play를 누르면 런처가 Account Expired 모달을 띄웁니다. 버튼은 두 개: Launch anyway(캐시된 토큰으로 실행, 싱글플레이어에는 충분), Back to login(Microsoft 사인인 플로우로 보냄, 인터넷 필요).
즉 싱글플레이어라면 ‘Launch anyway’가 마지막으로 온라인이었던 게 언제든 작동합니다. Minecraft 실행 후에는 어떤 것도 토큰을 검증하지 않기 때문입니다. Mojang을 통해 신원을 검증하는 멀티플레이어 서버에는 만료되지 않은 토큰이 필요하고, 그건 즉 최근에 온라인이어서 갱신했어야 한다는 뜻입니다.
토큰이 만료되는 이유
이건 Microsoft와 Mojang 인증 서버에서 정해진 것이지 GDLauncher 선택이 아닙니다. 인증 체인은 런처에 중요한 토큰 두 개를 만들어냅니다:
- Microsoft OAuth 액세스 토큰 (~1시간). 런처가 Microsoft / Xbox / Mojang 인증 API와 통신하는 데 사용. 단명하지만 온라인이라면 자동으로 리프레시 토큰으로 갱신되어 거의 의식하지 못합니다.
- Minecraft 인증 토큰 (~24시간). 실행 시 Minecraft에 전달되므로 이게 오프라인 플레이를 좌우합니다. 온라인 동안 런처가 만료 약 12시간 전에 사전 갱신.
Microsoft 리프레시 토큰은 몇 달 살지만, Microsoft 비밀번호 변경, 새 보안 기능 활성화, Microsoft 웹사이트에서 사인아웃 등으로 서버 측에서 무효화될 수 있습니다. 오프라인 중에 리프레시 토큰이 무효화되면, 다시 온라인이 되어 재인증할 때까지 런처가 할 수 있는 일이 없습니다.
멀티플레이어 서버에 오프라인으로 참여
작동하지 않습니다. 멀티플레이어 서버는 Mojang의 세션 서버에 대해 신원을 검증하며, 이는 양쪽에서 인터넷이 필요합니다. LAN 멀티플레이어는, 두 머신이 모두 최근에 온라인에서 인증했다면 같은 오프라인 LAN에서 작동할 수 있습니다.
새 인스턴스/모드/모드팩을 오프라인에서 설치
작동하지 않습니다. 모든 설치 흐름이 CDN에서 다운로드합니다:
- 모드팩이 매니페스트와 개별 모드 파일을 받아옴.
- Addons 탭에서 모드를 추가하면 JAR이 다운로드.
- 가지고 있지 않은 Minecraft 버전의 커스텀 인스턴스를 만들면, 그 버전의 JSON 매니페스트, 버전 JAR, 에셋, 모드 로더 설치 프로그램을 다운로드.
전부 오프라인에서는 timeout이나 DNS 에러로 실패합니다. 런처는 무한정 재시도하지 않으며, 인스턴스 생성 모달이나 Tasks 패널에 실패가 표시됩니다.
오프라인 환경으로 갈 예정이라면 출발 전에 즐길 인스턴스를 미리 설치하세요.
GDL 계정 기능 오프라인
거의 작동하지 않습니다. GDL 계정 기능은 본질적으로 “GDL 백엔드와 대화하기”이기 때문. 구체적으로:
- 인스턴스 공유(코드 생성): 실패, GDL 서비스에 도달할 수 없음.
- 공유 인스턴스 가져오기: 같은 이유로 실패.
- GDL 프로필 편집: 실패.
- 공유 목록 보기: 캐시된 상태 표시, 갱신 불가.
런처는 오프라인 동안에도 GDL에 사인인된 상태를 기억하지만, UI는 오래된 데이터를 보여주고 네트워크 호출이 필요한 동작을 거부합니다.
요약
- 설치된 인스턴스, 새 토큰: 오프라인 실행 가능.
- 설치된 인스턴스, 만료된 토큰: 런처 프롬프트 표시, 싱글플레이어라면 ‘Launch anyway’ 선택.
- 만료된 토큰으로 멀티플레이어: 갱신을 위해 Microsoft에 도달할 때까지 차단.
- 다운로드가 필요한 모든 것: 차단.
- GDL 백엔드와 통신해야 하는 것: 차단.
- 싱글플레이어 월드: 인스턴스가 디스크에 있는 한 100% 오프라인 가능.