GFF

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

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

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

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

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

初めまして!
第16回FUKUOKAゲームインターンシップで、サイバーコネクトツーに参加させていただいております、
ゲームプログラマー志望の石﨑直弥です。

■参加動機
現在、私はゲームプログラマーを目指すために、
愛媛にある3年制の専門学校に通い、日々プログラミングの勉強に励んでいます。

私はゲームクリエイター科に所属していますが、
その学科内にはゲームプログラマー志望の学生がほとんどで、
プログラマーとしかゲームを制作したことがありません。

そこで、全国からインターンシップに応募された人達とチーム制作ができるという事と、
実際のプロの方々に直接話を聞きに行けるという点に魅力を感じ、参加を決意しました。

■β版作成
さて、始まってから3週間が経とうとしています。
現在の状況はα版からの改善点をフィードバックしつつ、β版の作成に取り掛かっています。

<α版とは>
画像やモデルは仮の物を使用しているが、
ゲームの基本的な要素がほぼ一通り組み込まれた状態のものを指します。
今回は、1ステージだけは一通り遊べる状態をα版とし、提出しました。

2014春サイバーコネクトツー石崎氏1.jpg
▲α版提出時のゲーム画面


<β版とは>
ゲームにおける全ての要素が入りきった状態を指します。
しかし、まだバグ取りがきちんとできていないため、いろいろと目に見えない不具合を残している状態です。

2014春サイバーコネクトツー石崎氏1[1].jpg
▲β版に提出向けて現在制作中のゲーム画面


■ 指摘事項
α版の提出後に、プログラマーの指導担当の方より命名規則についてご指摘を受けました。

<命名規則とは>
プログラムを組む際には、関数や変数に名前を付けることになりますが、
その名付けの際の規約・ルールです。

今回は、チームでの制作になるので、自分にだけわかる変数名や関数名ではなく、
プログラムを見る相手に分かりやすいようにしなくてはなりません。

命名規則の他にも
キャラクターのジャンプ力やプレイヤーの体力ゲージの位置などの
情報をプログラム上で、管理していたのを、ゲームデザイナーやアーティストが、
後からプログラムを触ることなく調整できるようにテキストファイルなどで情報を管理をするようにや、
その情報が格納されたファイルが削除された場合の対応などを考えるようにと 指摘を受けました。

命名規則の参考書籍として「リーダブルコード」を紹介していただきました。
規則というと難しいイメージがありますが、少し目を通してみると、
この本は○○のように記述すべきであるみたいな難しい内容ではなくて、
読みやすいプログラムを書くためのテクニックを紹介している本です。
このインターンシップを機に読んでみようと思います。

2014春サイバーコネクトツー石崎氏1[2].jpg
▲紹介していただいた書籍


■これから
インターンシップも残すところ1週間となり、残り短くなりましたが、
チームメンバーの皆さんと面白い作品ができるように頑張りたいと思います。

最後に今回のインターンシップでの経験を活かして、
もっともっと成長して、プロのゲームプログラマーになって見せます。

それでは、次回の更新をご期待ください。


← Prev 
Next →


【関連ブログ】
 【2014春】サイバーコネクトツー:デザイナーコース 野下遥さん(1)
 【2014春】サイバーコネクトツー:デザイナーコース 野下遥さん(最終)
 【2014春】サイバーコネクトツー:プログラマーコース 厨祐太さん
 【2014春】サイバーコネクトツー:デザイナーコース 坂元治予さん


GFF TOPページ

FUKUOKAゲームインターンシップ TOPページ

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


こんにちは。プログラマー志望の濱浦です。
今回は最終週に行った作業についてご紹介して行きたいと思います。

2014春ガンバリオン濱浦氏2.jpg
まず、私が前回までに行った作業は、
物理演算を動かしてみて「ただ動くだけ」という内容のものでした。

