now.gg의 서비스와 API를 편리하게 설정 및 적용하는 데 도움이 될 만한 Cloud와 관련된 추가 가이드입니다.
아래를 참조해 주시기 바랍니다:
이때 저장 파일 경로와 제외 파일 경로를 정의하여 유저의 게임 진행 데이터를 저장하고 복원하기 위한 now.gg 클라우드 스토리지를 설정하실 수 있습니다.
‘저장’ 및 ‘제외’ 파일 경로를 정의하는 것은 게임 로딩 시간을 줄여 유저의 플레이 경험을 향상하고 now.gg 클라우드 스토리지를 최적으로 사용하는 필수 방법 중 하나입니다.
스토리지 설정 요구 사항:
/data/data/<package_name>/<file_name>
에 저장됩니다.현재 now.gg에서 새로 출시하는 모든 앱에 대해 해당 설정을 적용하실 수 있으며 이미 출시된 앱의 경우 새 버전의 앱을 출시해야 합니다.
방법:
설명:
Android id
와 같은 고유 식별자를 사용하지 않는 것을 권장해 드립니다.nowStudio에 업로드할 앱 파일을 준비합니다.
nowStudio를 사용하여 릴리스를 생성하려면 앱 파일을 준비해야 하며 이때 Standalone(독립형) APK, APK 및 에셋 Zip 파일이 허용됩니다.
선택:
nowStudio에 업로드할 APK 파일을 준비합니다.
요구 사항:
APK를 준비한 후 nowStudio에 앱을 추가하실 수 있습니다.
게임은 일반적으로 필요한 에셋을 실행 시 다운로드하여 게임 플레이가 지연됩니다. 하지만 now.gg를 사용하면 APK와 에셋이 포함된 Zip을 대신 제공하여 게임 로딩 시간을 크게 줄이고 유저에게 즉각적인 게임 플레이를 제공할 수 있습니다.
앱 및 에셋의 Zip 파일을 생성하기 위해 아래 지정된 형식과 내용을 따라 주시기 바랍니다.
다음 샘플 JSON은 매니페스트 파일인 metadata.json의 형식을 보여드립니다.
{ "assets": [ { "name": "asset1.xyz", "location": "/data/media/0/Android/data/<packageName>/files" }, { "name": "asset2.unity3d", "location": "/data/media/0/Android/data/<packageName>/files" }, { "name": "OtherAssets", "location": "/data/data/<packageName>/files" } ] }
APK 및 에셋 Zip 준비 후 nowStudio에 앱을 추가하실 수 있습니다.
now.gg가 아닌 다른 도메인에 앱을 호스팅하려는 경우 커스텀 도메인을 추가하는 과정입니다.
now.gg 클라우드 외에도 커스텀 도메인을 추가하여 다른 도메인에서 앱을 호스팅하실 수도 있습니다.
시나리오:
새 앱에 커스텀 도메인을 추가하는 단계입니다.
방법:
이미 출시된 앱에 커스텀 도메인을 추가하는 단계입니다.
방법:
nowgg CLI는 앱 빌드를 nowStudio에 쉽게 업로드할 수 있게 도와주는 커맨드 라인 도구입니다.
macOS 또는 Windows에서 터미널을 실행합니다.
pip install nowgg
nowgg init --token "<your_publisherToken_from_nowStudio>"
nowgg upload --app_id <your_app_id> --file_path "/directory/sample.apk" --apk_version <app_version_name> --version_code <app_version_code>
중요: 앱이 nowStudio 내의 앱 라이브러리에 업로드됩니다.
nowgg upload --app_id <your_app_id> --file_path "/directory/sample.apk" --apk_version <apk_version> --version_code <app_version_code> --deploy
app_id
가 포함됩니다.
app_id
가 1234인 경우 테스트 트랙 1의 app_id
는 1234_t1이 됩니다.--deploy
는 app_id
를 통해 식별된 테스트 트랙에서 배포 프로세스를 트리거합니다.nowgg -h nowgg init -h nowgg upload -h
<python directory>\<Scripts>
를 추가하시는 것을 권장해 드립니다.다음 문서는 nowStudio에서 제공하는 구독 기능의 중요한 측면에 초점을 맞춥니다.
구독은 now.gg에서 제공하는 앱 내 상품으로, 사용자에게 내 앱의 콘텐츠나 서비스에 접근할 수 있는 정기 요금을 부과합니다.
nowStudio는 ‘구독’ 기능을 통해 구독을 쉽게 생성, 관리 및 판매할 수 있는 다양한 기능을 제공합니다. 앱 내 상품과 구독 상품의 주요 차이점은 앱 내 상품은 사용자에게 일회성 요금이 부과되지만, 구독은 정기적인 요금이 부과된다는 점입니다.
nowStudio에서 구독을 생성하고 관리하는 방법을 이해하기 위해서는:
now.gg 결제 모듈을 사용하여 앱에서 구독을 구현하는 방법을 이해하기 위해서는 다음 가이드를 따르세요:
중요: 이 페이지의 정보 외에도 now.gg 정책을 참조해야 합니다.
이 섹션에서는 구독에 대해 소개합니다.
구독은 사용자가 특정 기간 동안 접근할 수 있는 혜택의 집합을 제공합니다. 같은 앱 내에서 여러 구독을 가질 수 있어 다른 혜택 세트나 단일 혜택 세트의 다양한 계층을 나타낼 수 있습니다(예: ‘골드’ 및 ‘다이아몬드’ 팩). 사용자는 now.gg 앱 내에서 구매함으로써 구독에 접근할 수 있습니다.
now.gg에서는 구독 기간을 선택할 수 있습니다. 가능한 청구 기간은 다음과 같습니다:
now.gg 구독은 자동 갱신됩니다. 사용자는 특정 청구 기간에 대해 구독을 구매하고, 각 기간의 끝에서 자동으로 갱신되어 구독이 중단되지 않도록 합니다. 구독은 사용자, 개발자 또는 now.gg에 의해 취소될 수 있습니다.
구독에 최대 네 가지 혜택을 추가할 수 있어 사용자가 받게 될 핵심 혜택을 강조해야 합니다.
갱신 결제가 거절되면 now.gg는 사용자에게 결제 문제를 해결하도록 요구합니다. 해결되지 않을 경우 구독이 자동으로 만료됩니다.
now.gg Embed Javascript 모듈는 프레임워크를 제공함으로써 개발자분들이 웹사이트에 클라우드 게임을 더욱 쉽게 임베딩(삽입, 첨부, 추가)하실 수 있도록 도와드립니다.
now.gg 임베드 모듈
now.gg 임베드 모듈를 사용하기 위해서는 아래 전제 조건이 충족되어야 합니다.
clientId
를 발급받기 위해 dev-support@now.gg로 문의해 주세요.이후 여기를 통해 웹페이지에 클라우드 게임을 임베딩해 보실 수 있습니다.
now.gg 임베드 모듈 적용 단계입니다.
방법:
첫 번째 단계는 웹사이트에 Embed SDK를 추가하는 것입니다.
now.gg 임베드 모듈를 웹사이트에 추가하기 위해 아래와 같이 스크립트 태그에 모듈 리소스 javascript를 추가합니다.
<script type="text/javascript" src="https://cdn.now.gg/external/sdk/ifp-sdk-1.1.0.min.js"></script>
now.gg 임베드 모듈 리소스 추가 후 now.gg Embedding으로 모듈를 초기화한 뒤 웹사이트에 게임을 임베딩합니다.
순서:
iframeParentElement
, appEventCallbackFunction
, 및 sdkEventCallbackFunction
를 선언합니다.NowIfp
클래스의 init
함수를 호출합니다.const iframeParentElement = document.getElementById("your_iframe_element"); // 안드로이드 앱에서 전송된 이벤트를 처리하는 콜백 함수입니다. const appEventCallbackFunction = (event) => { console.log(event.name); console.log(event.data); // 여기에서 받은 이벤트를 처리합니다. }; // JavaScript 모듈 이벤트를 처리하는 콜백 함수입니다. const sdkEventCallbackFunction = (event) => { console.log(event.name); console.log(event.msg); // 여기에서 받은 이벤트를 처리합니다. }; NowIfp.init({ clientId: <"your_clientId"> , appId: <"your_production_appId/your_test_track_appId"> , \\ appId 예 - 테스트 트랙: "1234_t1" | 프로덕션: "1234" iframeParentElement: iframeParentElement, customData: {} // for app-specific custom handling appLaunchData: { // 실행 관련 변수를 Iframe에 전달하면 실행 시 직렬화(serialized)되어 앱에 전달됩니다. [key]: [value] } appEventCallback: appEventCallbackFunction, sdkEventCallback: sdkEventCallbackFunction, isNowLoginEnabled: true });
appId
는 nowStudio에서 확인하실 수 있습니다.
appId
는 nowStudio에서 발급받는 앱/게임 고유 식별자입니다.appId
는 테스트/프로덕션 별개입니다.
appId
가 앱 실행 후에만 확인이 가능합니다.appId
가 앱 세부정보에서도 확인이 가능합니다.appId
는 아래와 같이 라이브 테스트 릴리스에 나열됩니다.appId
는 아래와 같이 라이브 프로덕션 릴리스에 나열됩니다.이름 | 자료형 | 필요 | 설명 |
---|---|---|---|
clientId | string | Yes | 고유 클라이언트 식별자 |
appId | string | Yes | 앱/게임과 연결된 앱 ID입니다. nowStudio는 프로덕션 및 테스트 환경에 따라 서로 다른 appId를 발급합니다. 예 – 프로덕션 appId: “1234“. 테스트 트랙 appId: “1234_t1“. |
iframeParentElement | element | Yes | 임베딩된 앱/게임을 렌더링합니다. |
customData | object | No | now.gg 백엔드에 전달할 앱별 사용자 지정 데이터입니다. |
appLaunchData | object | No | 앱 실행 시 추가로 전달되는 데이터입니다. (appLaunchData 선언) |
appEventCallback | function | No | 앱에서 전송된 이벤트를 처리하는 콜백 함수입니다. (Iframe 내 게임 실행) |
sdkEventCallback | function | No | JavaScript 모듈 이벤트를 처리하는 콜백 함수입니다. (Iframe 내 게임 실행) |
isNowLoginEnabled | boolean | No | true – 앱 시작 시 now.gg 로그인이 실행됩니다。 false – 앱 시작 시 now.gg 로그인이 실행되지 않습니다。 |
이제 귀하의 게임이 now.gg 클라우드를 통해 웹페이지에 임베딩되었습니다.
웹사이트(HTML)에 임베딩된 게임에 고급 기능을 적용하는 단계입니다.
클라우드 게임 환경을 구축하기 위해 now.gg 임베드 모듈를 사용할 시
now.gg 이벤트 모듈 적용 시 now.gg 클라우드에 있는 앱의 이벤트와 데이터를 게임이 임베딩된 HTML 페이지로 전달할 수 있습니다.
참조 :
NowIfp.init
에 전달될 appLaunchData
를 선언한 뒤 앱으로 전달할 수 있는 아래 샘플 코드를 통해 HTML 페이지에서 앱 실행 변수를 앱에 전달하실 수 있습니다.
appLaunchData
는 NowIfp.init()
에 변수로 전달되며, 이는 실행 매개변수로서 앱에 전달됩니다. 아래 코드는 appLaunchData
를 NowIfp.init()
에 전달하는 방법을 보여드립니다.
NowIfp.init({ clientId: <"your_clientId"> , appId: <"your_appId"> , iframeParentElement: iframeParentElement, customData: {} // 앱별 필요한 커스텀 작업이 가능 appLaunchData: { [key]: [value] } // 실행 시 Iframe에 실행 변수를 전달합니다. 이때 해당 변수는 직렬화(serialized)되어 전달됩니다. appEventCallback: appEventCallbackFunction, sdkEventCallback: sdkEventCallbackFunction, isNowLoginEnabled: true });
앱은 HTML 페이지에서 전송된 appLaunchData
를 전달받을 수 있습니다.
아래 코드는 앱에서 키를 사용하여 값을 수령하는 방법을 보여드립니다.
// 앱 실행 변수로 전달된 키를 사용하여 값을 검색 및 수령합니다. string value = NowGGEventsSdkManager.Instance.GetAppLaunchDataProperty(key);
참조 :
appLaunchData
는 초기 앱 실행 시에만 전달되며 앱이 실행 중일 때는 전달할 수 없습니다.데모 HTML 페이지를 통해 Embed 모듈의 작동 방식을 한눈에 확인해 보실 수 있습니다.
Embed 모듈 작동 방식
appLaunchData
를 추가합니다.sdkEventCallback
으로 관리하실 수 있습니다.appEventCallback
함수에 의해 관리됩니다.