Skip to content

Latest commit

 

History

History
165 lines (122 loc) · 5.55 KB

README.ko.md

File metadata and controls

165 lines (122 loc) · 5.55 KB

Nine Chronicles Launcher

개요

Nine Chronicles를 구동하기 위한 일렉트론 기반의 멀티플랫폼 런처입니다. 기본적인 골격은 다음과 같습니다:

./src
|   +-- resources
|   +-- styles
|   +-- views
|   |   +-- MainView.tsx
|   |   +-- LoginView.tsx
|   |   +-- LobbyView.tsx
|   +-- main-process.ts
|   +-- App.tsx

실행 방법

먼저, 개발에 필요한 의존성부터 모두 설치합니다.

yarn

추가로, 두 개의 별도 바이너리가 필요합니다.

  • 9C Headless (Standalone): yarn build-headless로 빌드 가능 (.NET Core SDK 필요)
  • 9C Unity Player (9c.exe/9c.app): yarn bundle-player로 다운로드 가능
    • yarn bundle-playerNineChronicles git 서브 모듈의 커밋 해시를 기준으로 NineChronicles 저장소 CI에서 미리 빌드된 바이너리를 다운로드 받습니다.
    • 빌드가 끝나지 않은 경우 다운로드에 실패하는데, 이 경우엔 Unity 에디터에서 dist 디렉토리를 출력 디렉토리로 하여 직접 빌드하시면 됩니다.

9C Headless 와 Unity Player 바이너리를 빌드하기 전에 git submodule 로 해당 바이너리의 소스를 받으셔야 합니다: git submodule update --recursive

두 개의 바이너리를 해당 디렉터리와 같게 배치해 주십시오.

./src
./dist
|   +-- 9c.(exe|app) // 9C Unity Player
|   +-- publish // 9C Headless (Standalone)
|   |   +-- Libpalnet.dll
|   |   +-- Grpc.Core.dll
|   |   +-- ...
|   |   +-- NineChronicles.Standalone.Executable(.exe)

그 뒤 하기의 명령어를 입력합니다.

yarn dev

개발 방법

기본적으로 프론트엔드는 webpack-hot-reload 가 있어, 변경하는 즉시 반영됩니다. 렌더러 프로세스에서 작업할 때는 일렉트론 재시작이 필요가 없으며, 메인 프로세스에 변경점이 생기면 그때 일렉트론 종료 후 재실행 해 주십시오.

mobx-devtools

mobx-devtools를 사용할 수 있습니다. 먼저, 스탠드얼론 mobx-devtools를 설치해 주십시오

yarn global add mobx-devtools

그 다음, mobx-devtools를 실행해 주십시오

mobx-devtools

이제 yarn serveryarn start를 하시면 mobx-devtools에 전역 상태가 나타나는 것을 볼 수 있습니다.

빌드 방법

git submodule update --recursive # 9C Headless 와 Unity Player 빌드 소스 다운로드하기

yarn
yarn build  # 개발 빌드
yarn build-headless  # 9C Headless (Standalone) 빌드 (.NET Core SDK 필요)
yarn bundle-player  # 9C Unity Player 받기. 게임을 테스트하는걸 원하지 않으시면 건너뛰셔도 됩니다.
APV_SIGN_KEY=... APV_NO=... yarn sign-apv  # APV 서명 (planet 명령 필요)
yarn build-prod  # 프로덕션 빌드

패키징 방법

# 주어진 비밀키로 새 버전 APV를 생성/서명 후 적용
APV_SIGN_KEY=... yarn pack-all
# 주어진 비밀키로 지정된 버전의 APV를 생성/서명 후 적용
APV_SIGN_KEY=... APV_NO=1234 yarn pack-all
# 주어진 APV를 그대로 적용
APV=... yarn pack-all
# APV 미적용 (가장 마지막에 릴리스된 패키지에 적용된 APV 재사용)
yarn pack-all

다음 환경 변수를 요구합니다. APVAPV_SIGN_KEY 양 쪽 모두 누락됐을 경우 APV(앱 프로토콜 버전) 서명을 안 합니다.

패키지에서 config.json 내용만 갈아끼우기

패키징된 Windows.zip 또는 macOS.tar.gz 파일에서 config.json 설정 내용만 갈아끼울 때 scripts/extract-config.shscripts/replace-config.sh 스크립트를 활용하면 편합니다.

# 패키지에서 config.json 내용만 추출 (Windows.zip 대신 macOS.tar.gz도 가능)
scripts/extract-config.sh path/Windows.zip > config.json
# 패키지 내 config.json 내용을 교체 (Windows.zip 대신 macOS.tar.gz도 가능)
scripts/replace-config.sh path/Windows.zip < config.json

electron-builder로 패키징하기

# Windows (nsis)
# macOS (dmg, zip)
yarn pack-all:electron-builder

로깅 위치

로그는 다음 위치에 쌓입니다.

- on macOS: ~/Library/Logs/{app name}/{process type}.log
- on Windows: %USERPROFILE%\AppData\Roaming\{app name}\logs{process type}.log

코드 스타일 맞추기

npx pretty-quick --staged

Visual Studio Code 확장

확장 화면(Windows: ⇧⌃X, macOS: ⇧⌘X)에서 다음 확장들을 설치합니다.