ですが、私はシミュレータを作っているのではなく「ゲーム」を作っているわけなので、
そのために、この一週間の作業を通して「ゲーム」という形になるよう制作を続けました。
たとえば物理演算の実験としてボックスを2、3個出していた時とは違い、
ゲームではもっと沢山のボックスを出す必要があるため、
そういった管理の機能や、ゲームを起動してからプレイして終了するまでの流れの実装を行っていきました。
そのほかにも、ゲームを盛り上げるエフェクトや、
ルールを分かりやすくするユーザーインターフェースの実装も行っていきました。

3週目の水曜日には『高速化する』という新しい課題が伝えられ、高速化に取り組みました。
物理演算は特に"当たり判定"が重く、またすべてのブロック同士で判定を取らなければならないために
非常に低速です。
そのため、低速な当たり判定を使う前に高速で大まかな当たり判定を使って、
低速な当たり判定を使う必要のないものを調べて必要なところだけ低速な当たり判定を使うようにしました。
ほかにも不要な処理の削減や低速なグラフィックの操作回数を削減して高速化を図りました。

ゲーム制作がいよいよ終わりに近づいてくると、ゲームのシステムや機能を増やすこと、
動作を確認してバグを減らすこと、そしてステージの追加の作業を行っていきました。
ステージの作成では編集するたびにプログラム自体を書き換える必要が無いよう、
私は簡易的なスクリプトを読み込める機能を実装しました。

2014春ガンバリオン濱浦氏2[6].jpg
こうして私のゲームは完成を迎えることが出来ました。


そしてインターンシップ最終日、完成したゲームの発表・講評会に臨みました。

終わってみるともう少ししっかりと分かりやすく話せたのではないかと思います。
発表の後の質疑応答では社内ライブラリの使い心地はどうだったかということを質問されました。
そのときに答えた内容は少し言葉足らずになってしまったのですが、
私のライブラリの感想としては「どうしてこういう設計になっているのだろう」と感じた部分も
説明を聞くとその理由に納得して自分のプログラムと比べてものすごくよく考えられているなと感じました。
また、この短い間でよく物理挙動を実装し、ゲームとして仕上げたとの感想を頂き、
とてもうれしかったです。

2014春ガンバリオン濱浦氏2[3].jpg
インターンシップ全体を通しての感想ですが
特に現場の方が大事にされていたのは、『プログラムの書き方』や、『設計について』でした。
学生としてのプログラミングではあまり意識せずに書いていたものも、
プロとしては『分かりやすさ』『安全性』『変更の容易さ』などをしっかりと考えて
プログラムを書く必要がありました。
毎日の講評でプログラムについて色々な指摘を受ける中で、「少し面倒だな」と感じたこともあります。
しかしその時に指導担当の方から「安定性を取るか、書きやすさをとるか」ということを言われて、
プロはしっかりとプログラムの安定性を意識しなければならないのだと感じました。
そういった指摘を受けた点については「どうしてこのような設計になるのか」ということを
指導担当の方に詳しく質問して、しっかりと納得してプログラミングに生かすことが出来ました。

振り返ってみると、とても楽しく、あっという間でした。
一日約8時間という時間のなかで、ゲームを作り、
やっぱり「私はゲームを作るのが好きだ」と再確認できた3週間でした。
確かに難しいと感じたりした部分もありますが、
そういった経験もゲームの完成によって良い思い出として昇華するというものではないでしょうか。


このFUKUOKAゲームインターンシップに参加したことで
私のプログラミングに対する考え方が大きく変わりました。
どう書けば良いプログラムになるのかということをしっかりと理解することが出来たと思います。

2014春ガンバリオン濱浦氏2[5].jpg
指導担当の方をはじめとする社員の皆様には大変お世話になりました。
この場をお借りして感謝を申し上げたいと思います。
本当に、ありがとうございました。


← Prev 
Next →


【関連ブログ】
 【2014春】ガンバリオン:プログラマーコース 濱浦誠悟さん(1)
 【2014春】ガンバリオン:プログラマーコース 狩屋智紀さん(1)
 【2014春】ガンバリオン:プログラマーコース 狩屋智紀さん(最終)


GFF TOPページ

FUKUOKAゲームインターンシップ TOPページ

ガンバリオン ホームページ

