Files
minecraft_launcher/README.md
claude-bot 24a0569fb4
Some checks failed
Build / release (macos-latest) (push) Has been cancelled
Build / release (ubuntu-latest) (push) Has been cancelled
Build / release (windows-latest) (push) Has been cancelled
Windows Smoke Test / windows-smoke (push) Has been cancelled
Add launcher catalog workflow and smoke tests
2026-05-04 14:06:05 +09:00

3.0 KiB

Minecraft Launcher

Electron 기반 커스텀 마인크래프트 런처입니다. MRSLauncher를 최신 소스로 가져온 뒤, 단일 모드팩 구조를 설치 페이지 + 라이브러리 구조로 확장했습니다.

현재 상태

  • 여러 프로필을 설치 페이지에서 라이브러리로 추가 가능
  • 프로필 종류 지원:
    • modpack
    • map
    • server-pack
  • 라이브러리에서 프로필 선택, 제거, 자료 준비, 실행 화면 이동, 바로 실행 가능
  • 프로필별 distribution.json 전환 가능
  • map 프로필은 월드 ZIP/로컬 폴더를 saves/에 설치하고 quickPlaySingleplayer로 바로 실행
  • server-pack 프로필은 로컬 서버 번들 설치, 서버 시작/중지, 선택형 터널 명령 실행, 공개 주소 표시 지원
  • 라이브러리의 주소 입력칸에 host:port를 넣으면 실행 시 자동 접속
  • 설치 페이지는 관리자가 미리 등록한 프로필을 보여주는 읽기 전용 카탈로그 화면
  • 설치 페이지에서 프로필 제목, 요약, 상세 설명, 실행 조건을 확인 가능

중요한 제한

포트포워딩 없이 외부 사용자가 접속하게 만드는 기능은 런처만으로 해결되지 않습니다.

필요한 것 중 하나:

  • 별도 릴레이 서버
  • 터널링 도구
  • VPN/NAT traversal 백엔드

현재 구현은 server-pack 프로필에 tunnelCommand를 넣어 외부 도구를 호출하는 자리까지 제공합니다.

추후 설계 문서:

프로젝트 구조

  • app/
    • Electron renderer 자산
    • 설치/라이브러리/로그인/설정 화면
  • app/assets/js/catalogmanager.js
    • 관리자 등록 카탈로그 로드, 프로필 메타데이터 정규화
  • app/assets/js/profileassetmanager.js
    • 맵 ZIP, 서버 번들 ZIP/폴더 설치
  • app/assets/js/serverruntime.js
    • 로컬 서버 실행, 선택형 터널 프로세스 관리
  • src/main/index.ts
    • TypeScript 메인 프로세스 엔트리
  • index.js
    • dist/main/index.js 우선 실행, 없으면 index.legacy.js 폴백

카탈로그 / 프로필

기본 카탈로그:

  • app/assets/launcher/catalog.json

원격 카탈로그:

  • 관리자 배포 설정으로 연결

세부 스키마는 docs/launcher-catalog.md를 보면 됩니다.

개발

요구사항:

  • Node.js 22

설치:

npm install

개발 실행:

npm start

윈도우 smoke 테스트:

npm run smoke:win

이 명령은 TypeScript 메인 프로세스를 빌드한 뒤 Electron 앱을 실제로 한 번 띄우고, LAUNCHER_SMOKE_EXIT 환경변수로 자동 종료합니다.

TypeScript 메인 프로세스만 빌드:

npm run build

배포 빌드:

npm run dist

참고

  • Upstream: https://github.com/peunsu/MRSLauncher
  • Original base: https://github.com/dscalzi/HeliosLauncher
  • CI: .github/workflows/windows-smoke.yml 에서 Windows smoke run 수행