おはこんばんにちは senehataです
今回も前からたまに書いてるゲーム開発日記シリーズ書いてこうと思います
前回
今は動く漢字間違い探し(詳細は記事下)というゲームのアップデートに取り組んでいるのですが、昨日丁度リファクタリングの作業をやっていたので、今回のお題はリファクタリングにしますかね
リファクタリングってそもそも何だよって人向けに説明すると、個人的には「プログラムを後から変更しやすい形に変える作業」だと思ってます。自分はまだまだプログラムについて初心者なので、とりあえずwikipediaで言葉の定義を見てみると、
リファクタリング (refactoring) とは、コンピュータプログラミングにおいて、プログラムの外部から見た動作を変えずにソースコードの内部構造を整理することである。また、いくつかのリファクタリング手法の総称としても使われる。ただし、十分に確立された技術とはいえず、また「リファクタリング」という言葉に厳密な定義があるわけではない。
まあとりあえず、コードの中身を整理するみたいな曖昧な定義でもいいみたいですね。
言葉の定義は今回の記事ではどうでもよくて、もっと重要なのはゲーム開発において何でリファクタリングやるの??ってことかなと思います
タイトルには既に書いたんですけど、リファクタリングはゲームの寿命を伸ばすためにあるんじゃないかと勝手に僕は思ってます(勝手に思ってるだけ)
まだUnityでゲームを作りたての時はとにかく自分が作りたい挙動をプログラムで表現できれば100点満点じゃないですか。で、ひたすらエラーと戦ってゲームが完成したらめちゃくちゃ達成感に満たされる。
初めたての頃はそれで全くもって問題ないんですが、問題は一つのゲームに集中して時間を投じようと思った時ですね。
つまり割と大きめなゲームを作ろうとした時なんですが、なんでそうすると問題が起こるのかというと「プログラム同士の関係性がどんどん複雑になってくる」からに尽きます。
いや別に複雑でいいじゃんと思う人もいるかもしれませんが、複雑であることによって起こるデメリットはいくつか挙げることができて、一つ目にめちゃくちゃストレスがかかります。
ゲーム開発ってスムーズに自分の思い通りにことが運ぶと楽しいんですよ。楽しいものを作ることは楽しいです。でも、自分の思い通りに作れないとストレスが溜まってきます。ゲーム開発をやってると思い通りに作れないタイミングがしばしばあるのですが、コードが複雑だと思い通りに作れない状況に出くわす回数が急激に上がります。
つまり、ストレス増し増しゲーム開発と化すわけです。こうなるとどんどんモチベーションが落ちます。
なので、仮に一つのゲームに多くの時間をかけるなら最初から排除できるストレスの原因は排除するに尽きます。せっかく楽しむために開発してるので、ここはしっかりやりたいところですね
複雑であることのデメリット二つ目は開発時間が伸びることです。
理由は単純で、複雑に絡み合ったコードを読み解くのには時間が掛かります。そのため、その上に新たな新規機能を実装しようとすると大きな時間を要するのは必然ってなわけですね、、、
ただ、一つ問題なのがリファクタリングという作業自体にもある程度の時間を要するというわけです。なので、とにかくリファクタリングしまくって開発は何も進んでませんわという状況に陥ることはまさに本末転倒です。
したがって、どのくらいリファクタリングすれば開発効率が最良になるかは考え所です。
しかし、僕の今の知識ではどの程度のリファクタが最適なのかという判断基準としての知識を持ち合わせていないので判断できないのがきついところですかね
とりあえず、毎回のアップデートごとに最初の10時間はリファクタリングと今の所は定めてます。
まとめると、今回のタイトルは「リファクタリングで寿命を伸ばす」だったのですが、開発者から余分なストレスを取り除き、開発効率が上がる環境を整えられれば自ずとゲームの進化を促せるでしょう。したがってリファクタは長期的な視点に立って安定してゲームを運営していける土壌になるのかなと思ってます。
コメント