GFF

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

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

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

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

プログラマーコース: 2011年4月アーカイブ

こんにちは、プログラマー志望でFUKUOKAゲームインターンシップ生の山口です。
約一ヶ月あったFUKUOKAゲームインターンシップもいよいよ終了です。

では、一ヶ月間私が何を行っていたのを書いていこうと思います。

まずチーム制作についてですが、指導担当の方から『3Dアクションパズルゲーム』というテーマを頂きました。3Dアクションパズルというジャンルは作った事が無いに等しく、FUKUOKAゲームインターンシップ生全員で『どんなゲームにするのか』『どこをパズルに持っていくのか』等、一人一人が持ち寄ったアイデアをそれぞれ順番に皆の前で発表し、どのアイデアを採用するかという事を、時間を掛けて話し合いました。

そこで主に重視した点は、やはり『期間内に作れる作品』でかつ『面白そうと思える』かどうかです。そして皆が納得して作っていける様に、疑問に思った点等も発表者にどんどん質問していきました。

最後には『第三者の人の意見も欲しい』という事で、サイバーコネクトツーの開発スタッフの方にアイデアを見て頂きました。

スタッフの方からは、一つのアイデアだけにこだわるのではなく2つのアイデアを融合して新しいものを考えたり、ゲーム自体がぶれない様ターゲットを絞る事等、自分達だけで話し合った時には考えもしなかったアイデアや助言を頂きました。

ゲームを『遊んで頂くもの』として常に考える、『どうすれば遊んでいる人が面白いと思うのか』等も指摘して頂き、またアイデアやビジュアルから受ける年代層のイメージ等も細かく指摘して頂きました。

こうやって頂いた意見を元に、更にチームで話し合い、一つのゲームに絞る事が出来ました。

では作品について自分の担当した所を書きたいと思います。

私の担当は『ブロックの配置処理』です。

ゴールに辿り着く為に必要なブロックを配置するという、ゲームの主軸にあたる場所を担当した事もあり、操作性や配置のし易さなどにも気を遣いながら制作を進めました。

『ブロック選択中の画面』
IB_cc2_yamaguchi2[1].jpg

『ブロック配置中の画面』
IB_cc2_yamaguchi2.jpg

キーの説明もインターフェイスとして表示する事で、遊ぶ人がどのキーを押せば良いのかが分かりやすくしました。
そしてもう一つ、キーを押し続けると連続して移動し続ける処理も入れ、間違って配置してしまったブロックも消せる様処理を入れました。

『配置したブロックが足場に』
IB_cc2_yamaguchi2[2].jpg

こうやってブロックを一つ一つ選択して配置していき、ゴールに向かう為の足場として使います。

配置されたブロックを足場にしてゴールまで辿り着けばステージクリアとなり、全てのステージをクリアすればエンディングが流れます。

一ヶ月という期間の中で、多くの人の協力を得ながらこの作品を制作しました。制作中はいくつもの気づきがありましたが、その中の一つは、『ゲームで遊んでくれる人への思いやり』です。

例えば、制作している私たちは、どのキーを押せばゲームが進行して行くのかが分かっています。その為、説明が不十分になっており、初めて触った人は必ず「どのキーを押せば始まるの?」「どうやってブロックを配置するの?」など『何をして良いのか分からない状態』になってしまいました。

制作する立場だからこそ陥ってしまう部分を今回の経験で気付ける様になりました。

この一ヶ月間で、本当に多くの事を学ぶ事が出来ました。
自分がプログラマーになる為にはどうすれば良いのか、という道筋や目標も見えてきました。

まず自分自身の未熟な点として
『スピードが遅い』
『勉強する、組むのか良いが技術など中々身につくのが遅い』
『全て自分一人でやろうとする(相談しない)』
が改めて気付かされた点です。
指導担当の方から、『やり方を変えてみる』『技術を身につける為にはゲームを作る』等のアドバイスを頂きました。

自分の頑張るという意思や姿勢は強くても、それが中々身につかない理由として『駄目だったら別の方法へ』などの道しるべを新たに発見出来なかった事だと分かりました。
技術に関しては今回学んだ事を活かし、何の為に要るものなのか、誰に遊んでもらうゲームなのかを踏まえてゲームを作る。
それは単なる自分だけが遊ぶゲームではなく、沢山の人に遊んで頂くものとしてのゲームです。
そうやって制作していく事で何の為に必要な要素なのかも考えられ、一から作る事で起こるバグにも対応出来る様に自然となってきます。
また『これは絶対に入れたい』という要素も入れる為に、どうすれば一番良いのか、どうやって入れるのか等も考える様になり、それを組んで行く事で技術も身についていくとアドバイスを頂きました。