初めまして!
第16回FUKUOKAゲームインターンシップで、サイバーコネクトツーのインターンシップに参加している
ゲームプログラマー志望の厨祐太です!

■参加動機
私はゲーム系専門学校に通って、ゲーム制作をしてきました。
しかし、私の通う専門学校にはゲームプログラマーがとても多く、
チームでゲームを作ったとしても、ゲームプログラマーだけで制作しているものがほとんどです。
そこで、同じ志を持ったプログラマー、アーティスト、ゲームデザイナーと
一緒に実際の制作の現場に近い環境で制作を行ってみたいと思い、応募しました。

今回のインターンシップについての概要や参加人数が知りたい方は、
一つ前の記事でアーティストの野下さんが紹介しているので割愛させて頂きます。
参加を検討している方、興味のある方は是非参考にしてみてくださいね!

■ゲームを作り始める前に
さて、ゲーム制作が始まってから一週間。未だにプログラムは書けていません。
なぜならば、やっと通った企画をじっくり吟味しているからです!

2014春サイバーコネクトツー厨さん1.jpg
▲作業中のプログラマー志望、石崎くんです


穴だらけな私たちの企画に対して、
的確なアドバイスを下さっている指導担当の方々には本当に頭が上がりません。
例えば、私達が企画した案を指導担当の方々にプレゼンし、修正していく中で
「キャラクターは2Dなのか3Dなのか」という指摘を頂きました。

2014春サイバーコネクトツー厨さん1[1].jpg
▲企画のプレゼンの際にアーティストの野下さんが描き起こしたラフ画


ゲームを制作したことのある方はご存知かと思いますが、
2Dはリソースの量がどうしても多くなります。

「リソース」とは:ゲームに使用するデータ素材の事をリソースと呼びます。
画像や音楽などがこれに当たり、リソースが多くなるとゲームを始めるのに必要なロード時間が長くなります。
また、メモリの少ないゲーム機などではデータの圧縮や削減がかなり重要になります。

ぱらぱらマンガがいい例ですね。
歩く、ジャンプ、攻撃、他にも色々描いていくとしたら一体何ページ使うか......
想像しただけで大変です。

また、画像に変更が出た際にも、一コマ変えたら他のコマにまで影響します。
場合によっては、全コマ書き直しとなってしまいます。

その点、3Dはモデルを作って保存しておけば、
モデルにモーションを付けて動かせばいいのです。

「モデル」とは:三角形、四角形などの板の集まりのことです。それを3D空間内で組み上げてキャラクターや
建物などを作ります。
「モーション」とは:モデルに付ける動きの事です。

モデルの修正作業、モーションの修正作業ともに容易になります。

チャレンジとスキルアップを目指して参加した今回のインターンシップ。
せっかくならチャレンジを!
ということで、3Dのキャラクターを扱っていくことになりました!

ちなみに、これは私の経験から来るイメージですが、
3Dモデルを使ったゲームの制作ではプログラマーに結構比重が傾きます。
(勿論どちらが楽、などという優劣はありませんが。)
どういうことかというと、プログラム寄りな処理が多くなるからです。
例えば、2Dでは振り返る時もぱらぱらマンガで描かなければいけませんが、
モデルならば軸を決めて、くるりと回転するだけで済みます。
他にも、キャラクターとライトの間に他の物体があれば、ライトから計算して
キャラクターに間の物体の影を落とすことが出来たりします。
表現の幅が広がる代わりに、表現するスキルや処理が必要になる、ということです。

■今週の作業結果
スケジュールを大まかに組んだだけでも、もうご覧のとおり、びっしり埋まってしまっています。

2014春サイバーコネクトツー厨さん1[2].jpg
▲今回のスケジュール(仮)です


かといって、怯んでいては何も始まりません。
出来る事から始めればいいのです。
この記事を読んでいるあなたも、何事にもまずチャレンジ精神で挑んでみましょう!
きっと何かの道が拓けると思います!

今週からはアーティスト志望の坂元さんも加わって四人での制作開始です!
では、次回をお楽しみに!


