分12(1)はこちら,(⁠2)はこちらから。マスタデータのテストゲーム運営において必要になってくるのがアイテム定義などを含むマスタデータの管理です。ここでは,マスタデータの管理やテストの手法について述べていきます。マスタデータはゲームサーバにおいて,ゲームの挙動を決める要素の一つです。プログラムコードと違い,プログラマー以外が入力できる形式で書かれる場合があり,ときには専用の入力ツールや,Unityエディタなどのゲーム開発環境に統合された内製ツールが入力に用いられることがあります。Values,カンマ区切り)の形式で記述され,そのままMySQLのテーブルにレコードとして挿入できる形で表現されます。以下に,ゲーム内アイテムを表現するマスタデータの例を示します。50}3,大きい体力回復ドリンク,1,{"energy":100}このアイテムテーブルはidとnameとeffect_type,effect_parameterで構成されています。idは,アイテムを区別するサロゲートキーです。nameはアイテム名です。アイテムの種類や挙動を決めるのに,effect_typeカラムとeffect_parameterカラムを用意しています。effect_typeはプログラム内で列挙型として定義され,1は体力回復アイテムを指します。effect_parameterは,アイテムをeffect_typeに沿って適用するときの引数で,JSON形式で書かれています。SQLアンチパターンで言われているものの一つではありますが,アイテムごとに発揮する効果が違い,設定される値の数や意味も違うため,このようになっています。この場合,小さい体力回復ドリンクは体力を30回復しますが,大きい体力回復ドリンクは体力を100回復します。ほかにもアイテムのマスタデータには,売却する際にゲーム内通貨としていくらで売れるかなどが定義されます。実際に使用するときには,上記に示したCSVをitemsテーブルに格納します。このitemsテーブルに対応するユーザーデータのテーブルをuser_itemsとします。user_itemsテーブルは,サロゲートキーid,アイテムを所持しているユーザーを示すuser_id,所持しているアイテムを示すitem_id,所持数を示すhaving_numカラムで構成されています。マスタデータを用いたコードでは,上記のマスタデータを用いて,どのようにゲームの挙動を変化させるかを見ていきます。回復アイテムの消費と効果をユーザーに適用する関数の例アイテム消費APIから呼ばれる,アイテム消費関数を考えます。関数は次の処理に分解できます。トランザクションを終了してコミットする実際にアイテム消費と効果適用を行う関数アイテムを消費して効果を発揮させるconsume_and_effectメソッドの中身を次に示します。$result;マスタデータによる効果適用処理の切り替え前項のコードで示したとおり,効果に応じたクラスをeffect_typeの値に応じて取り出します。この機構についての具体的な実装を示します。$effect_type_map{$self->effect_type}->new;}Perlであれば,上記のようにハッシュにeffect_typeに対応するクラス名を保持しておき,クラス名を取り出してインスタンス化するのが,記述量やわかりやすさの面でバランスが良いです。ほかのプログラミング言語ではswitchやパターンマッチなどの記法を用いると思います。回復アイテムの効果適用の処理例さらに,MyApp::Model::ItemEffect::RecoverEnergy内の,実際に体力回復を適用する処理を示します。$result;}マスタデータの内容によって,使用するクラスパッケージを切り替えることにより,マスタデータだけでさまざまな効果を持つアイテムを作れました。カヤックのゲーム事業部でサーバサイドアプリケーションの開発とワークフローの整備に携わってきた。趣味はゲームと3Dプリンタの製作。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。