GFF

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

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

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

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

プログラマーコース: 2015年6月アーカイブ

タイトル:インターンシップに参加しているからこそできること      期間:3/20~3/25

こんにちは!始めまして。ゲームプログラマー志望の遠藤です。
今回は、インターンシップに参加しているからこそできることを記事にまとめていきたいと思います。

■志望動機
私は現在、ゲームプログラマーになる為に、神戸にある三年制の専門学校に通い、日々プログラムの勉強に励んでいます。 私の学校では、個人の制作とチーム制作の両方を経験することができるのですが、基本的にはプログラマーしかおらず、他の職種とのゲーム制作というものを体験することがきません。 そこで、この福岡ゲームインターンシップのことを知り、ここでなら他の職種と一緒にゲーム制作ができる!と思い、今回のインターンシップに応募させていただきました。

■福岡ゲームインターンシップに参加したはいいものの・・・
福岡ゲームインターンシップに参加することが決まったのはいいものの、制作する時の言語はC++で、私はC++というものを一度も触れたことがありませんでした。 最初はコードの書き方も全くわからず、この一か月間やっていけるのか!?という不安を抱きつつ、日々を過ごしていました。 前回の人たちの記事をみてわかる通り、プログラマー志望の方は私含めて3人います。 そのうちの2人はC++をよく使っているということなので私からみたら2人は神々しく見えました。 この一か月間はこの2人と指導担当者の2人に助けてもらいながらC++の勉強と並列してゲーム制作を行いました。

■インターンシップに参加する人たちってどんな人?
今回私たちは、6人でゲーム制作を行っています。 そのうちの私を含め5人は県外の方です。 やはり、福岡ゲームインターンシップに応募し、面接などを通して無事合格してきた人たちなだけあって皆様やる気がすごく満ち溢れています。 ゲームプログラマーも3人でお話しているときは基本技術面の話しをしています。(もちろん雑談もあります) 2人の方はプログラム経験が私よりも長いということもあり、為になる話しをたくさん聞くことができます。 サイバーコネクトツーでは、休憩時間などの間に直接プロの方とお話をすることができます。 ゲームプログラマーとして気になるゲーム制作での知識や心がけていること、ソースコードを綺麗に書くコツなど、たくさんのお話を聞くことができます。 遠藤1.jpg ※インターンシップに参加するできるプログラマーは椅子に座らないらしいです!
(↑できるプログラマー1人目)

■ゲームは完成したのか!?
ゲームの完成日は3月25日でした。 私が担当しているところはタイトル画面・ステージ選択画面・リザルト画面ですが、やはり初めての言語を使いながらのゲーム制作ということもあり、 作業進捗としては決して良いとは言えるものではなかったです。 しかし、ゲームは絶対に完成させたいので、なんとか頑張って時間までに完成させることができました。 その後は実際にプレイしていただいたのですが、デバッグ期間というものを全く取れなかった私たちは、様々な方にゲームを遊んでいただいた時にはバグがいっぱい出ていました。 皆様もゲームを作る際は、デバッグ期間は必ず余裕を持って取るようにしましょう。 遠藤2.jpg ※デバッグ期間は余裕を持たないとこのような顔になります(できるプログラマー2人目)

■福岡ゲームインターンシップに参加して、約一か月間が経ちました
私の福岡ゲームインターンシップは間もなく終わりとなります。 この一か月間で学ぶことはとても多かったと思います。 学生のうちにこのような体験をできたことをとてもうれしく思っております。 インターンシップが終わってからも、サイバーコネクトツーで得た知識を生かし、これからも立派なゲームプログラマーになるために日々がんばっていきたいと思います。 この記事を読んでいる皆様も、インターンシップなどのイベントに積極的に参加をするようにして、毎日を貴重な一日にしましょう!

■ サイバーコネクトツー公式ホームページ

【関連ブログ】
【2015春】サイバーコネクトツーでインターンシップ!(1)
【2015春】サイバーコネクトツーでインターンシップ!(2)
【2015春】サイバーコネクトツーでインターンシップ!(3)
【2015春】サイバーコネクトツーでインターンシップ!(4)
【2015春】サイバーコネクトツーでインターンシップ!(5)
タイトル:制作ゲームついにα版完成!?      期間:3/13~3/17

みなさんこんにちは。ゲームプログラマー志望の山中です!
この度は第18回FUKUOKAゲームインターンシップに参加させていただき、サイバ―コネクトツーでインターンシップ生として勉強しています。