← Prev | Next →


【関連ブログ】
 【2014春】サイバーコネクトツー:デザイナーコース 野下遥さん(1)
 【2014春】サイバーコネクトツー:デザイナーコース 野下遥さん(最終)
 【2014春】サイバーコネクトツー:デザイナーコース 坂元治予さん
 【2014春】サイバーコネクトツー:プログラマーコース 石﨑直弥さん


GFF TOPページ

FUKUOKAゲームインターンシップ TOPページ

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

こんにちは、狩屋智紀と申します。
前回のブログで登場した濱浦君と同じく、プログラマー志望です。

2014春ガンバリオン狩屋さん1.jpg
まず、今回のインターンシップに参加した動機ですが
ゲーム会社という場を実際に見て感じてみることが重要だと思ったことがきっかけで応募しました。

実は...去年も福岡ゲームインターンシップに応募したのですが
1次選考で落ちて非常にくやしかったので
今年こそは絶対に合格してやるという強い気持ちで改めて応募しました(笑)


福岡に来て最初の印象ですが...、九州地方に来るのは人生初のことで、
来る前のイメージは大阪より暖かいのかな?と思っていました。
ですが、福岡に来てみると「意外と変わらないのだな~」と感じたのを憶えています。

また、私は趣味でランニングをするのですが
福岡の道は凹凸があるからなのか、来た当初は少し走りにくいと感じていました。
が、今では逆に走りにくいのがいい練習になっています(笑)


さて、ゲームインターンシップが始まり、実際にゲームの開発室内に入ってみると
社員の方が一生懸命に仕事に取り組む姿に感動しました。
ゲームに限らず仕事の現場というものを目にする機会がなかったので
仕事に一生懸命に取り組む人達の姿は憧れます。
ゲーム会社なので、なおのことそう感じました。


インターンシップで行った作業についてですが
1週目は、社内のゲーム開発ライブラリの勉強をさせていただきました。

私は今まで、ほとんど自作のライブラリを使ってゲームを制作してきたので
実際の現場で使用されている開発ライブラリを使わせていただけることは、
とても参考になりました。

学んだことについて少し具体的な話をすると...
クラス(※)のコンストラクタ(※)にすべての初期化処理を記述するのではなく
"初期化関数"を予め用意して、その"初期化関数"を呼び出して初期化を行うと効率がいい。
※「クラス」とは
クラス(class)は、クラスベースのオブジェクト指向プログラミングにおいて
オブジェクトの設計図にあたるものです。
※「コンストラクタ」とは
コンストラクタ(構築子、Constructor)は、オブジェクト指向のプログラミング言語で
新たなオブジェクトを生成する際に呼び出されて内容の初期化などを行なう関数、メソッドのこと。

なぜそうするのか?というと、
コンストラクタというのはオブジェクト生成のタイミングで呼び出されるものであるから、
コンストラクタにすべてを記述してしまうことで、
処理の中でまだ使用できないものが、意図せずに使用してしまう可能性があるからです。

この問題にはもう1つ
"new"をして動的に確保することで、
コンストラクタの呼び出すタイミングを操作する、という解決策があるのですが
家庭用ゲーム機での開発の場合"new"は重い処理なので
「できるだけ避ける」ということをプロの方から学びました。

2014春ガンバリオン狩屋さん1[1].jpg
プロからこういった細かい内容のことをたくさんご指導いただき
自身のプログラムの未熟さを身をもって実感しました。

作業内容としては2Dの線や3Dの立方体を描画したり、3Dカメラの操作など、
簡単な内容のライブラリの使い方を、一通り学びました。

2週目からは物理演算を作成しています。
そのため、当たり判定などを勉強していきました。
ですが、自前で実装するには時間がかかりそうだと判断し、
物理演算は「Box2D」を使うことになりました。

また、その日打ったプログラムソースを現場のプロの方に見てもらい
たくさんのことを指摘してくださるのでとても、いい勉強になります。

今回の記事はここまでです。
次回のブログは3週目に行った作業について紹介していきたいと思いますので
よろしくお願いします。


