毎日の積み上げ作業を得意としている、弓削田です。
このブログも、毎日更新を行っていて、もう4ヶ月目に入ります。
そして、投稿数も100件をかるく越えました。
ブログ記事が100件オーバーになったら、本格的にSEO対策をやっていこうと考えていたんですが、
対策はもう少し先になりそうですね。
そして、今回は、ゲームの会話システムとデータベースを連動したいという考えから、
それに該当する仕様を考えて構築してみました。
会話データ事態はデータベースとは切り離すポイント
この仕様を決めるまで、非常に何度もトライアンドエラーを重ねてきたんですが、
そもそも、会話パターンのデータ事態が、データベースであると安易に考えたのがスタートで、
その会話システムを使ったバトルモードで、たくさんのクイズ問題を出すことを考えた時に、
JSON構造の会話パターンで、エクセルなどのようなデータ管理をしようとすると、次のようなデメリットがあります。
・一覧として、全体が見ずらい
・項目別に、縦軸で見ずらい
・同じ項目がある場合に見つけづらい
・改行をワンラインで記述するのがストレス
・手打ちの場合にエラーが見つけづらい
ちなみに、JSON構造のデータは次のようなデータです。
[
{
"messages" : [
{
"id" : "0",
"message" : "アメリカの初代大統領リンカーンは、大統領になる前は、何をしていたでしょうか?\n",
"size" : "large",
"menu" : [
{"value" : "プロ野球選手" , "next":"ng" , "continue":true},
{"value" : "猟師" , "next":"ng" , "continue":true},
{"value" : "レスラー" , "next":"ok" , "continue":true},
{"value" : "タクシー運転手" , "next":"ng" , "continue":true}
]
},
{
"size" : "large",
"id" : "ok",
"message" : "正解!!!\n青年時代に、イリノイ州サンガモン郡(現在のメナード郡)で、\nごろつき集団の挑戦を受け、デントン・オファットの雑貨屋でレスリングの賞金試合(創世期のプロレス)を行い引き分けて、レスラーになったという逸話があるらしい。",
"next" : "0"
},
{
"id" : "ng",
"message" : "ブー!!!\nはずれ!!!",
"next" : "0"
}
]
},
{
...
},
...
]
やっぱりエクセル風が見やすい!
実際にデータを登録してみると、JSON構造のデータを数多く登録するよりも、
こうしたエクセル風のマトリクスデータの方が遥かに見やすいです。
UIなどは、結構色々と変更して、今現在この表示で落ち着きました。
それぞれの行をクリックすると、次のようなダイアログが表示されて、
JSONよりもはるかに簡単に入力をすることができます。
エクセルで作って、データをエクスポートする方式も考えたんですが、
クイズ出題の箇所の選択肢と、その答えの箇所が、多重配列になるので、この点を考えて
エクセルよりも、webシートにして、エクセルUIを踏襲した方が、その後の機能追加などの対応などで
柔軟に対応できると判断して、今はこの状態です。
もちろん、入力も、エクセル風にしてもいいんですけどね。
とりあえず、今のところ仕様というワケです。
重要なコンバート処理
このエクセル風データはシステムの裏では、JSONデータで保持していて、
そのJSONデータを、会話用のデータにコンバート処理をする処理がひと手間かかるようにしています。
自動同期にしてもいいけど、2つのデータを分けることで、管理と、本番デプロイという仕組みにも適用できるので
本番では、エクセル風のリストデータは不要で、コンバートされた会話データだけがあればいいという感じになります。
とにかく、これは管理画面仕様なので、ゲームをプレイするユーザーには一切関係の無い機能なんですが、
比較的、時間をかけて構築したので、裏方として、ブログで紹介してみました。
他にも管理画面構築は山程あるので、作業はてんこもりです!
0 件のコメント:
コメントを投稿