そしてもう一つ、『こうじゃないと駄目だ』と全て一人でやろうとする事へのアドバイスを頂きました。
ゲーム制作は一人ではなくチームで行うので、『腹を割って話し会える関係』でないと駄目なんだと言われました。
私の場合はどうして良いか分からなくなってしまった時も、とにかく自分で解決しようとして黙々と作業を続けるといった事をしていました。
しかしそうでは無くて、チームなんだからどんな些細な事でも『皆で作るゲーム』なんだからアドバイスし合い、補い合って作って行かないと駄目で、自分の考え、皆を考えを常に伝え合って知っておかないとゲーム制作する上で『私はこうだと思っていたのに』等食い違いが発生すると言われました。


このアドバイスを受け、FUKUOKAゲームインターンシップ終了後、これからは技術だけでなくゲームを一本作る為に『これは必要なんじゃないか』という事と同時に何の為に必要なのかも考えて組み込めるように、ゲームを一本一本完成までしっかり制作していって、自分のやり方を見つけて頑張っていきたいと思いました。
また、一度組んで終わりではなく別の方法で組むとどうなるのか等を常に追求して挑戦し、色んな方向から答えを出せるプログラマーを目指してプログラムの経験を積んでいきたい思います。


そして今回FUKUOKAゲームインターシップに参加したメンバーと、またゲーム業界で会いたいと思います。
初めて会った人ばかりでしたが、チームとして頑張って来れたのは皆が一丸となって考え、行動していけたからだと感じています。
そういった仲間に会える事が出来て、本当に良かったです。

自分自身もプログラマーとしてゲーム業界を目指し頑張っていきます!

最後になりましたが、この様な大変貴重な機会を下さったFUKUOKAゲームインターンシップ関係者様、株式会社サイバーコネクトツー様、そしてここまで一緒に取り組み、頑張ってくれたチームメンバーには本当に感謝しています。

短い間でしたが、本当にありがとうございました!

========================================
========================================


【他のインターンレポートも読んでみる】
こんにちわ!プログラマー志望の中野です!
FUKUOKAゲームインターンシップに参加してから3週間が経ちました。
早速3週間目の報告をさせて頂きます。

現在チーム制作期間真っ只中です。
お菓子を題材にした「アクションパズル」を制作しています。
制作期間が2週間ちょっとと、非常に少ない期間の中で完成を目指しています。

制作にあたっては、私を含むプログラマー3人で、担当を分けて制作しています。
私が担当しているプログラム箇所は・・・

・ゲームプログラムを組みやすくするベース制作
・他のプログラマーが組んだプログラムを組み込む作業
・スタート・エンドロール
・エフェクト関連

・・・以上の4つです。

私が担当している作業について簡単にご説明します。

まず、プログラムのベース制作についてです。
ベースというのは、つまりライブラリのことです。
週の前半はベース制作に費やしました。

私自身のことももちろん、他の2人のプログラマーも作りやすくなるような環境を作っています。私が作るベースの出来次第で、プログラマーの進捗状況が変わることもある大事なポジションです。

当然のことですが、プログラムが間に合わなければアーティスト担当がせっかく制作してくれた画像やモデルも無駄になってしまいます。

他のプログラマーの方が私のベースを使うということは、分かりやすいソースを書くことを常に心がけなくてはなりません。変数名や関数名、クラス名、コメントなどを初めて意識して書きました。こういった部分は、今までの個人制作の時には意識していなかった部分でした。

今回のインターンシップで一番成長したことは、常に仲間を意識してソースを書くことです。プロのプログラマーにとっては当たり前のことですが、ゲームプログラムを作り始め
個人製作しかやったことがなかった私にとって大きな成長となりました。

IB_cc2_nakano2.jpg


次は、プログラム結合についてです。
ゲームの大まかな流れである【スタート → ゲームプレイ → エンディング】それぞれ担当を決めて制作しているので、当然ですが、各プログラマーが制作したプログラムを結合しないと絶対に動きません。その結合を担当しているのが私です。
すごく限られた時間で、他のプログラマーとの結合を完了させる必要があります。
また、同時にバグがあるならどこにバグがあるか探索して報告もします。

今週は2回結合作業を行いましたが、幸い問題無くできました。

次は、スタートとエンドロールについてです。
最初は、自分自身でペイントソフトを使用して四角形や丸形の仮絵を作成し、プログラムを組んでいきました。その後、アーティスト担当のインターン生から仕上がった絵をゲームに組込むと、サイズが違ったりして座標や軸がズレたりするのですが、テキスト形式に座標を保持しておいたり、定数として保持しておくことで、スムーズに作業をすることができ、この作業も木曜日と金曜日に完成しました。

IB_cc2_nakano2[1].jpg

最後に、エフェクト関連の作業についてです。ベース制作と平行して作業を行っていました。エフェクト担当の方は制作がとても速く、プログラマーは、そのスピードに対応しないといけません。また、アーティストさんがこだわりを持って作成してくれる、エフェクトアニメーション。素早く、間違いなくゲームに反映できるよう、元からベースに組み込んでおいたり、アニメーションウェイト値をアーティストさん自ら調整できるように、テキストデータに保持しておくなど、工夫をして対応をしました。

