[BGA Studio] デバッグ方法・サーバ編
前回がクライアント側のデバッグ方法だったので、今回はサーバ側のデバッグ方法について述べていきます。
そうそう、BGA版のイラストリーでチュートリアルを表示するために作ったモジュールを切り出して公開しました。よろしければご利用ください。
modulesフォルダ内にjsファイルを入れてcssの中身は[ゲーム名].cssにコピペしつつ、[ゲーム名].jsに以下のように記述して、読み込ませれば使えるようになります。
...
define([
"dojo", "dojo/_base/declare",
"ebg/core/gamegui",
...
g_gamethemeurl + "modules/Instructor.js"
], function(dojo, declare, sniff) {
...
データベースのデバッグ
テーブル定義はdbmodel.sqlで定義していますが、構文エラーがあると、ブラウザでゲームをデバッグ起動したときにエラーメッセージが表示されます。これに限らず構文エラーは、BGA Studioのプロジェクトページにあるプロジェクトチェック(Check Project)機能を使うことで確認できます。
ゲームをデバッグ起動しようとしてエラーが出たり、いつまで経っても起動が終わらないような状態になったら、試しにプロジェクトチェックを実行してみるのをお勧めします。
プレー中の状態は全てDBに保存いる必要があります。デバッグ起動では、ゲーム画面の下にGo to game databaseというボタンがあり、ここからMySQL DBへのアクセスページへ飛ぶことができます。DBは公開されていないため、MySQL Workbenchなどでアクセスすることはできません。
DBへのログインは、開発者登録をした時に教えられたMySQL DB専用アカウントで行うことができます。(デバッグ用アカウントとは異なります)
また、BGA request & SQL logsでジャンプした先のページでは、サーバが発行したMySQLクエリのログを確認することができます。
サーバプログラムのデバッグ
サーバプログラムはPHPで記述していますが、PHPのprint関数ではログを残すことができません。[ゲーム名].game.phpでは、warnやerror関数を使うことで、ゲームのログを残すことができるので、サーバコードのデバッグにてこずっている時は、これを使って確認するのがお勧めです。
先ほどのボタンの内、BGA request & SQL logsのボタンでジャンプした先のページでログを閲覧できます。SQLクエリのログが混在しているため、ややわかりにくいかもしれません。
まとめ
以上、一通りのデバッグ方法をまとめてみました。コードの更新のために毎回FTPアップロードが必要になるので、デバッグはとても手間ですが、BGA Studioでは地道にやるしかないです。