NW.js를 이용해 데스크탑 앱으로 내보내기(export)

1

Tagged

Stats

5,117 visits, 5,819 views

Tools

License

This tutorial is licensed under CC BY 4.0. Please refer to the license text if you wish to reuse, share or remix the content contained within this tutorial.

Published on 13 Apr, 2015. Last updated 25 Feb, 2019

Construct2는 NW.js를 이용해 프로젝트를 전통적인 데스크탑 앱으로 내보낼 수 있습니다. 이는 기본적으로 Google Chrome의 독립실행(standalone) 버전입니다. 다시 말해 프로젝트를 크롬에서 돌리는 것과 매우 유사하지만, 유저의 컴퓨터에 크롬이 미리 깔려있지 않아도 되고, 원래의 브라우저에 있는 주소창 등 일부분이 표시되지 않습니다. 이 튜토리얼에서는 이러한 내보내기 옵션을 사용할 때의 몇 가지 팁과 요령을 다룹니다.

NW.js는 리눅스, 맥 OS X 그리고 윈도우즈 데스크탑 앱까지 3가지 플랫폼에서, 32비트와 64비트 둘 다로 내보낼 수 있습니다.

참고: NW.js는 구(舊) node-webkit입니다.

NW.js 지원 설치하기

NW.js 파일은 모든 플랫폼들을 커버하느라 공간을 많이 차지하기 때문에, Construct 2 r187 이후부터 NW.js 지원은 반드시 따로 설치되어야 합니다. NW.js 지원을 설치하려면, scirra.com/nwjs에서 프리 다운로드하세요. NW.js 설치 전에 NW.js로 미리보기나 내보내기를 시도할 경우, 먼저 다운로드하도록 이 페이지로 연결됩니다. 참고로 NW.js 설치 후 Construct 2를 재시작할 필요는 없습니다. NW.js 인스톨러가 끝나면 바로 동작합니다.

NW.js의 특징

데스크탑 앱에는 보통 웹 앱에서는 불가능한 고유의 이점들이 있습니다. 예를 들면 파일을 디스크에 바로 기록할 수 있습니다. NW.js object가 이를 가능케 합니다. 하지만 기억하세요. 만약 프로젝트를 다른 플랫폼으로 이식하고자 한다면, NW.js object의 어떤 기능도 동작하지 않을 것입니다. 이 때는 몇몇 기능들을 사용할 수 없게 하거나, 다른 수단으로 대체해야 합니다. 때문에 프로젝트를 처음부터 이식하기 좋게 디자인하는 것이 더 쉬울 수 있습니다. 예를 들어 WebStoragesavegames는 모든 플랫폼에서 동작하는 반면, 파일을 디스크에 바로 쓰는 것은 오직 NW.js로만 동작합니다.

NW.js로 내보내기한 것을 전체화면으로 실행하려면, 다른 플랫폼에서와 마찬가지로 Browser objectRequest fullscreen action을 사용하세요. NW.js의 On start of layout에서 이 액션을 사용할 수 있습니다. 반면 웹브라우저에서는 보통 On object clicked와 같은 user-input trigger가 사용중이지 않은 한 보통 무시됩니다.

또 Construct 2의 프리뷰 모드에서 NW.js의 기능들을 테스트할 수 있습니다. project property의 Preview browserNW.js로 설정하면 됩니다. 이렇게 하면 32비트 윈도우 버전의 NW.js가 실행됩니다. 다른 플랫폼에서 테스트하려면 먼저 내보내기를 해야 합니다.

내보내기 옵션

내보내기 시, 다음과 같은 옵션을 지정할 수 있습니다.

Single instance: 앱이 여러 개 실행되는 것을 방지합니다. 한 번에 하나의 인스턴스만이 실행될 수 있습니다.

Window frame: 운영체제 창 캡션과 프레임을 화면에 표시합니다.

Resizable window: 창 크기를 조절할 수 있게 합니다. (Window frame 활성화 시에만 유효)

