GFF

GFF事務局お問い合わせ
トップ > FUKUOKAゲームインターンシップBLOG

FUKUOKAゲームインターンシップBLOG

世界、そして、未来を見据える人たちが、福岡にいます。

GFF加盟企業をはじめとする福岡のゲーム企業の現場に入ってその仕事を体験する、ゲームインターンシップ制度。
ゲーム制作の厳しさ、楽しさを学んで、ゲームクリエイターになるきっかけをつかむ体験をブログ形式で報告します。

プログラマーコース: 2016年12月アーカイブ

■氏名:坂田 祐将
■レポート期間:8/6~8/12

こんにちは、プログラマー志望の坂田です。今年の福岡は暑いです。連日気温が36度あたりまで上がるので本当に参っています。

■制作の進捗
いよいよ企画が決まり、実装が始まりました。少しずつですがゲームの形が見え始めています。制作が進んでくるとやっぱり楽しいですね。インターンも残り半分ということで、みんなの進捗をまとめておきます。

ゲームデザイナー:河村
坂田さん01.png坂田さん02.png Unityでエフェクトを作ったり、ステージを作ったり、いろいろと作業を進めているようです。プログラマーやアーティストは自分の作業でいっぱいいっぱいになりがちなので、ゲームデザイナーが幅広いタスクをこなしてくれると助かりますね。

アーティスト:小原、谷
坂田さん03.png
坂田さん04.png

キャラクター、敵キャラ、背景、などの3Dモデルの制作を進めているようです。なにやら世界観ができてきていますね。主に谷くんがモデリングを、小原さんがアニメーションを担当するようです。3Dモデル関係のタスクはただでさえ作業量が多いのに、それを2人でこなしているのは本当に凄い。

プログラマー:蛭川、松井、坂田
坂田さん5.png

ゲームシステム、プレイヤーのアクション、敵のAI、UI、カメラワークなど、ゲームの基本となる部分の実装が進んでいます。どんなゲームになるんだろう楽しみだなぁ・・・。

■このインターンシップで学んだこと
「ゲーム制作はコミュニケーション」というフレーズが今回のインターンシップでの一番の学びでした。そもそもゲームは、漫画や小説などに比べると1つの作品を作るために関わる人の数が多いです。そのため、コミュニケーションの質に応じて、大きくゲームの質が変わってくるようです。
例えば企画を決める会議では、質の良いコミュニケーションをとりながら会議を進めることで、沢山のアイディアが生まれます。会議のときに話が弾んだ要素は、実装してみると見栄えが良いことが多いようです。他にも例えば、プログラムを実装するときは、プログラマーとゲームデザイナーがイメージを共有できてないと、機能を作り直す必要が出てくるかもしれません。それによって、クオリティアップに使える時間も減ってしまいます。人数が多いことはメリットにもデメリットにもなり得るので、コミュニケーションの質を上げることで、メリットを強めていく必要があるようです。

そういえば、インターン初日の最初に指導されたのも、挨拶などの基本的なコミュニケーションでした。挨拶は基本の基本なので、逆にないがしろにされやすい部分のようです。現に僕もインターンの前まではあまり意識していなかったので、これからは挨拶を徹底する人になろうと思いました。

■これからの抱負
インターンも残すところ半分になりました。ゲームの面白い部分を詰めて、CC2のインターンでしか作れないようなCC2らしいゲームにしていこうと思います。ひとまずは、α番の提出が8/17に迫っているので、そこに向けてゲームの面白さを盛り込んでいきたいと思います。 次回はアーティストの小原さんから第4回をお伝えしてもらいます。 ぜひまた読みにいらしてください。 お付き合いありがとうございました!



第22回FUKUOKA ゲームインターンシップは1月16日まで募集受付中!
詳しくはコチラのページをご参照ください!
 こんにちは、プログラマとしてインターンシップに参加した大脇です。

