ティラノゲームフェス2017開催中。賞金総額30万円!

  • iPhone・Androidアプリ化対応。HTML5で動くノベルゲーム製作キット

サーバーサイドと連携してできること

サーバーサイドと連携することで、ユーザの状態をサーバーサイドに保持することが可能です。

この機能を検討するときは以下の様なゲームを作成する場合です。

・ソーシャルゲームのように、進行状況によって適切な会話パートを実行したい。
・ゲームの進行にチケットなどを消費させて、話を進めるタイプのゲーム
・ユーザ側にセーブデータや進行データを保持させたくない
・他のWebアプリケーションと連携したゲーム


以上のようなケースが代表的あげられるでしょう。

では、早速サーバーサイドと連携したゲームを作る方法を見て行きましょう

サーバーサイドのシナリオファイルを読み込む方法

ティラノスクリプトのindex.html を開きます。その後、下記の部分のコメントを外してください
<!-- First シナリオファイルに外部ファイルを利用したい場合は、こちらにシナリオファイルのURLを指定できます-->
<!--
<input type="hidden" id="first_scenario_file" value="http://test.html5go.info/test/tyrano/" />
-->



そして、valueのところに読み込みたい、シナリオファイルのURLをhttp://〜 からすべて入力します。

*ホスト名はこのindex.htmlが配置されているホスト名と同一にしなければなりません。

以上で、サーバーから読み込んだシナリオファイルを読みだして動作します。

あとは、必要に応じてこの読み先のURLを切り替えて、返却されるシナリオファイルをサーバーサイドで作ってください。
さらに、厳密に許可されていないシナリオにアクセスできないようにするためには、セッションIDのようなものを付与すると良いかと思います。

シナリオ中にサーバーサイドからデータを取得する

シナリオの途中にサーバーサイドに問い合わせやデータを送信することができます。
以下にサンプルのスクリプトを提示します。

[iscript]

alert("ajax通信開始。");

$.getJSON("http://api.tyrano.jp?q=Tokyo,jp&callback=?", function(data){
//読み込み完了
alert("Data Loaded: " + data);

//ラベルの位置までジャンプ
TG.kag.ftag.startTag("jump",{target:"*end_load"});

});

[endscript]

[s]

*end_load
ajax通信完了後にここが実行される


;---------ここまで [s] で処理を止めておいて、ajaxの処理完了後に その後のラベルにジャンプさせてます。


これで、ゲームの途中でサーバーサイドにデータの送信や取得ができますね。

いかがだったでしょうか?
サーバーサイドと連携することで、表現の幅はかなり広がりますね