■参加理由
私は現在、福岡市内にてゲームプログラマーの勉強を行う為、専門学校に通っています。これまでに制作してきたゲーム作品は、自分が作りたいと思ったゲームを好きな期間で作り上げる、といったように特に時間やゲームの仕様に悩まされること無く自由に取り組んできました。
またプログラムのコードの内容に関しても、とにかく実装が第一で安全性や使いやすさ等はあまり気にせずに書いてきました。しかし、一度だけ複数人でのゲーム制作を経験した際に、これから自分の勉強していることを仕事としていく上では「決まったクオリティの成果物」を「決まった期間内に」、「チーム全体で」「作り上げる」といった意識が必要だと感じるようになりました。
そこで、福岡ゲームインターンシップの中でも「チーム制作」に重点を置いて取り組んでいるサイバーコネクトツーさんなら今の自分に足りないものを沢山吸収できるんじゃないかと思い、今回のインターンシップに応募させていただきました。

■「くっつく...?」
同じインターンシップ生として頑張る人が私以外に5人います。
ゲームデザイナーが1人
アーティストが2人
プログラマーが2人(計3人)
といった構成です。

ゲームデザイナーは他の色々な職種の作業内容を把握し、全体の進捗を管理したりゲームの面白さに着目してステージごとの難易度等を調整するお仕事です。オールマイティな知識とスキルが求められるとても幅が広く難しい職種です。
アーティストは主にゲームに使用する画像素材やモデル素材を1から作成していくお仕事です。スタートボタン等の小さい画像からゲーム全体を覆うようなタイトル画像まで 1つ1つこだわりを持って作る、ゲーム制作では欠かせない職種です。
プログラマーは実際にゲーム画面を表示したり、プレイヤーの入力によってキャラクターを動かしたりするお仕事です。1つのソースコードを複数人で扱う為、個々の仕事の役割分担が特に重要な職種です。

今回のインターンシップではこの3つの職種に仕事を分担し、ゲームを制作してきました。サイバーコネクトツーでは指導担当者の方からゲームのお題をいただき、そのワードを元にゲームを制作していきます。

今回のお題はズバリ「くっつく」でした。
作りたいゲームの企画案を皆で持ち寄り、最終的に一つのゲームの イメージを固めていきました。

■「口に出す」ことは大事
チーム制作では各々が得意とする仕事を一点集中して行えるので 1つのゲームに必要な要素を分担することができ、個人制作に比べると 短期間で高いクオリティの成果物が期待できます。
しかしその反面、同じ職種の方とはもちろんのこと、異なる職種の方とでも 意見をしっかり交換して不確定要素を極力無くすことが大事になります。 最悪の場合、自分の作業が無駄になったり、逆に相手の作業を無駄に したりすることも出てくるでしょう。
今回のインターンシップではそういったことに特に気をつけて、 「分からないことがあればすぐに相談する」「説明できるように自分の意見を まとめておく」といったようなことをチーム全体で心がけています。

■α版完成!
そして本日、α版の発表が行われました!
ゲームの内容としては 「フィールドを転がっていく主人公をプレイヤーがゴールに導く」 といったものになっています。

・プレイヤーは背後にあるブロックを色ごとに押し出したり、引っ込めたりできる
・プレイヤーは主人公の進行方向を変えたり、その場に停止させることができる
・主人公がブロックに押し出されたり、足場のブロックが無くなるとミス扱いとなる
・ブロックに張り付いているギミックを踏むと様々な効果があらわれる

以上のようなシステムを利用し、頭を使いながら高いスコアを目指すことが このゲームでの目標になります。

指導担当の方にα版をプレイしていただいた際の貴重なご意見としては
・主人公の動きがあまり親切ではない(操作しづらい)
・ブロックに押し出されたり足場が無くなった際にミスだと分かりづらい
・プレイヤーに対してUI等の情報が少ない
等といった点が挙げられました。

私が客観的に視た感想としては、α版に必要だった要素を取り入れられたのは良いが 肝心のゲームの面白さに関してあまり考えられていない、といった印象でした。 これからの期間は完成版として必要な要素を更に明確にしていき、 完成させるだけではなく、「面白い」「クリアしたい」「また遊びたい」と 思わせられるようなゲームに仕上げていくことに力を入れて 取り組んでいきたいと思います。 山中1.jpg     ▲α版のゲーム画面。ゴールに向かって突き進め!!