← Prev | Next →



【関連ブログ】
 【2014春】ガンバリオン:プログラマーコース 狩屋智紀さん(最終)
 【2014春】ガンバリオン:プログラマーコース 濱浦誠悟さん(1)
 【2014春】ガンバリオン:プログラマーコース 濱浦誠悟さん(最終)


GFF TOPページ

FUKUOKAゲームインターンシップ TOPページ

ガンバリオン ホームページ

こんにちは、プログラマー志望の濱浦誠悟です。
今回から全2回にわたって、インターンシップについて書いていこうと思います。

2014春ガンバリオン濱浦さん1[1].jpg
私はゲーム系の学科に所属しており、ゲーム会社への就職を目指しています。
毎年福岡ではGFF(福岡ゲーム産業振興機構)がインターンシップを開催しているのを知っていたため、
就職活動をはじめるにあたって、
是非インターンシップを経験しておきたいと思い応募しました。

まず、ゲーム会社にの中に入ってみて感じたことですが
私ははじめゲーム会社には「あわただしい」というイメージがありました。
しかし実際に開発室中に入ってみると社員の方々は静かに画面に向かって
作業や相談事をしていて、とても落ち着いた雰囲気でびっくりしました。

また、指導担当の方を初めとする私に接してくださった社員の方々はインターンシップ生の私に対しても、
「失礼します」「今お時間よろしいですか」「お疲れ様です」と、
とても丁寧に挨拶をしてくださいました。
初日はおどおどとして小さな声で返事を返すことしかできませんでしたが、
次の日からはしっかりと自分から「お疲れ様です」と言うように心がけました。


最初の1週間の作業は、会社のライブラリを使用して、
いくつかの課題に応じたプログラムを作成し、
その都度、書いたプログラムの講評を頂く、というものでした。

講評では指導担当の方からコードについての指摘を多く受けました。
今まで学校ではコードの書き方やプログラムの設計についてはほとんど
指導をされたことがなく、自分なりの書き方でずっとプログラムを作っていましたが、
『効率のよい書き方』や、『変更時の負担が少ない書き方』、
『バグが発生する可能性の少ない書き方』を知ることができました。

また、会社のライブラリは、その会社のノウハウの詰まった大切なものですから、
インターンシップで触れることができたのは大変良い経験になりました。


2週目からは、お題に沿って実際にゲームを作るという課題を出されました。
お題は主に3つで、
(1)3Dで物理演算を使ったゲームを自作すること。
(2)当たり判定や物理演算の部分は自分でプログラムを作ること。
(3)いくつか自分なりの要素をゲームに追加すること。
でした。

2014春ガンバリオン濱浦さん1[2].jpg
私は物理演算というものは普段の学習で取り組んだ経験が無く、
2週目の初日はその方法を調べることからはじめました。
しかし、インターネットで調べただけでは難解な上に、
物理演算のゲームを作るためにはどこから手をつければいいのか分からず
「まずは2Dの当たり判定ライブラリを使うところからはじめよう」などと正直なところかなり弱気になっていました。
その日の講評でこのことを話すと、指導担当の方は私に3D物理演算の本を貸してくださいました。

次の日からはその本の内容に従って数式などをもとにプログラムを組みました。
木曜日にはそれなりに動くものができ、講評で指導担当の方にOKを頂くことができました。

しかし、物理演算ができただけではゲームと言うことはできません。
これから本格的に「ゲーム」としての作品を作っていくわけです。

今は2週目、金曜日の朝。
私はこれから「ゲーム」を作る作業を始めますので、今回のブログはここまでです。

最後まで読んでいただき、ありがとうございました。


← Prev | Next →



【関連ブログ】
 【2014春】ガンバリオン:プログラマーコース 濱浦誠悟さん(最終)
 【2014春】ガンバリオン:プログラマーコース 狩屋智紀さん(1)
 【2014春】ガンバリオン:プログラマーコース 狩屋智紀さん(最終)


GFF TOPページ

FUKUOKAゲームインターンシップ TOPページ

ガンバリオン ホームページ

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