プログラミング PR

初めてゲームを作った感想

記事内に商品プロモーションを含む場合があります

こんにちはカイリトです。

今回の記事は前回の記事、

で書けなかった事を書いていきます。

内容はゲームを作る中で、

楽しかった事、

楽しくなかった事や失敗した事を書いていきます。

また1つゲームを作り終わったので次の行動も書いていきます。

ゲーム作りで楽しかった事

ゲームを作る中で楽しかったのは6つあります。

それは

  • ゲームを考える時
  • 新しいことがうまくいった時
  • ステージを作っている時
  • 宝を決めるため、アセットストアを探している時
  • カメラの動かし方を調べている時
  • ゲームを動かした時

上の6つです。

これから詳しく書いていきます。

ゲームを考える時

最初にゲームを作ろうと思ってから、

なんのゲームを作ろうか考えていた。

その時は作れるかどうかは考えずに、

こんなゲームは面白いんじゃないかな、

こんな機能がほいいななど自由に考えていた。

そんな自由に考えている時が楽しかったです。

新しいことがうまくいった時

ゲーム作りでは、

作ったことのある機能やスクリプトは、

コピーなどで簡単にできる。

だけど新しいことは調べることから始めないといけない。

例えば、ナビゲーションシステムを使おうと思った時、

最初は使い方などなにも知らなかったのでグーグルで調べた。

その後調べたサイト達の通りにステージをベイクしたり、

少しスクリプトを書くと、

プレイヤーを追いかけるナビゲーションシステムができた。

そのナビゲーションシステムが動いた時は、

興奮したり楽しかった。

新しい事に挑戦してみて良かったと思った。

ステージを作っている時

ステージを作る時で楽しかったところは、

ステージを考える時と、

ステージを作成している時です。

1つずつ書いていきます。

ステージを考えている時

このステージを考えている時は、

ゲームを考える時と同じように、

楽しかった。

具体的には迷路にしようか、

どうやって六面使おうかなと、

考えることが楽しかった。

またどんなものを作るか考えている時に、

迷路について少し調べてみて、

迷路を自動生成する方法をしれたのも良かったです。

迷路を自動生成する方法は3つあって、

棒倒し法、壁伸ばし法、穴掘り法がありました。

ステージ作成に集中している時

ステージは自分でこんなのがいいなと決めて、

ProBuilderを使って立方体を、

少しづつ迷路のようにしていきました。

そのステージをチマチマ作っている時に、

集中している時は楽しかったです。

作り方は立方体を何十にも分割して、

分割したところを持ち上げたりで、

一面づつ通路を作っていった。

もう少し時間のかからない方法はなかったのかなと思った。

宝を探すためにアセットストアを探している時

ゲームの種類を決めた時は、

プレイヤーはunityちゃん、

ステージは自分で作ると決めていた。

だけど宝の種類などは何も決めていなかった。

そこで何かいいものはないかアセットストアで、

無料の物の中から探し始めました。

アセットストアはあまりみていないので、

こんなのも無料なのかと驚きながら探していた。

そのようにアセットストアで、

何にしようかなと迷いながら、

探していたのが楽しかった。

カメラの動かし方を調べている時

カメラは簡単にプレイヤーについていかせることはできるけど、

ステージをみやすくするために、

カメラの向きを変更したかった。

またunityちゃんにもカメラが元からついていたけど、

動かすことはできないので探す必要が出てきた。

探す機能はカメラがキーボードかトラックパッドを動かした時に、

カメラの向きを変えること。

そんなふうに欲しい機能を決めて、

Googleで探して、

必要な情報を探していく。

そうして見つけた情報を試してみて、

動かなかったら自分で少し変えたりして、

動くようにしていく。

下の画像はカメラの視点を変えた後の写真です。

今回のように、

新しい事を探してそれを少し変えて、

使えるようになった時は楽しかったです。

ゲームを動かした時

ゲームを作る途中には、

試運転にゲームを動かしていた。

だけど自分の中でゲームが完成したと思ってから、

ゲームをやってみたら、

ここまでゲームを作ることができたんだという気持ちで感動した。

ゲームの内容はあまりよくないと思うけど、

ゲームを作れたという達成感と、

ゲームを完成させることができた安心感が湧いてきた。

ゲーム作りで楽しくなかった事

ゲーム作りで楽しくなかったことは、

  • ステージを作っていた時
  • スクリプトでエラーが出た時
  • 実装したい機能ができなかった時

の3つです。

これも詳しく書いていきます。

ステージを作っていた時

楽しかった事にステージを作るのに熱中している時と書きました。

ですが

ステージを立方体の六面全てに作るのは時間がかかった。

そして作っている中で、

集中力が切れた時になんでこんな細かい事を、

やったいるんだろうという気持ちになった。

スクリプトでエラーが出た時

初めての機能をスクリプトで書く時は、

エラーが出る事を覚悟していた。

だけど作ったことのある、

スクリプトを試しに動かしてみた時、

全く動かなくてエラーが出てしまった。

なんで動かないんだとストレスが出てきたり、

自分に少しの怒りも出てきた。