Kiosk mode: "키오스크" 화면 모드를 사용합니다. 앱이 전체화면으로 실행되어 유저가 떠나는 것을 최대한 막습니다.

윈도우즈에서의 출판

윈도우즈 앱으로 출판할 경우, 최신의 DirectX 런타임 구성 요소가 설치되어 있다면, NW.js는 더 빠르고 더 강력한 WebGL 렌더링 모드만을 지원합니다. 내보내기 된 dxwebsetup.exe 파일이 이것들을 유저의 시스템에 설치합니다(아직 설치되지 않았으면요). 유저가 게임을 실행하기 전에 반드시 이것이 유저의 시스템에 설치되어 있어야 합니다. 예를 들면 게임의 인스톨러를 만들 때 설치 과정 중 하나로 이 파일이 실행되도록 할 수 있습니다. dxwebsetup.exe 인스톨러에 /Q 패러미터를 주면 "조용한(quiet)" 모드로 실행됩니다(유저에게 따로 알리지 않고 자동으로 실행됩니다). 참고로 만약 유저에게 최신 DirectX 런타임 구성 요소가 없으면, 게임이 소프트웨어 기본탑재의 canvas2d 렌더러로 대체되면서 형편없는 퍼포먼스를 보일 수 있습니다. 유저가 dxwebsetup.exe 설치 후에도 계속 문제들을 겪는다면, 특히 게임 멈춤이나 형편없는 퍼포먼스, 그래픽적 결함 등이라면, 그래픽 드라이버 업데이트를 권장하십시오. 많은 문제들이 오래된 드라이버에서 비롯될 수 있습니다.

OS X와 리눅스에서의 출판

OS X와 리눅스로 출판할 때의 가장 흔한 문제점은 실행파일의 실행 권한(허가)입니다. 파일 권한은 윈도우즈에서와 약간 다른데, 윈도우즈에서는 일반적으로 .exe로 끝나는 모든 파일을 실행될 수 있는 파일로 인식합니다. OS X와 리눅스에서는, 실행파일에 특별한 확장자가 없고, 대신 "실행가능한" 파일 권한(허가)이 있어야 합니다. 윈도우즈는 보통 이걸 모르고, 그래서 윈도우즈에서 파일을 복사해 OS X나 리눅스 시스템으로 가져가면 파일들에 실행 권한(허가)이 없어 실행할 수 없게 됩니다.

리눅스에서는, 다음과 같은 커맨드로 'mygame' 파일에 대한 실행 권한(허가)를 줄 수 있습니다. 확실히 실행될 수 있도록 터미널에서 하세요.

chmod a+x mygame

Mac OS X에서는, 실제로 앱을 실행가능하게 하기 위한 몇몇 파일들이 앱 패키지 안에 들어있습니다. 실행권한(허가)을 보존하는 가장 쉬운 방법은 내보내기된 프로젝트를 윈도우즈가 아닌 OS X를 사용해 복사하는 것입니다. 윈도우즈와 OS X 기기를 함께 네트워크로 쓰고 있을 경우, 윈도우즈 쪽에 로그인해서, 파일을 복사해 OS X 시스템으로 가져간다면, 윈도우즈는 파일 권한(허가)에 대해 모르기 때문에 실행권한을 잃어버려, 결과적으로 앱이 OS X에서 실행되지 않는 상황이 올 수 있습니다. 하지만 OS X쪽으로 로그인해 윈도우 시스템으로부터 파일을 복사해오면, 실행권한(허가)가 보존되어 실행할 수 있게 됩니다.

결론

NW.js를 이용하면 디스크 액세스, 전체화면 디스플레이 등 통합적 기능들과 함께 3가지의 주요 운영체제로 데스크탑 앱을 출판할 수 있습니다. 그러나 중요한 점은, 윈도우즈에서 유저들이 dxwebsetup.exe를 꼭 실행해야 한다는 것, 그리고 윈도우즈에서 다른 운영체제로 복사할 경우 실행권한(허가)를 잃게 되기가 쉽다는 것입니다.

  • 0 Comments

Want to leave a comment? Login or Register an account!