初めてのツール作成に挑戦

はじめに

こんにちは、グレッゾ開発部エンジニアの三井です。
技術ブログを書く機会を頂きましたのでせっかくならあまりやったことのないことを学びながらやってみたいと思います。
ということで、今回はツール作成に挑戦します。

初めてのツール作成、何を使用すればいいのか

初めてのツール作成なので何を用いようと考えた時にGREZZO技術ブログで先輩方がいくつか記事を書いていた事でWPFに興味を持ちました。
加えて調べてみるとツール作成に関する情報が豊富だったのでWPFに決めました。

触ってみた感想としては少ないパーツと作業ですぐに動くものが作成できるという点に魅力を感じました。
逆に便利な機能を追加したいと思った時はいろいろなパーツを組み合わせる必要があり、やはり作業が多くなると思いました。

楽しいと思ったところは機能を組み合わせることで見た目に拘れる所です。
ですがツールは自分以外の人も使用することを考えると機能を持たせすぎてもよくありませんし、簡素すぎても使い方が伝わりづらいなど見た目に関しては塩梅が難しいところもあると思いました。

ツール画面


こちらが今回作成したツールの編集画面になります。
・外部ファイルの読み込み、書き出し。
・プレイヤーに関する設定。
・ボスに関する設定。
・各敵に関する設定と追加。
を実装しました。

機能


Expanderを用いて編集する必要が無い項目に関しては閉じれるようにしています。
その他にはプレイヤーなどの大きな項目にはCheckBoXとStackPanelを使用して、項目にチェックが入っていない場合は編集を無効にするようにしています。
各敵などは配置数や場所などに柔軟に対応できるようにするためにDataGridで作成しています。


新しい敵の設定を追加する方法は悩みましたが、わかりやすさを重視したかったためボタンを押すことでデフォルトの設定が追加されるようにしました。
追加するボタンはReactiveCommandとObservableCollectionを使用してボタンを押すことでデフォルト設定の敵を追加できるようにしています。
敵はなどは制限なく追加することが出来る為画面のスクロールも実装しています。
各設定をファイルに反映する場合は適用ボタンを押すことでファイルに書き出しを行います。
書き出しを行う際に項目にチェックが入っていないものに関しては書き出さないようにしています。

ツールについて

ゲーム開発では独自ツールを作成することがあります。
今回は自分で使用する場合を考えて作成したのである程度要件は満たせていますが、実際リリースしたばかりのツールは足りないことがあります。
作る前にどういう風に作れば使いやすくなるかを考えて作成しますが、リリースした後も新たな要望や問題が出てきます。
リリース後はツール使用者の反応を得ることが出来るので、自分では考えもしなかった要望や機能の追加を依頼されます。
ツール作成は大変ではありますが、自分が便利になると思って追加した機能を多くの人が使用し日々の開発の役に立っていると思うとうれしく思います。
そういった中で多くの問題を解決し、多くの要望に応えられるようにする為には多くの技術を身に着けることが必要だなと日々痛感します。

おわりに

ツール作成の経験があまりない自分ではありますが、それでも短時間でこういった画面を作成することが出来ました。
ですが、勉強不足な部分が多いと感じたので今後も勉強していこうと思います。
最後までお付き合いいただき、ありがとうございました。