大脇_01.jpg私が今回のインターンシップに応募した理由は、実際に現場で働いているプロの方からアドバイスを頂くことで、コーディング力の向上や新たな発見ができるのではないかと考えたからです。
 インターンが始まり最初に教えて頂いたことは、チームで開発を行う際に便利なツールである、SVN(Subversion)の基本的な使い方でした。これは、ファイルやドキュメントなどのバージョンを管理するツールで、誰がいつどんな変更を行ったかをチームで共有することができ、任意のバージョンに戻すことも可能です。ゲーム開発はチームで行うため、このようなバージョン管理システムは必須であると言えます。

 続いて、ファイルの入出力について学びました。
これまで私が行っていたファイル入出力は、ファイルを1行ずつ読み込み、所望の形式に変換していくという手法でした。この手法は外部パラメータの仕様に変更があった際にソースコード側の修正に手間がかかります。今回学んだ手法は、バイナリ形式で記述された外部パラメータを構造体のメンバに一括で読み込むというものです。
コンピュータが直接理解できるバイナリデータを利用することで高速化を実現するとともに、ファイルに記述されたパラメータの項目と構造体のメンバを一致させるだけでよいため、読み込みの手間も減ります。
ただし、普段あまり意識したことのなかった構造体のアラインメントを考慮する必要があるため、その点は注意する必要があります。

 さて、バージョン管理や効率の良いファイル入出力など、現場ならではの技術を学び、いよいよゲーム開発に取り組むことになりました。
今回作成するゲームは、ガンバリオンさんが、実際のゲーム開発で使用している独自のライブラリを用いた3Dゲームです。
まずはライブラリの解析から行いました。そこで、実際に関数を呼び出してみて、これは使えそうだというものを洗い出していきました。手探りの状態のため困難な作業ではありましたが、現場で使われているライブラリに触れるなど、インターンの場でしか味わえない、とても貴重な体験となりました。
 今回私が作成するゲームは、3D空間に配置されたキャラクターをプレイヤーが操作し、周囲に配置されたボールに触れることでスコアを稼いでいくというものです。ただ、それだけではゲームとして面白くないと感じたため、いくつか特殊なボールを設置し、レーダーを使用しながら回収していくことでプレイヤーが有利になる仕組みを用意しました。
これによって、ある程度遊びの幅は広がりましたが、どうしたらゲームを面白くできるのかを考えることの難しさを痛感しました。私は、プログラマという仕事は与えられた仕様をソースコードに落としていく、それだけを淡々とこなすものだと考えていました。そのため、汎用的な設計方法を学ぶことや、発売されているゲームの再現などしか行っていませんでした。
インターン最終日には、学んだことや作成したゲームの発表を行いましたが、ゲームをどうやったら面白くできるのかを考えることもプログラマとして大切だということを教えて頂きました。これからはそういった点も考えながらゲーム制作をしていきたいと思います。

大脇_02.jpg
 私はこれまで2Dゲームしか制作したことがなく、このインターンで初めて、3Dゲームならではの概念に触れることになりました。個人で制作しているだけだと、「2Dゲームでしっかりしたものを作れるようになってから」だとか、「どんなゲーム開発にも応用できる設計方法を学んでから」などといった感情から、なかなか3Dゲーム制作に踏み切れないでいたので、このインターンで3Dゲーム制作に触れたことは、今後のゲーム制作にとっていいきっかけになったと思います。
 私は今回のインターンに参加して、もっと早めに応募をしておけばよかったと感じました。

大脇_03.jpg
自分だけで学ぶよりももっと広い視野を得られるうえに、わからないことはプロの方に教えて頂くことができる最高の環境です。
相談できるインターン生もいます。早いに越したことはありません。是非参加を検討してみてはいかがでしょうか。





第22回FUKUOKA ゲームインターンシップは1月16日まで募集受付中!
詳しくはコチラのページをご参照ください!
こんにちは、プログラマー志望の仁科香苗と申します。

仁科_01.jpg
私が今回のインターンシップに応募した理由は、プロのゲームプログラマーはプログラムを作るときに何を意識しているのかを知っておきたいと考えたからです。


