こんにちは!四国は徳島からやってきたプログラマー志望の佐竹です!
今回、FUKUOKAゲームインターンシップに参加させていただき、インターンシップ先であるサイバーコネクトツーへやってきました!
インターンシップが開始されてもう2週間になります。まずは最初の1週間(2月22日から2月26日)に行った内容について簡単にお話します。
まず第1週目は、自分でオリジナルのゲームの企画を考え、書面に起こし操作の仕方やルールを企画書にまとめる、といった内容でした。
そこで今回、私は『地震』をテーマとした3D横スクロールアクションゲームを制作することにしました。それを制作するにあたって、クラスの関係がどのようになっているか、といったクラス図や仕様書を作成しました。また、現在社員として会社で働いてらっしゃる方が過去に作成したオリジナルゲームのプログラムを参考にして、勉強をしながら実際にプログラムを書いたりもしていました。
![IB_サイバーコネクトツー佐竹氏1[1].jpg](https://www.gff.jp/internship/IB_%E3%82%B5%E3%82%A4%E3%83%90%E3%83%BC%E3%82%B3%E3%83%8D%E3%82%AF%E3%83%88%E3%83%84%E3%83%BC%E4%BD%90%E7%AB%B9%E6%B0%8F1%5B1%5D.jpg)
では、ここから第2週にあたる先週までの内容について説明します!
まず3月1日~3月3日。
この日には基本的なゲームの遷移は完成していて、オープニングからステージ選択画面、ゲーム画面からエンディング画面へと、シーンの切り替えは完了していました。
そこで今日から、ゲームで一番重要となってくるであろう『衝突判定』を実装することとなりました。
プログラマーの方から『まともに実装しようとするとかなりの時間がかかるから、簡単なものでいいよ。』と言われていましたが、その簡単なものでさえ、かなりの時間を要しました。
今回制作したゲームというのは、見た目は3Dで、遊びの軸も3Dと、完全に3Dゲームとなりました。
今まで遊びの軸が2Dのものなら制作したことがあるので、衝突判定は容易に出来ていたのですが、3Dとなると途端に判定が難しくなります。衝突される物体である立方体と衝突する物体である球の衝突判定と、その押し戻し量など...。数学のオンパレードとなりました。
プログラマーの方や、同じインターンシップで参加しているプログラマーの友人と話し合ってさまざまな方法を試しましたが、完璧に衝突判定を行えるものを完成させることはできませんでした。
しかし、今回私のインターンシップでの大きな目的は『ゲームを完成させること』です。今のところは少し曖昧なところもあるけれど、ゲームを遊べないわけではないので、このままゲームの中身の部分の制作を行おうと思います。
![IB_サイバーコネクトツー佐竹氏1[2].jpg](https://www.gff.jp/internship/IB_%E3%82%B5%E3%82%A4%E3%83%90%E3%83%BC%E3%82%B3%E3%83%8D%E3%82%AF%E3%83%88%E3%83%84%E3%83%BC%E4%BD%90%E7%AB%B9%E6%B0%8F1%5B2%5D.jpg)
3月4日~3月5日。
今日はカメラワークについて自分なりに考えて実装しました。
私は、カメラワークひとつでもゲームの面白さを更に引き出すことが出来たり、逆にゲームを分かりにくく、面白くなくしてしまう危険性のあるものだと思っています。
現在、制作しているゲームは時間経過とともに『地震』が起こります。この地震を表現するためにカメラワークを使いました。カメラを高速に左右に移動させることによって横揺れを表現することにしました。
また、その他の演出としてゴール地点からスタート地点へカメラを移動させてみたり、移動中にカメラを斜めからプレイヤーを見るようにしてみたり、ゴールの時に少しカメラを寄せてゴールしたことを分かりやすくアピールさせてみたり、といった演出も混ぜてみました。
カメラをここまで操作できるようにしたのは初めてですが、自分の手によって視野が変わるというのは結構楽しくて熱中して開発していました。
自分ではなかなかの演出だと思いましたが、プログラマーの方に見せたところ、まだまだ分かりにくいとのご指摘を受け、修正する段階に入りました。こういったことはやはりたくさんの経験を積まないと出来ないなと思いました。

3月5日。
今日は、ゲームの面白さを決定する、『地震によって起こる災害』のギミックを開発する段階に入りました。
現在開発しているギミックは、上空から落ちてくるブロックが地面に衝突することによって、新たな形状の地面になる、地面に衝突することによって地面に穴が空く、地面から新たな地面が隆起してくる、などのギミックを考えました。
そういった部分においても、プレイヤーに理不尽さを感じさせないように落ちてくるブロックを認識出来たり、隆起してくるブロックの部分を点滅させることによってアピールしたり、とプレイヤーのことを考えながらも難易度を落とさない作りを心がけて制作しました。またそのブロックに衝突するとダメージを受けたりなどの判定もつけて、より一層ゲームらしくなってきました。
こうして先週の1週間はゲームを制作する毎日でした。やはり実際に会社に来て制作しているので、壁にぶつかったときなどに、自分一人で悩んでいるだけでなく、同じインターンシップの友人や、実際に開発に携わっているプログラマーの方などにアドバイスを頂き、新たな手段などを教えていただくことによって開発スピードや新しい知識などを身につけることが出来ることが最大の魅力だなと感じました。
ゲームも完成まであと半分ぐらいとなり、期間も同時に半分ぐらいとなりましたが、これからも制作を頑張っていきたいと思います!
今回、FUKUOKAゲームインターンシップに参加させていただき、インターンシップ先であるサイバーコネクトツーへやってきました!
インターンシップが開始されてもう2週間になります。まずは最初の1週間(2月22日から2月26日)に行った内容について簡単にお話します。
まず第1週目は、自分でオリジナルのゲームの企画を考え、書面に起こし操作の仕方やルールを企画書にまとめる、といった内容でした。
そこで今回、私は『地震』をテーマとした3D横スクロールアクションゲームを制作することにしました。それを制作するにあたって、クラスの関係がどのようになっているか、といったクラス図や仕様書を作成しました。また、現在社員として会社で働いてらっしゃる方が過去に作成したオリジナルゲームのプログラムを参考にして、勉強をしながら実際にプログラムを書いたりもしていました。
![IB_サイバーコネクトツー佐竹氏1[1].jpg](https://www.gff.jp/internship/IB_%E3%82%B5%E3%82%A4%E3%83%90%E3%83%BC%E3%82%B3%E3%83%8D%E3%82%AF%E3%83%88%E3%83%84%E3%83%BC%E4%BD%90%E7%AB%B9%E6%B0%8F1%5B1%5D.jpg)
では、ここから第2週にあたる先週までの内容について説明します!
まず3月1日~3月3日。
この日には基本的なゲームの遷移は完成していて、オープニングからステージ選択画面、ゲーム画面からエンディング画面へと、シーンの切り替えは完了していました。
そこで今日から、ゲームで一番重要となってくるであろう『衝突判定』を実装することとなりました。
プログラマーの方から『まともに実装しようとするとかなりの時間がかかるから、簡単なものでいいよ。』と言われていましたが、その簡単なものでさえ、かなりの時間を要しました。
今回制作したゲームというのは、見た目は3Dで、遊びの軸も3Dと、完全に3Dゲームとなりました。
今まで遊びの軸が2Dのものなら制作したことがあるので、衝突判定は容易に出来ていたのですが、3Dとなると途端に判定が難しくなります。衝突される物体である立方体と衝突する物体である球の衝突判定と、その押し戻し量など...。数学のオンパレードとなりました。
プログラマーの方や、同じインターンシップで参加しているプログラマーの友人と話し合ってさまざまな方法を試しましたが、完璧に衝突判定を行えるものを完成させることはできませんでした。
しかし、今回私のインターンシップでの大きな目的は『ゲームを完成させること』です。今のところは少し曖昧なところもあるけれど、ゲームを遊べないわけではないので、このままゲームの中身の部分の制作を行おうと思います。
![IB_サイバーコネクトツー佐竹氏1[2].jpg](https://www.gff.jp/internship/IB_%E3%82%B5%E3%82%A4%E3%83%90%E3%83%BC%E3%82%B3%E3%83%8D%E3%82%AF%E3%83%88%E3%83%84%E3%83%BC%E4%BD%90%E7%AB%B9%E6%B0%8F1%5B2%5D.jpg)
3月4日~3月5日。
今日はカメラワークについて自分なりに考えて実装しました。
私は、カメラワークひとつでもゲームの面白さを更に引き出すことが出来たり、逆にゲームを分かりにくく、面白くなくしてしまう危険性のあるものだと思っています。
現在、制作しているゲームは時間経過とともに『地震』が起こります。この地震を表現するためにカメラワークを使いました。カメラを高速に左右に移動させることによって横揺れを表現することにしました。
また、その他の演出としてゴール地点からスタート地点へカメラを移動させてみたり、移動中にカメラを斜めからプレイヤーを見るようにしてみたり、ゴールの時に少しカメラを寄せてゴールしたことを分かりやすくアピールさせてみたり、といった演出も混ぜてみました。
カメラをここまで操作できるようにしたのは初めてですが、自分の手によって視野が変わるというのは結構楽しくて熱中して開発していました。
自分ではなかなかの演出だと思いましたが、プログラマーの方に見せたところ、まだまだ分かりにくいとのご指摘を受け、修正する段階に入りました。こういったことはやはりたくさんの経験を積まないと出来ないなと思いました。

3月5日。
今日は、ゲームの面白さを決定する、『地震によって起こる災害』のギミックを開発する段階に入りました。
現在開発しているギミックは、上空から落ちてくるブロックが地面に衝突することによって、新たな形状の地面になる、地面に衝突することによって地面に穴が空く、地面から新たな地面が隆起してくる、などのギミックを考えました。
そういった部分においても、プレイヤーに理不尽さを感じさせないように落ちてくるブロックを認識出来たり、隆起してくるブロックの部分を点滅させることによってアピールしたり、とプレイヤーのことを考えながらも難易度を落とさない作りを心がけて制作しました。またそのブロックに衝突するとダメージを受けたりなどの判定もつけて、より一層ゲームらしくなってきました。
こうして先週の1週間はゲームを制作する毎日でした。やはり実際に会社に来て制作しているので、壁にぶつかったときなどに、自分一人で悩んでいるだけでなく、同じインターンシップの友人や、実際に開発に携わっているプログラマーの方などにアドバイスを頂き、新たな手段などを教えていただくことによって開発スピードや新しい知識などを身につけることが出来ることが最大の魅力だなと感じました。
ゲームも完成まであと半分ぐらいとなり、期間も同時に半分ぐらいとなりましたが、これからも制作を頑張っていきたいと思います!