■最後に
プログラマーの視点から、今回のインターンシップで痛感するのは違う考え方やソースコードの書き方を持っているチームメンバーとのコミュニケーションの大切さです。 自分一人だとなかなか意識が行き届かない「見易いソースコード」や 「汎用的に使えるクラスの作成」等に関しては学ぶことが多いですし、 逆に自身が持っている知識を他人に分かりやすく教えることも 理解度の再認識にも繋がります。 また、プロの仕事場の一画をお借りして制作を行っているので、 実際に現役で制作に携わられている方々とお話したり、アドバイスを 頂くことができるのもこのインターンシップの良さの1つです。 この記事をご覧いただいている学生の皆さんも是非、自身のスキルアップの 一環として是非インターンシップ等のイベントに参加してみてください! また、この様な充実した福岡ゲームインターンシップという学習環境をご用意していただいた福岡ゲーム産業振興機構様、ゲーム企業の皆様にこの場をお借りしてお礼を申し上げます。

残り日数も少なくなってきましたが、最後まで全力で頑張りたいと思います!
ありがとうございました。

■ サイバーコネクトツー公式ホームページ

【関連ブログ】
【2015春】サイバーコネクトツーでインターンシップ!(1)
【2015春】サイバーコネクトツーでインターンシップ!(2)
【2015春】サイバーコネクトツーでインターンシップ!(3)
タイトル:ゲームの土台作り      期間:3/6~3/10

皆さんはじめまして!ゲームプログラマー志望の岸将史です。
今回、第18回FUKUOKAゲームインターンシップということでサイバーコネクトツーにお世話になっております。

■参加理由
私は普段名古屋の専門学校で勉強しているのですが、あまり学校ではチーム制作に携わってきませんでした。しかし、ゲーム業界ではチーム制作が基本中の基本。ですので、インターンシップを通じてチームで制作する上でのコミュニケーション能力や作業分担を学びたいと思い参加しました。

■早速コーディングへ
今回は例年と比べて非常に早い段階で企画がまとまったので、インターン1週目からプログラミングする事になりました。コードを作成する前に、プログラマー同士で使用する変数やクラスにおける命名規約を明確にするところから始めました。

命名規約というのは、プログラマー同士でクラス名や変数名の記述方法を統一することです。これはプログラマーにとって意外に重要な作業で、きちんと話し合っておく必要があります。でないと他の人が作ったクラス名が分からなかったり、その関数が何をしているのか理解できなかったりとプログラマー間での意思疎通が難しくなります。

その後実際にプログラムを組むことになったのですが、今回使用することになったのはDirectX9でした。これは、DirectX11でのモデルのアニメーション表現が約4週間というインターン期間において困難と判断しての選択です。しかし、実は今回参加しているプログラマーの3人ともDirectX9においての予備知識はほぼ皆無!土台となるフレームワークもない状態でした。 まずは必要最低限のものから揃えようということになり、テクスチャ読み込み、モデル読み込みを実装することに。

幸いDirectX9に関する情報は数多くあるので実装自体はあまり時間がかかりませんでした。しかし、アーティストの方から受け取ったモデルを読み込む際に何故かエラーが!エラーを追ってみると、モデルが持っているテクスチャのファイルパスが文字化けしてました。 どうも原因はアーティストの方が作業していたディレクトリと、私がモデルを置いたディレクトリの違いによるものの様でした。こういう問題も起きるのか。チーム制作恐るべし。
その後順調に機能を追加していき、何とか作業開始から約1週間で土台となるフレームワークを粗方作ることができました。また、今回のゲームのステージはブロックを敷き詰めたデザインになる為、簡単にステージを作成できるツールをフレームワーク作成と平行して行いました。

実際に作成されたツールがこちら↓ 岸1.jpg
このツールはC#のフォームアプリケーションで作られています。開発するゲームはxboxコントローラによる操作を想定しています。ボタン入力により、そのボタンの色にあったブロックが押し出されたり引っ込んだりしてプレイヤーを導くゲームなのですが、このツールは色ブロックの配置を指定したり、スタートやゴールの位置を決めたりできるステージエディタです。右側のパレットで色を選択し、左のマス目をドラッグすることで直観的にステージを描くことが出来るようになっています。作ったデータは保存することで、テキストファイルとして出力されます。それをプログラム側で読み込めばステージが作られる仕組みです。

これ1つあるだけでステージが量産できるので、ステージにおいてはもうほぼ言うことがありません!仕事が早い!

