よくある質問(FAQ)

SDK関連

ゲームをアップデートするたびにTentuPlay SDKも更新する必要がありますか?

毎回更新する必要はありませんが、アップデートによってビジネスモデルが変わる場合は、TentuPlayテクニカルサポートに連絡してサポートを受けることをお勧めします。

SDKではなく、APIを介してTentuPlayサービスを利用することは可能ですか?

可能です。詳しくはTentuPlayテクニカルサポートにお問い合わせください。

TentuPlay SDKが対応しているゲームエンジンには何がありますか?

現在Unityエンジンに対応しています。

SDKが正しく実装されたかどうかを検証するQAプロセスはありますか?

データ収集とアップロード実装に関するデバッグ作業があります。収集したデータのデバッグをご覧ください。同時にTentuPlayテクニカルサポートでサーバーに問題がないかを常にチェックしています。

収集したデータのデバッグ

難読化を行う場合に例外処理すべきクラスは何ですか?

com.sentience.tentuplayです。

現在TPStashEventクラスで一部パラメータのデータ型(例:currency)がfloatになっていますが、入力データがfloatの範囲を超えると、どうなりますか?データのアップロードによって特定メソッドに誤ったデータが保存されると、他のメソッドのデータにも影響を与えますか?

内蔵された型変換が正しく動作する場合は型変換を行ってください。ただし、この場合はオーバーフローが発生するため、次のように追加でデータ処理を行う必要があります。

  • floatの範囲:1.40129846432481707e-45 ~ 3.40282346638528860e+38

  • doubleの範囲:1.7e-308 ~ 1.7e+308

値が10^38を超えるとオーバーフローが発生し、値が無限大になってエラーが発生します。この場合は入力値のログを取得する方法がありますが、この方法にはログ形式でコンソールに値が表示されるという欠点があります。

2つ目の質問については例えばGetCurrencyのいずれかのデータがデータ型の範囲を超えると、GetCurrencyのデータはTentuPlayサーバーにアップロードされなくなります。しかし、他のメソッド(例:UseCurrency)には影響を与えずに正常にデータがアップロードされます。

設定でAuto Uploadをチェックした状態でプレイヤーが次回のアップロード時間前にアプリを閉じてしまうと、直前までに収集されたデータはどうなりますか?

アップロード時間までに収集したデータはプレイヤーのデバイスに保存され、ゲームを再開したときに再度アップロードされます。これを防ぐためにアップロード間隔を短く設定することも可能ですが、逆に頻繁にアップロードを行うことによる影響(例:データ送信時の負荷増加)が発生する可能性があります。

TPStashEventクラスはどのくらいの頻度で呼び出すべきですか?

TPStashEventクラスが使われる仕組みは次の通りです。**Auto Upload**が選択されている場合、頻繁に呼び出しが発生するイベントに対してnew TPStashEvent()クラスで必要なメソッドを呼び出すと、アップロード間隔に応じて自動的にアップロードが行われます。(例:財貨の獲得と使用時の収集メソッドをそれぞれnew TPStashEvent().GetCurrency()new TPStashEvent().UseCurrency()で呼び出す)例えばnew TPStashEvent()をプレイ開始時にのみ呼び出す場合、プレイ中に収集データがアップロードされることはありません。

データが正しくアップロードされたかどうかを確認するコールバックはありますか?

現在そのようなコールバック関数は用意されていませんが、アップロードが成功すると、TentuPlayデバッグモードで"TPDebug||Upload successful"というメッセージがUnityコンソールに表示されます。

アップロードが失敗しても収集したデータは次回のゲームプレイまでにプレイヤーのデバイスに残ります。

SDKの状態をコンソールで確認するとPlayerGetCharacterイベントがJoinイベントの後に常に表示されますが、これは正常ですか?

はい、正常です。Joinの直後にPlayerGetCharacterが自動的に呼び出されるように設計されています。

ドキュメントにはTPStashEvent.Joinがユーザー登録に使われると書かれていますが、登録済みのユーザーかどうかを確認する方法はありますか?(登録状況によってJoinLoginの両方を呼び出すか、またはLoginのみを呼び出したい)

TentuPlayは呼び出したものすべてをアップロードするだけでTentuPlayで特定のユーザーが登録済みかどうかを確認することはできません。多くのゲームではTPStashEvent.Joinを最初のワンタイムイベント(例:Googleアカウントでログイン)として呼び出します。

サーバーエラーが発生した場合にTentuPlay SDKはどのように対処しますか?

TentuPlay SDKは数回リトライを試みたあと、自動的にシャットダウンされます。このような一連の動作はゲームがシングルスレッドのみを使用するという想定でSDKは別のスレッドやコルーチン・コールバックで動くため、ゲームプレイには影響を与えません。

以後3~5日程度の十分な時間が経過した後に、SDKはアプリ起動時のヘルスチェックプロセスでサーバーが回復したかどうかを確認します。これらの作業はゲームプレイには影響を与えません。

TentuPlayサーバーの処理能力はどのくらいですか?

ゲームのジャンルと容量に応じてRDBとNoSQLの両方を使用しているため、様々な容量に柔軟に対応しています。大容量とは200,000 DAU、80,000 以上を意味しますが、数十万DAUを誇るMMORPGクライアントでもサーバーが落ちたことはこれまでに一度もありません。