ゲームエンジン、制作ツールを問わず、簡単に使えるオンライン、ランキングのシステムが
あってもいいなぁ…。と思ったのがきっかけで、作ってみたものです。
アプリ内に特別な仕込みはせずに、HTTP通信の機能がついていれば、ツール問わず
また、ゲームでなくても使える、はず。
サーバ上に置いたCGIスクリプト https://oo.jp/ranking.cgi に
アプリ内からPOST GET でスコア、名前、等を送信し
例 https://oo.jp/ranking.cgi ?score=4000 &?na=太郎& ?id=0123
CGIスクリプトが受け取って処理。ランキングログ、ページを更新します。
動作のイメージはこんな感じ
Web上でシミュレーションできるページを作ったので、流れを確かめてみてください。
シンプルランキングテスト
https://sino.sakura.ne.jp/sintest/ranking_t.cgi
-------------------------------
テスト動画
Unityで制作したテストアプリからスコアを送信しています。
------------------------------
@シンプルランキング 使い方 1一方通行
アプリから、スコア、名前、IDを送信するだけの一番シンプルなもの。
"mode"に write を指定し、いきなりスコアを送ります
いわば一方通行で、スコアが設定ランキング内なら登録し、ランク外なら
却下されます。
ランキングの確認は、プレイヤーがブラウザでページを開いて
確認します。 アプリ内からURLを開く機能があれば割とスムーズかもしれません。
サーバからの応答をアプリで受け取れない場合、この使い方のみになるでしょう。
具体的には、UnityでWebGLビルドしたブラウザゲームがこのパターン。
実際触れて確認してみてください。
https://sino.sakura.ne.jp/games/[WebGL]SimpleRankingTest/
------------------------------
@シンプルランキング 使い方 2応答処理
送信するだけではなく、サーバからの応答を受け取り、そのまま表示したり
処理したりします。
"mode"に
check[ランキング内か確認] write[スコア書き込み] down[ランキングリスト読み込み]
を指定して出力結果を受け取ります
"mode"に
check[ランキング内か確認] write[スコア書き込み] down[ランキングリスト読み込み]
を指定して出力結果を受け取ります
登録前に、ランキング圏内かチェック出来、またランキングリストをダウンロードし
アプリ内で表示することが出来ます。
テスト用のアプリとして、UnityでPC向けにビルドしたものを置きます。
(テスト動画で紹介してるもの)
------------------------------
上2つとも同じスクリプトで処理しています。
ブラウザでランキングを確認できるページは、
https://sino.sakura.ne.jp/sranking/ranking_type1.cgi
テストアプリはUnity制ですが、前述したようにHTTP通信の機能がついていれば、
ツール問わずまた、ゲームでなくても使える、と思います。
ツール、アプリに応じた、調整は必要だと思いますが
@Unityでの使用方法 一例
1 サンプルスクリプト[C#] wwwpost.cs
公式アニュアルにあったものを少し改変しています。
空のオブジェクトにアタッチして、スコア等の値を上記のCGIスクリプトに送信
してみることが出来ます。 writeモードのみの[応答を受け取らない]単純なものです。
送信結果はブラウザでCGIスクリプトにアクセスして確認します。
ブラウザで確認 https://sino.sakura.ne.jp/sranking/ranking_type1.cgi
2 ビジュアルスクリプトの使用
テスト動画のアプリでも 実装はビジュアルスクリプト[PlayMaker]で組んでいます。
値を送信してサーバからの応答を受け取って表示して…といった流れは中々煩雑で
特にゲーム自体とは関わらない部分でもあり、気力が削がれます…
PlayMakerでは上手くアクションを組み合わせることにより、視覚的にもわかりやすく
ノードを組んでいくことができるので、参考に紹介したいと思います。
応答があれば、カウントを停止します。
使用しているアクションの 「WWWPOST」はエコシステムから手に入れる
カスタムアクションです。PlayMakerエコシステムについては、こちらも参考
になるかもしれません。
------------------------------
@「シンプルランキング」スクリプトのサーバへの設置
perlスクリプト simpleranking_v1.0
Zipファイルの中に以下のファイルが入っています。
ranking_type1.cgi
log.cgi
送信できるパラメーターは
"mode" "na" "id" "score"
"mode" は check write down を指定でき、それぞれに応じて機能します。
スクリプト内のコメントでも説明があります。
Perlのスクリプトと、ログファイルをサーバに置きます。
CGIの設置設定は難しくはありませんが、慣れてない方は調べると多くの情報が
----------------------------
[注意] 19_0518
GooglePlayでは、外部のURLにアクセスすることが、厳しくチェックされることになる
ようです。そのためアンドロイド用アプリで、単にこのシンプルランキングへのアクセス
機能を付加しただけでは、改善を勧告される可能性が高いです。
シンプルランキングにも関するGooglePlayのアレ
Fix the Intent Redirection vulnerability issues
2 ビジュアルスクリプトの使用
テスト動画のアプリでも 実装はビジュアルスクリプト[PlayMaker]で組んでいます。
値を送信してサーバからの応答を受け取って表示して…といった流れは中々煩雑で
特にゲーム自体とは関わらない部分でもあり、気力が削がれます…
PlayMakerでは上手くアクションを組み合わせることにより、視覚的にもわかりやすく
ノードを組んでいくことができるので、参考に紹介したいと思います。
サーバからの応答がなかった場合のため、別オブジェクトで送信と同時にカウントを
開始し、設定の時間になったら、こちらの送信処理を停止するようにします。応答があれば、カウントを停止します。
使用しているアクションの 「WWWPOST」はエコシステムから手に入れる
カスタムアクションです。PlayMakerエコシステムについては、こちらも参考
になるかもしれません。
------------------------------
@「シンプルランキング」スクリプトのサーバへの設置
perlスクリプト simpleranking_v1.0
Zipファイルの中に以下のファイルが入っています。
ranking_type1.cgi
log.cgi
送信できるパラメーターは
"mode" "na" "id" "score"
"mode" は check write down を指定でき、それぞれに応じて機能します。
スクリプト内のコメントでも説明があります。
Perlのスクリプトと、ログファイルをサーバに置きます。
CGIの設置設定は難しくはありませんが、慣れてない方は調べると多くの情報が
あると思います、 参考 Web Liberty(ウェブ リバティー)様
手順としては
サーバが、Perlを使えるか、Perlのパスは変更が必要か、など確認する。
FTPツールで、ranking.cgi と log.cgi をアップロード。
パーミッションを設定する。
動作確認。
ranking.cgi内の、ランキングログ保持数、ID等を設定する。
アプリから送信してのテスト。
という具合でしょうか。
@ありそうな質問
@ありそうな質問
[注意] 19_0518
GooglePlayでは、外部のURLにアクセスすることが、厳しくチェックされることになる
ようです。そのためアンドロイド用アプリで、単にこのシンプルランキングへのアクセス
機能を付加しただけでは、改善を勧告される可能性が高いです。
シンプルランキングにも関するGooglePlayのアレ
Fix the Intent Redirection vulnerability issues
0 件のコメント:
コメントを投稿