IB_cc2_nakano2[2].jpg

サイバーコネクトツーでは、いつでもプロのゲームクリエイターに分からないことを聞く事ができるという事は、前回のブログにも書きましたが、それは個々人の課題制作だけでなく、ゲーム制作過程でも同様で、分からないことや、間違いに対して指導担当の方からアドバイスを頂くことができます。

例えば、今回のゲーム制作で、私たちが最初に考えたスケジュールでは、インターンシップ最終日までプログラムを打ち込む予定でした。しかし、プロの方の体験などを参考にして、ゲームのバグを取り除く期間を多めに取ったり、スケジュール通り進まない場合を想定して、予備日を設けたりするなどアドバイスを活かしながら制作を進めています。

IB_cc2_nakano2[3].jpg

あと約1週間!チーム制作、頑張ります!

以上、中野でした!今からまた結合作業だー!

========================================
========================================


【他のインターンレポートも読んでみる】
FUKUOKAインターンシップの期間は一ヶ月というなか、もう一週間が経ちました。
時間が経つのは本当に早いです。

今回は、私のインターンシップでの一週間についてプログラマー視点から書いていこうと思います。

一日目は、全体ミーティング(朝礼)に参加して社員の方全員の前でご挨拶をさせて頂きました。
大勢の人の前での挨拶には慣れていなく、声も震えてしまいましたが皆さん真剣に聞いて下さり、温かく迎えて下さったのでとても嬉しかったです。

その後、会社内の見学をさせて頂きましたが、こうやって日々、株式会社サイバーコネクトツーのゲームが作られているんだと思うと興奮が止まりませんでした。
現場の空気に触れる、というのは中々できない事なのでこの様な機会を頂けるのは本当に凄いと改めて思いました。

その後プログラマー3人に対し、インターンシップ指導担当の方から課題を頂きました。
課題は「ゲーム作りに必要なベース作り」です。
そして今回の課題は、何もない状態から作る様に言われました。
つまり学校等から貰っているライブラリ等も使わないで、自分が一から勉強を行ってプログラムを組むという課題です。

私は"バリバリ組める"という方では無かったので今回の課題には苦労しました。

初日に関しては「ウィンドウ表示」を行いました。
まずウィンドウが無いと何も始まらないので、まずそこから手を付けました。
とりあえず必要であろうものをノートに書き出し、本当に基本的な所からやっていきました。

こうやって組んでいくとDirectXに関してはただ使っていただけで、関数やスケルトンの事を何も理解出来ていなかったんだと悔しく思いました。

ゲームにとって必要なものは何なのかというのが自分の中でハッキリと決まらなくて
もやもやする日々が続きました。

IB_cc2_yamaguchi1.jpg

私はこの最初の一週間、まずプログラムの一つ一つを理解しようと思い勉強から入りました。

何も理解しないままコピー&ペースト等で形にしたとしても、自分の力にはならないと思ったからです。今まで私は、学校等から配布させる関数やスケルトンプログラム等を使って制作を行っていました。それでは駄目だと思い、まず"理解する事"から入って行こうと決め課題を進行していきました。

『調べる』・『理解する』・『理解できたら組み込む』の繰り返しを行った一週間でした。

そして、ウィンドウ表示は出来ても次に何を入れるべきかにも迷い、時間を大幅に取ってしまいました。

結果的には、今回のチーム制作のテーマは2Dか3Dかのどちらを主に使用するか分からなかった為、まずエフェクトやスコア等私自身が要るだろうと思ったものを表示出来る様にしようと思い、画像の読み込みと表示を出来る様にと組み込みを行いました。

テクスチャ情報読み込みや、読み込み時のサイズを自動的に取って来るにはどうするか等もプログラマー3人で情報をやり取りし、組み込む事に成功しました。

出来上がりを指導担当の方に見ていただいたのですが、やはり「スピードが遅いから、これからもっと効率よく組んでいけるようにね」と指摘を頂きました。

そしてもうひとつ、コメントにも少し指摘をして頂きました。
コメントは書けばいいというものではなく、書いていることへの補足程度で構わないと言われました。
私自身コメントに頼り過ぎていた部分が多く、コメントを見なければ書いているプログラムの意味が分かりにくい状態でした。

コメントだけではなく、関数名や変数名も自分以外の人が見てもちゃんと理解してもらえる様に書くのが大事なのだととても勉強になりました。

とても基本的な事かも知れませんが、ゲームというのは個人ではなく大勢の人が集まって作るので、こういった事もとても大切なんだと気付きました 。

IB_cc2_yamaguchi1[1].jpg
IB_cc2_yamaguchi1[2].jpg


来週からはスピードアップを目指して、確実に一歩一歩進めていける様に頑張りたいと思います。
続きはまた次回に。

========================================
========================================


【他のインターンレポートも読んでみる】
ポスター
第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月: 月別アーカイブ