インターン第2週目からは実際にゲームのメイン部分の制作に入っていく予定です。 その上で担当指導の方から、α版までに必要なタスクを書き出し優先順位を決めるべきという指摘を頂いたので、テキストファイルにタスクを洗い出し、担当者を確定させました。 岸2.jpg
α版完成まであと1週間。果たしてゲームメイン部分は無事完成するのか!?

次回はアーティストの方のお話です。どうぞご期待ください!

■ サイバーコネクトツー公式ホームページ

【関連ブログ】
【2015春】サイバーコネクトツーでインターンシップ!(1)
こんにちは、プログラマ志望の山本祐太です。

2014winterinternganbarion.jpg
前回からの進捗は、まず、1週目までにプレイヤーや敵が撃つ弾を作り、プレイヤー、敵、弾がぶつかっているかどうかを判断する当たり判定を作りました。
ここまでは、今までやったことがあることなのであまり苦労することはありませんでしたが、実際に動かしてみると、大量のキャラクタを動かしているためあたり判定を行う回数が多く、前と比べて処理に時間がかかってしまい、ゲーム全体の動きが遅くなってしまいました。

2週目の前半は前回問題になっていたゲーム全体の動きが遅いということを解決するために、一番遅いであろう当たり判定のところを修正して高速化する作業を行いました。
まず、当たり判定の高速化の技術の中でどのような技術を使用するか、そして、その書き方を勉強しました。今回は「4分木空間分割」という全体の空間を細かい空間に分けてその中で当たり判定を取る方法を使用することにしました。
しかし実際に組んでみた結果、高速化をする前よりかえって遅くなってしまうという事態に直面してしまいました。
このことを相談してみたところ、やり方自体は間違ってはいないが「プログラムの実行中にメモリを確保する」という遅い処理をそのプログラムの中で多用してしまっていたため遅くなったということが分かりました。
そのため、「メモリをあらかじめ確保しておく」方法に切り替えて、さらに、画面外の不要な当たり判定や描画などの処理を省くことによって高速化することができました。

2週目の後半までに当たり判定の高速化が終わりゲームの大半は完成しましたが、現状のシンプルな内容ではゲームとして少し物足りないので、新たな要素を追加しました。
内容は、プレイヤーの弾が敵にあたると敵がダメージを受け爆発して、その爆風に当たった敵も連鎖的にダメージを受け爆発するというものです。さらに爆風でダメージを与えた場合は弾でダメージを与えた場合より得点が高くなるという仕様にしました。
これにより、弾を当てて1体ずつ倒していくよりも、敵が密集している危険なところに行って倒していくほうが、やられやすいけど得点が多くもらえるというハイリスク・ハイリターンの面白さが加わりました。

以上の要素を加え、あとは細かい調整をして何とかゲームとして完成させることができました。

最終日は、今回のインターンシップの報告会をしました。

2014winterinternganbarion5.jpg                              (緊張が伝わってきます)


2014winterinternganbarion6.jpg                            (たくさんのアドバイスを頂きました!)

報告会では制作した作品を発表し、社員の方々からプロとしての意見を頂けました。それにより、よかった点、反省点などが分かり、今後の作品制作の参考になりました。
さらに、報告会が終わった後に、最先端の技術やゲームなど、ゲーム業界の現状などが分かる「GDC」というイベントに参加した社員の方々からの報告会に参加しました。プロのイベントということもあり、難しい話が多く、理解できない部分もありましたが、ゲーム業界の深い話に触れられる良い機会だったと思います。

また、インターン期間中に福岡ゲームコンテストの表彰式やゲームクリエイターの対談が聞ける「GFF AWARD 2015」に参加しました。プロのゲームクリエイターの貴重なお話が聞けたり、若手社員の方々の学生に近い視点でのお話も聞けたほか、福岡の学生さんの作品を直に触ることができ、よい勉強やモチベーションの向上につながりました。

今回のインターンシップでは「処理の高速化」の部分が特に成長できたと思います。
今までは、プログラムの「見やすさ」や、「変更のしやすさ」、「汎用性」は意識していましたが、ゲームにおいて必要な「処理の高速化」はあまり意識することがなく、また知識もほとんどありませんでした。しかし、今回実際に大量のキャラクタを動かすゲームを作成したところ、処理が遅くてゲームにならないということが起きたため、処理の高速化の大切さを学びました。
以上のことを意識して今後の作品作りなどに取り組んでいきたいです。