詳しく書くと、

宝を生成するスクリプトでエラーが出た。

書いたスクリプトは前に書いたスクリプトとほぼ同じで、

なんでエラーになったのか分からなかった。

Googleでエラーの文を翻訳して見ると、

オブジェクト参照がオブジェクトのインスタンスに設定されていません

と翻訳された。

それで1回スクリプトをみてみると、

使う変数に何も入っていないのが原因かなと思った。

そこで使う変数に適当な宝のオブジェクトを入れてみたら、

エラーが治って動くようになった。

エラーの文をそのまま検索したり、

翻訳することで解決することができることがわかった。

実装したい機能ができなかった時

最初の予定では、

ステージの六面全てを使う予定だった。

そのためにunityちゃんを動かすことと、

重力の向きを変えようとしていた。

調べてみて重力の向きを変えることができた。

だけど問題が出てきた、

それは下の画像だと少しわかりづらいかもしれないけど、

重力が思っていた方向に働かないこと、

unityちゃんが斜めになってしまうこと。

の2つの問題が出てきた。

検索しても答えが出てこなかったので、

どうすればいいのか分からなくて、

何度も少しづつ変えてもできなくてイライラしてしまった。

この問題は検索の仕方が悪かったのか解決方法が出てこなかった。

その結果この機能の実装を諦めてしまった。

ゲーム作りで失敗した事

ゲーム作りで失敗したことと、

楽しくなかったことはかぶるところがあるけど、

その違いは失敗した方はあまり感情が動かなかったことで分けました。

ゲーム作りで失敗したことは、

  • スクリプトでエラーが出たこと
  • 六面が使えなかったこと
  • unityちゃんでエラー
  • ステージに宝がめり込んだ
  • その他細かい失敗など

の5つです。

六面が使えなかったは前のところで書いたので、

他のものを詳しく書いていきます。

スクリプトでエラーが出た

元々は制限時間がきたら、

宝を全部消してプレイヤーが取れないようにする予定だった。

だけどスクリプトを書いてみて試しに動かした時に、

ゲームが重くなってしまい動かなくなってしまった。

その結果制限時間がきても宝を消すのは諦めた。

代わりに時間がきた場合はポイントが増えないようなスクリプトを書いた。

unityちゃんでエラー

プレイヤーの視点を動かすために、

自分でカメラとそのスクリプトを用意した。

初めはunityちゃんが動いているだけで、

エラーには気がつかなかった。

だけど毎回動かしている中で、

unityちゃんをジャンプさせると、

ずっとエラーになっていることに気がついた。

エラーは

SendMessage setCameraPositionJumpView has no receiver! UnityEngine.GameObject:SendMessage(String) UnityChan.unitychanController:FixedUpdate()

と書いてあった。

これをそのままGoogle検索して一番上の記事を読むと、

unityちゃんに専用のカメラが存在している事を知った。

それを使わないとエラーになってしまうので、

専用のカメラを使ってみるとエラーがなくなった。

ステージに宝がめり込んだ

宝を生成する工場はXとYの軸をランダムにして生成する機能にした。

その結果ステージの壁に重なり合ってしまった。

対処法として生成方法を変えるか、

宝を生成してから動かすかの2種類思いついた。

そして宝を動かす方にきめ、

ステージと宝のcollisionが接触したら宝が動くスクリプトを書いた。

だけどステージの壁の中に入ったものはなんとかできなくて、

生成する数を増やす事で対処した。

その他、細かい失敗

その他にも制限時間やポイントが画面に映らないことや、

宝が数通りに生成されないことなど色々失敗してきた。

制限時間とポイントは、

textのpositionをプラスとマイナスを間違えてしまったことで、

映らなかった。

宝の方は原因は分からなかったけど、

数が多すぎると生成されないことはわかった。

だから宝の数を300個ぐらいにしたらちょうどいいぐらいになった。

まとめ:次の行動

自分で考えたゲームを作ってみて楽しかったことは、

  • ゲームを考える時
  • 新しいことがうまくいった時
  • ステージを作っている時
  • 宝を決めるため、アセットストアを探している時
  • カメラの動かし方を調べている時
  • ゲームを動かした時

の6つだった。

これらから考えると自分は何かを考えたり探すことと、

それを形にできた時が楽しく感じることが分かった。

ゲーム作りで楽しくなかったことは、

  • ステージを作っていた時
  • スクリプトでエラーが出た時
  • 実装したい機能ができなかった時

の3つです。

やっぱり自分の思った通りにならなかった時が、

楽しくないと感じていた。

だけど自分の思い通りになることは、

滅多になくなると思うので、

失敗してもやけにならないようにしていきたいです。

次の行動:プログラミング勉強

1つゲームを作ってみたけど、

まだまだ自分の作りたいものには足りないものがあることがわかった。

このゲームを作っている途中にお金の勉強もしていて、

人生の羅針盤を作った結果、

優先順位から考えてゲーム作りをいったんやめることにしました。

その代わりにPHPのプログラミングを勉強していきたいと思います。

人生の羅針盤で決めたことなんかは、

また違うブログの記事にする予定です。