【Unity】なるべくシンプルに実装する方法を考えましょう
Unityを使ってゲーム開発をする場合、できることが多いですよね。「クセがある」と言われるUnityですが、知れば知るほどできることの幅が増えていきます。
できることが増えるのは嬉しい反面、シンプルに実装できる部分についてもちょっと手間の込んだやり方をしてしまうこともあります。技術が磨かれてついつい色々と盛り込んでしまうのは開発者あるあるだと思いますが、思考をさらに先に進めてシンプルに実装することを心がけていきましょう。
シンプルな実装はメンテナンスが簡単で、かつ他の人にも伝わりやすいので、共同で管理することもできるんですよね。そうすると私たち自身の負担も減らせるかも知れません。その浮いた時間で別の新しい機能を作っていくことでさらに成長して……といいループに入れるのでシンプルな実装を目指してみましょう。
昔の失敗
これは私の失敗の話です。Unityを使い始めてそれほど経っていないころ、とある失敗をしました。
その失敗とは、AudioSourceのvolumeではなくAudioMixerからデシベルで音量を制御していたこと。
そのゲームではUIのスライダーを使って音量を制御できるようにしていたのですが、その値をデシベルで管理していたんです。
スライダーの値を最小値にしても音量が0にならないし、プレイヤーの耳を壊さないように大きな値にならないよう制限を付けたりと結構ドキドキしながら実装を行っていました。
今振り返れば、AudioSourceのvolumeを使えばデフォルトの状態でやりたいことができたのですが、Unity初心者だった私はそれに気づかず時間を費やしていたのです。
知ると使いたくなる
インターネットで情報を探し歩くと、見つけたものを使ってみよう! と好奇心が先行して実装を行ってしまうのですが、それにとらわれてしまうことも多々あります。
新しく知った情報って、ついつい人に話したくなりますし、ゲームの機能として盛り込みたくなったりします。特にそれが結構複雑な機能だったりすると、複雑なものを扱えている自分に酔ってしまったりすることだってあります。
先に挙げた例だと、AudioSourceを使って実装できる音量変更の処理について、より難しいAudioMixerを使って実装しちゃったのがこれに当たります。デシベルで値を扱うのはついつい理系の血が騒いでしまったからでした。この値を使える自分カッケー! みたいな気持ちがなかったといえば嘘になります。
ここで「自分が実装したいのは何か?」という本質を見失うと、私のようにシンプルな方法でできることをさも難しいことのように実装し始めるので、本質を考えるようにすると良いでしょう。
実装したい機能を実現する方法はいくつかあると思いますが、その中でもシンプルにできる方法を調べるようにするのがベスト。シンプルであることは大きなメリットを持っています。
「知ると使いたくなる」という好奇心を使うなら、シンプルな方法を探しちゃいましょう。
機能の複雑さはユーザーには関係ない
私が上で挙げた失敗をしたときには、「機能の複雑さはユーザーには関係ない」という点が抜け落ちていました。同じ機能を実現できるのなら、実装方法が難しかろうが簡単だろうが、ユーザーにとっての利便性は変わらないんですよね。
もし複雑に実装しようとして何日も使ってしまったとしても、費やした日数そのものがユーザーにメリットを与えるわけではないんです。
それだったら無理に複雑にしないで、シンプルに実装する方法を探すのが賢明です。シンプル=簡単ではないのがまた難しいところですが、シンプルに実装した方がスマート、という感覚がいいかもしれません。
そもそもUnityを使う理由って
Unityなどのゲームエンジンを使う理由は簡単にゲームを作るためです。
例えばゲームを動かすための共通する処理を自分で実装しようとすると、それはそれは大変なことになります。ゲームで使うファイルをロードする仕組みだったり、設定値に応じて画面上の指定された位置にUIを配置したりと、自分が作りたいゲームの内容に入る前に土台から作らなければなりません。
こうした面倒な部分を省いて、自分が表現したいことに集中するためにゲームエンジンを使うのですが、ブログラミングを行うことができることからいくらでも拡張できるんですよね。
簡単にゲームを作りたいのに、そのツールを使って複雑なことをしてしまうのは本末転倒ですから、なるべくシンプルにゲーム開発を行ってみましょう。(必要な拡張ならどんどんやるべきですが、私の例のようにシンプルにできるものはシンプルにやった方が楽だと思います)
シンプルさの追求
最初からいきなり洗練されたシンプルな実装方法を身に付けるのは難しいので、たくさん試してみるのが大切です。最初は不格好でも良いのでまず機能を実現することから始めて、それができたらだんだんとシンプルにできないか発展させていくのが良いでしょう。
目指す方向としてはシンプルな実装方法ですが、なぜそのシンプルな方法を目指すべきなのかを知るためにも様々な実装方法を学んでみる必要があります。なぜそれがシンプルなのか、ということを言うためにはシンプルでないことも知っていないといけませんからね。
この辺りは自分で経験を積んで、それを集積していくことで見えてくる部分だと思います。
私はさもできているかのように話していますが、今でもずっと勉強し続けていますし、多分これから先も勉強し続けていると思います。なので、一緒にがんばっていきましょう。
ゲーム開発の攻略チャートを作りました!
-
前の記事
【Unity】実は2Dの方が素材集め大変なんじゃないか説【ゲーム作り】 2020.08.12
-
次の記事
【ゲーム開発】プログラミングは使い回しが肝!再利用性を意識しよう 2020.08.14
コメントを書く