最初に与えられた課題は、ファイルの入出力でした。C言語でのファイルの入出力は経験がありましたが、今回はVisualBasicやPythonを使ってバイナリデータとして入出力するというものでした。初めて使うものだった為最初は戸惑いましたが、慣れるととても使いやすかったです!C言語やC++だけでなく他の言語も触ってみようと思いました。
次の課題は、会社独自のライブラリを使って3Dゲームを制作することでした。今まで使ってきたライブラリの使い方の先入観があり、ライブラリの解析の時は分からないことや仕組みに頭を抱えていました。しかし、ゲームを作っていく過程で便利な機能が多くとても使いやすかったです。

私が制作したゲームは、キャラクターを動かして流れてくるボールを避けたり当たったりしながら高得点を狙うというものです。流れてくるボールは、ダメージを食らうもの、スコアが増えるもの、ボールの流れが速くなるもの、体力が増えるものの4種類を用意しました。それぞれのボールの数やプレイヤーのパラメータ等をExcelで作成し、それをバイナリ化してプログラムで読み込んでいました。どれをバイナリ化するのが良いかアドバイスをいただきデータ化しました。データをプランナーも調整しやすいようにするという意識が薄かったので、データの扱い方について意識が変わりました。

また、3Dゲームの制作では、当たり判定の高速化をするように指示を受けました。どのような方法があるか調べていく中で、8分岐空間分割という方法を知りました。モートン順序というものを使って、空間を分割し番号を割り振っていくというものでした。勉強しながら実際にプログラムにしても、思うような動作にならずとても苦戦しました。

仁科_02.jpg
「自分なりのやり方でもよい」と助言をいただき、頭を整理してシンプルな当たり判定を取ることにしました。単純に空間を分割して番号を割り振るという方法です。キャラクターのいる空間の番号と、ボールのある空間の番号が一致したら当たりと判定するようにしました。このやり方は、ボール全てと距離を測って一定距離以内なら判定するという総当たりの方法よりもはるかに高速化することができました。実際に、ボールを10万個用意しプレイしたところ、目に見えて動きが変わっているのが分かりました。

その他に高速化で工夫した点は、描画処理です。ボールを10万個描画すると、あまりの重さに一切動作ができないという状況に陥ります。そこで、描画を開始する位置を決め、その位置よりプレイヤー側にいたら描画をするという方法で高速化を図りました。その位置より奥にあるボールは描画されないため、処理が大変軽くなりました。

成果発表会では、プログラマーとしてだけでなくゲームクリエイターとしての意見も頂くことが出来ました。プロの方から操作性についてご指摘をいただき、自分の視野が狭かったことを痛感しました。

仁科_03.jpg
ボールの加速によるキャラクターの移動速度や、キャラクターの動きに合わせたカメラの移動について改善の必要があるというものでした。このようなご指摘を受け、デバッグをするときの考え方を改めました。よりゲームとして面白くするには、操作性のよさについても考えながら作っていかなければならないということを学びました。

今回のインターンシップでは、「処理の高速化」について特に成長できたと思います!見やすいプログラムを心がけて、一つあたりのソースファイルや関数の中身が膨大な行数にならないよう気を付けていました。しかし、処理の高速化まではあまり考えていませんでした。今回、高速化に重きを置いてプログラムを作り、高速化がどれだけゲームに影響するかということを学びました。

今回のインターンシップで新潟から福岡に来て、初めは慣れない環境に不安がありました。ですがインターンの間、社員の方が相談に乗ってくださったり、福岡での過ごし方を教えてくださったりと大変親切にしていただき、インターンシップにしっかり集中することができました!

この3週間で学んだことや反省点を、今後の制作に活かします。また自分だけでなく、制作するメンバーや学校の友人にも共有し、より高レベルなゲーム制作をしていきます。

インターンシップでお世話になった社員の皆様、本当にありがとうございました。





第22回FUKUOKA ゲームインターンシップは1月16日まで募集受付中!
詳しくはコチラのページをご参照ください!
ポスター
第26回応募要項

2020年3月

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

プログラマーコース: 2020年1月: 月別アーカイブ