![eyecatch](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLY5r2uiXii_KTxuV3Jm8cmXCH8gh7dBAyC5YdAiZ784W0bJ1EE6t_m_SHlOi2jr-Q2tfRT8EFjdQ0DcpawEbtB2Kk7xGcD8W1Z8cr8Cu04S2rFfh0o9-OD8wOQ_pgA5QEy9tX4WoJoiMWNjeE8ncypcftxOHzMuHvD31MuBtK_VHzm4Nf88X1EW-H/s1600-rw/1617230091_0.jpg)
毎日の積み上げ作業を得意としている、弓削田です。
このブログも、毎日更新を行っていて、もう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"
}
]
},
{
...
},
...
]
やっぱりエクセル風が見やすい!
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4wFuhlvVxf5SMGKW-hASMWR-wQHSCBc_KHnGL0IbI17bybTKmdvmMVjiatsM5Sl-Fi9G4p2UZhIXgOK9EBV2UKE_T8nxEetGoaQld3cVUdJAx4FMVYnyeBXuiSYnYAFsLswkoIKvhs1vH-EQcGWcL_flcRVexwpAdvkZSlLOJkDF1RDGCYg0bzTuOqmE/s1600-rw/%E3%82%BF%E3%82%99%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%88%E3%82%99%20%2820%29.jpeg)
実際にデータを登録してみると、JSON構造のデータを数多く登録するよりも、
こうしたエクセル風のマトリクスデータの方が遥かに見やすいです。
UIなどは、結構色々と変更して、今現在この表示で落ち着きました。
それぞれの行をクリックすると、次のようなダイアログが表示されて、
JSONよりもはるかに簡単に入力をすることができます。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVO5DGlSl7rPBU8VX-6lL-5cPWt_AB6fJaOA413HbMFjKp_mNStlESuos8ZIUVDP5MLcHpJftMQRY-M1wrcwDPc6AjdnZA8cRPJDhNsyxiSu8MB4917I-iBO95JKWvQ_2XO4a1dw4ywotfJ_gFnklcRJe_xxvP2axKzVcvQskptIZfHp23nwXsTbR7RlE/s1600-rw/%E3%82%BF%E3%82%99%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%88%E3%82%99%20%2821%29.jpeg)
エクセルで作って、データをエクスポートする方式も考えたんですが、
クイズ出題の箇所の選択肢と、その答えの箇所が、多重配列になるので、この点を考えて
エクセルよりも、webシートにして、エクセルUIを踏襲した方が、その後の機能追加などの対応などで
柔軟に対応できると判断して、今はこの状態です。
もちろん、入力も、エクセル風にしてもいいんですけどね。
とりあえず、今のところ仕様というワケです。
重要なコンバート処理
このエクセル風データはシステムの裏では、JSONデータで保持していて、
そのJSONデータを、会話用のデータにコンバート処理をする処理がひと手間かかるようにしています。
自動同期にしてもいいけど、2つのデータを分けることで、管理と、本番デプロイという仕組みにも適用できるので
本番では、エクセル風のリストデータは不要で、コンバートされた会話データだけがあればいいという感じになります。
とにかく、これは管理画面仕様なので、ゲームをプレイするユーザーには一切関係の無い機能なんですが、
比較的、時間をかけて構築したので、裏方として、ブログで紹介してみました。
他にも管理画面構築は山程あるので、作業はてんこもりです!
0 件のコメント:
コメントを投稿