インターンシップを終えて、初めは、初めての環境でほかのインターン生もいなくて、少し不安でしたが、会社の方の丁寧な指導や、休み時間の会話などで、少しずつ楽しめるようになりました。

2014winterinternganbarion7.jpg                           (リフレッシュルームにてランチタイム)

今回のインターンシップで、アマチュアとプロの違いがよくわかったので、これからはプロの作り方を意識してゲーム作りに励んでいきたいと思います。

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

■ ガンバリオン公式ホームページ


【関連ブログ】
【2015春】ガンバリオンでインターンシップ!(1)
こんにちは、プログラマ志望の山本祐太と申します。

2014winterinternganbarion.jpg
私が今回のインターンシップに応募した理由は、ゲーム会社に就職する前に、実際にゲーム会社とはどのような所なのかを具体的かつ明確に知っておきたいと考えたからです。

福岡に来てみて驚いたことは、近所の店が充実していることでした。
名古屋から来たため荷物が多くなると困ると思い、あまり多くのものを持ってきませんでしたが、実際に来てみると足りないものが出てきて少し困りました。
しかし、私が借りた部屋の近くには弁当屋などのあると便利な店や、家電量販店などのいざという時に必要な店など、さまざまな店があったため、足りないものはほとんど買い揃えることができました。
名古屋での私の住んでいるところは都心から少し離れたところにあるので、福岡の都心の利便性を痛感しました。

インターンシップが始まり、会社に入ってまず初めに言われたことが「表情が堅い」でした。緊張していたというのももちろんありますが、ゲーム制作はコミュニケーションも大事なので表情を出したほうが伝えたい事が伝わりやすくなるとのことでした。
実際、社員の方を見ていると作業中は静かに集中していますが、休憩のときは皆さん楽しそうに話していて、コミュニケーションを取りながら1つの作品を作っているのだなと実感しました。

初日は会社独自のライブラリの解析から始まりました。
私が普段学校で使用しているものとは違うライブラリだったため、使い勝手が違ったり、今までやったことのないような処理があるなど、初めのうちは少し困惑しましたが、 慣れていくと、あると便利なものがすでに用意されていたりして、使いやすいと感じるようになりました。
ライブラリの解析が終わると、そのライブラリを使ってゲームを作り始めました。
内容は、フィールド上にたくさん出てきた敵を撃って倒していくシューティングのようなゲームを想定しています。
初めは床の配置といった比較的簡単なプログラムを組んでいたため、特別な技術はあまり必要ではありませんでしたが、自分の持っている技術も積極的に使っていきたいと思います。


2日目は、プレイヤーや敵を配置して操作したり、デバッグ表示をしたりしました。
学校では、動きを確認する際デバッグ表示をせずに確認していましたが、 プロの方に、バグが出てもすぐに原因が見つけられるようにデバッグ表示をすることは大切であると教わり、デバッグの重要性を知りました

2014winterinternganbarion2.png           (さまざまなパラメーターを表示してすぐに確認できるようにしています)


もうひとつ起きた問題点は、ファイルの入力のやり方でした。
こちらも、学校ではあまり勉強していなくて、普段はC++で用意されているファイルの入出力を使用していましたが、会社で使っているファイル入力のやり方と大きく異なっていたため、理解と解決に時間がかかりました。
具体的には、普段使用していたC++のやり方は、ファイルを開いて、ファイルからデータを1つずつ順番に読み込んで使用し、最後にファイルを閉じるというやり方でした。
しかし、会社でのやり方は、最初にファイルの中のデータすべてを読み込んで、メモリに格納し、格納したメモリからデータを取得するというやり方でした。
最終的にやることはあまり変わりませんが、概念の違いにより、プログラムの書き方も違ってくるため、プロの方に丁寧に教えてもらいながらじっくり勉強しました。


2014winterinternganbarion3.jpg

3日目である今日は、前日にできなかったファイルの入出力の続きを行いました。
プログラムを組んでいる際に、メモリの容量が足りなくなるという事態が起こりましたが、プロの方のアドバイスと、自分の持っている技術で何とか解決できました。
今回は解決できましたが、私は今までメモリのことをあまり考えてこなかったので、そこもプロの方は違うのだと思いました。


今回の記事はここまでです。
次回は、さらなる進捗をお届けしていきたいと思います。
短い期間ですが、よろしくお願いします。

■ ガンバリオン公式ホームページ

ポスター
第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月: 月別アーカイブ