+++ date = "2023-12-25" tags = ["ue5"] title = "β版を作ったけど公開を見送った話" slug = "game" +++ 今回は、ゲームのβ版を完成させたんだけど公開を見送った話をします。 理由としては「クオリティに問題があるから」という一点につきます。 今回はそんなゲーム制作で考えたことを書いていきたいと思います。 ### 1ヶ月でゲームを完成させる 11/30くらいからはじめたゲーム制作ですが、最初はどんなゲームにしたいのかとか、そういうのはあまりありませんでした。ただキャラクターを動かしてゲームの世界を飛び回っていました。 これがゲームと呼べるのかと言うと、呼べないでしょう。ゲームとは条件があるものだから。例えば、クリア条件や報酬条件、勝利条件などなど。 さて、そんなことをしているうちに、アドベントカレンダーの日が近づいてきました。私は12/24に担当していて、ゲーム作りを始めたよって話をしようと思ってたんだけど、急に思い立って、ゲームを完成させて公開しちゃおうと思いました。 これを思いついたのが12/20あたりだったと思います。そこから本格的にゲームの実装を書きはじめたのでした。 ゲームはシンプルに「アイがカードを落としたのでそれを探す」というものです。簡単なように見えて相当面倒なゲームの作り方をここではじめて学習しはじめることになります。 それまでは本当にのんびりしたもので、ゲームのタイトル画面すら作っていませんでした。 12/24にゲームを完成させようと思わなければ、おそらく、ずっとタイトル画面すら作らなかったでしょうね。その意味で「とりあえずゲームを完成させる」という目標を短期に設定できたのは本当に良かった。 さて、今回のβ版の内容に触れていきたいのですが、私が行ったのは主に3つでした。 #### 1. タイトル画面の設定 ここでは、ユーザー名の入力欄を作ってカードアカウントのidを取ってくる実装を行いました。あと、ワールドを移行する処理などを初めて実装しました。また、ゲームをスタートできる期間を設定し、その期日を過ぎると「公開は終了しました」みたいな表示を出るようにしました。また、クリアしている人も「ゲームはクリア済み」と出るようにしました。これらはapiに新たな項目を追加することで実現しています。 idは後にアイテムをゲットした時、つまり、クリア時ですね。クリアしたときにカードアカウントに特定のカードを送信する実装に使います。 #### 2. 星に入れるようにする ゲームでは最初に大きな星が目の前に登場します。実はアイテムはこの星の中にあります。飛んでいって星に入れるようにしなければなりません。ですが、これもなかなかにテクニックが必要でして、私が使っているアセットでは、星にぶつかると消えてしまう実装になっていました。そのため星の中にちょうどいい大きさの円アクターを入れて、それにぶつかるとワールドを移行するようにしました。 #### 3. アイテムを拾う これがゲームのクリア条件であり、アイテムを拾う処理と、アイテムを消す処理を作りました。ここでは本当に複雑な処理を行います。アイテムを拾うとグローバル変数にとってあるidを元にカードアカウントへの配送処理を行います。同時にゲームをクリア済みとapiに伝達します。 他にもメッセージを表示したり、bgmを設定したりといったことをやりました。 これでβ版は完成です。β版をプレイして動作が確認できたのは12/23でした。 ### 色々と考えた末に公開を見送る 私は基本的にmacで開発し、srcをwindowsに送ってbuildするという方式で開発しています。windowsで作ってもいいのですが、なんとなくメインがmacでないと落ち着かないというか、そんな理由からmacで開発しています。 で、windowsでbuildするわけですが、なぜかapiへのpost-requestがwindowsでは動いていませんでした。これではゲーム内でアイテムを獲得してもアカウントに反映されません。ちなみに、get-reqは動いています。 この問題を把握したのは12/24でした。 これは色々やれば修正や回避することはできると思いました。ですが、ここでもう一度考える機会がありました。 「本当にこれを公開していいのだろうか」 一応、クリア条件も設定されゲームとしては普通にプレイできると思います。ですが、クオリティに納得していない自分がいました。 これはwindowsではpost-requestが不明なerrによって動いていないという些細なことが問題ではありません。全体的に納得していないのです。 とりあえずゲームを完成させてみようと思い、完成させることはできました。 「とりあえず完成させる」これはすごく重要なことだと思います。そう思うことで、私は色々と実装を進めることができました。そう思わなければ進んでいない。 ですが、ゲームのクオリティというか、全体的な完成度の高さというものは、ゲームにおいて、特に、ビデオゲームにおいて、とても大切なことです。 最初の印象がすべてを決める。 後々も引きずってしまう。 そういうものではないでしょうか。 もう少しだけゲーム制作やってみる。