100日後に完成するゲームシステム 80日目「自分の名前入力機能」

2021年6月10日

テクノロジー 特集

eyecatch ドラクエの名前付けは、無難に自分のファーストネームだった、弓削田です。 ゲーム開発はもう終盤なのに、肝心な機能をつけ忘れていることに気が付きました。 ゲームで自分が操作するキャラクターの名前をつける機能です。 この機能により、キャラクターに感情移入がしやすくなるということはもちろん、 発言するセリフに名前でタグをつけることができ、少し複雑な会話をする時の目印にもなるはずです。 あとは、こうしたRPGのお決まりという事もあるかもですね。 あ、でもFFは違うか!

名前機能をつける点で苦労した点

まず、この名前機能をつけるという事で、悩ましかったのは、どのタイミングで名前をセットするかということですが、 基本的にゲーム中に1回だけしか使わない機能なので、初回のゲーム立ち上げタイミングで入力してもらうのがいいと考えました。 実は、このゲームというのは、webブラウザにこだわって作っているという点は、表示するデバイスの問題だけでなく、 それを処理するサーバー側も柔軟に複数箇所にモテるように考えていたり、 いろいろなサイトにガジェットのように表示させることを、裏の目的で持っていました。 ということで、このゲームに関わる処理は、全てゲーム画面(エレメント内)にて行うようにしなければいけないという縛りがあるんですね。 まあ、勝手に作り手がこだわっているだけの事ですが、こうした機能が後々生きてくるはずと信じて、その仕様で進めてみたいと思います。 ということで、ページロードしてスタートをクリックした段階で、入力ダイアログを表示してみました。 名前の入力と同時に、規約のチェックもこのタイミングでしてもらうことにしました。 とりあえず、サービス公開には、プライバシーポリシーなどは必要ですからね。 ゲーム初回に1回だけということで、多くのゲームがこのフローになっていることもうなずけます。

ゲームに搭載された複数の仕様

実はこの処理を作っていて、ハマった点がありまして・・・ このゲームには、ゲーム立ち上げの際に2つのモードを用意していて、タイトル画面を表示するスタートと、タイトル画面を表示しないスタートという2つのモードです。 100日後に完成するゲームシステム 8日目「タイトル画面の追加」 過去に書いたブログの、この時に作った機能ですね。 ここの記事では、タイトル画面が表示されているだけなんですが、フラグを付与すると、タイトル画面をすっ飛ばして、ゲーム画面がそのまま表示されます。 でも、audio-APIの関係で、必ず画面クリックをしてもらわないといけないので、クリックを促す表示はされますけどね。 この2つの機能は大きく処理が異なっているため、同じように画面をクリックするという処理でも、全然違ったフローをたどるため、 この整合性を保ちながら、「同一処理で入力ダイアログを表示して、データを保存しつつ、もとのフローに戻す」という流れで、 しばらくの間は、どちらかの処理を完成すれば、もう片方が不具合を起こすというジレンマに陥っていました。 大きなプログラムコードでは、よくありがちな落とし穴ですが、きちんと設計をしていない場合、このトラブルになりがちだと改めて思いました。 でも、無事に元プログラムのリファクタリングも兼ねて、機能搭載に成功したので、ご安心ください。

会話にも表示できるようになりました

そして、想定通り、会話に名前を表示させるようになりましたとさ。 下記のサンプル画像は「ほげみ」という名前で登録してみました。 よく考えたら、ゲームの最初しか名前が決められないので、一度付けた名前でゲームを進めていくことになります。 「あああ」とかやりがちですが、自分のペットに名前をつける感覚で入力してもらいたいですね。 とりあえず、また一歩前進・・・と、

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。