GFF

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

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

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

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

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

■氏名:上岡 ギデェオン 

■職種:プログラマー

■期間:8/6(月)~8/31(金)


こんにちは、上岡ギデェオンです。

良くラスボスみたいな名前だと言われます。

01.jpg


ん、「全然上岡って顔じゃない」ですって?

余計なお世話です


血こそは半分ウガンダですが、生まれ育ちは福岡県の福岡県民です。

だから、キャプテン翼の何故か日本語がペラペラな外国人みたいな

感じのキャラをしています(日本人ですが)。

さて、自己紹介はともかく、25回目のFUKUOKAゲームインターンシップで、

サイバーコネクトツー様でのインターンシップの経験について話していきます。

最後までよろしくお願い致します!

02.png

私は今回が初めてのインターンシップだったため、

始まった当初は構えてました。

「担当者が怖い人だったらどうしよう?」

開発環境はどんなんだろう?」

面接に合格してから、本当に色々な心配が頭に込みあがって不安でした。

ですけど、インターン参加後の結論から書きますと...、



めっちゃいい人しかいませんでした。



指導担当者他のインターン生も良い人過ぎて、逆に自分の性格の悪さが目立ちました。

心配はまったく必要ありませんでした。


03.jpg
▲"いい人達"(インターン生&指導担当者)


むしろ環境が良すぎて、

逆に"何か裏があるんじゃないか"と疑うレベルでした。裏はありませんでした

環境の良さの一例

  • プロの現場で働いてる人の話がいっぱい聞ける!(たっぷり活用しました!)
  • 会社の参考書や漫画が借りられる!(面白いものがたくさんあった!)
  • 会社近くのアパートが激安!(私は実家から通いました)
  • パソコンのスペックが半端なく良い!(プロ仕様)

本当に無駄な心配でした。サイバーコネクトツーの皆さまありがとうございました!

毎日のスケジュールの大まかな流れとしましては...、

04.png



チームとのミーティング ・ その日の作業確認




各自の作業を行う




弁当を買って部屋で談笑しながら食べる







指導者への作業報告 ・ 意見と指導を頂きます

指導を元に改善点を洗い出して、再び作業します







と言う具合のスケジュールが続きました。

私は初めての社会経験だったので、このスケジュールのおかげで

社会人の勤務時間の感覚が学べましたし、また、初めてのグループ開発を経験し、

コミュニケーションの大事さを色んな場所で実感できました。

また、スケジュールの例外として、昼休みや業務時間後に

特別なイベントが時折ありました。これは、映画の上映会、

プロ開発者とのランチ、ボードゲーム会などがあり、たくさんの

良い経験と思い出ができました!

イベントはインターン毎に違うようです  

05.png


少し、プログラミングの専門的な話をさせて頂きます。

まずは、今回の開発における、プログラム関係の失敗を紹介します。

私はこの失敗からたくさん学ぶことにできたので、これを読んでいる

プログラマーの方がいれば、この悪例から何かを学んでもらえれば幸いです。

06.png

ニャウピアのα版以前のプレイ画面

主な問題点としては:

  1. 1. 事前準備不足
  2. 2. バージョン管理ツールの問題
  3. 3. 効率化のために行えたこと

で、いずれも事前の準備次第であっさり解決できる問題でした。

それでは順番に紹介して行きます。

1. 事前準備不足は、事前に命令規則クラス設計を決めなかったため、

コードが増えるにつれて、どのソースが何を担当してるかが複雑化する問題です。

一番分かりやすい例としては、ソースファイル名が分かりずらかったり、

ソースファイル名からソースの内容が分からないことです。

KushiAtarihantei」とソースを名付けたり ←※自分です

改善策は、開発開始前に、プログラマーできっちりルール決めに時間を

割り当てることです。そうすること、後々の作業効率が上がります。

2. バージョン管理ツールの問題に関しては、同じプログラマーの

叶江(ヨウコウ)さんのブログで詳細に紹介されてますので、是非一読ください。

競合(Conflict)防ぐためには、頻繁のコミット(Commit)と、頻繁な

コミュニケーションが大事になります。開発の後半には、コミット時に

「コミットしました」と言う報告を欠かさずし、それにより競合の回数が格段に減ったと思います。

3.効率化のために行えたことも結構ありまして、一つは、

ゲームエンジンUnityの強みであるアセットパッケージなど、

無料で提供されているものを使うことで作業量を格段と減らせます。

解決策は機能の追加検討時に、既に用意されているものと重複を

していないか、事前に確認することです。

一例として、プログラマのヨウさんがトゥーンシェーダー自作に一週間かけたのに、

既にUnityが無料のトゥーンシェーダーを配布してたので、

結局そっちを使った事です。ちなみに、自作を進めたのは自分です本当にごめんなさい。

07.png
ニャウピアのプロトタイプの開発画面



他にも、社員のプログラマーである杉川さんが教えてくれた、event処理の

拡張ライブラリのUniRXや、拡張メソッドの使用など、効率化のために、

配布されているものはいっぱいあるので、利用できるものは利用すべきです!

08.png



改めまして、本当に貴重な経験ができたと思っています。

実際のプロによる評価を毎日頂けるので、今の自分の実力や、プロになるために

何が不足しているかを見直すことができました。

もしあなたが、本気でゲームクリエイターを目指しているのであれば、

これとない機会なので、絶対にFUKUOKAゲームインターンシップに応募するべきです!

ここまで読んで頂いてありがとうございます!

また、ゲーム業界で会いましょう!

09.png

■氏名:叶 江(ヨウ コウ)

■職種:プログラマー

■期間:8/6(月)~8/31(金)

はじめに

みなさん、こんにちは!

北海道大学・大学院情報科学研究科・博士二年の叶江です。

中国人の留学生です。

今回はサイバーコネクトツーさんにて8/6(月)~8/31(金)の間、

インターンシップ生としてゲーム開発を勉強させていただきました。

職種はプログラマーでした。

中国では、サイバーコネクトツーさんのゲームがかなり有名なので、

インターンシップに参加できてとても嬉しかったです。

このブログでは、プログラマーの視点から、今回のインターンシップで学んだことを、できるだけみなさんにお伝えします。よろしくお願いします!

▲チムチム(左)と叶江(右)

8/6(月)~8/10(金) ゲーム企画

一日目の朝はチームメンバーの顔合わせと会社の朝礼でした。

プログラマーの岩崎さんは学校の事情でまだ来ていなかったので、

4人で簡単な自己紹介と挨拶をしました。

▲岩崎さんと合流し撮った集合写真です。

左から岩崎さん(PG)、上岡さん(PG)、

尾方さん(アーティストAT)、叶江(PG)、塩路さん(ゲームデザイナーGD)

その後、早速ゲームの企画案について話し合っていました。

インターンシップの前に、

『コントラスト、飛び越える、貫く』三つのキーワードをもらい、

それぞれ企画を考えました。

話し合った結果、『貫く』を軸にするパズルアクションゲームに決定しました!

最初の一週間は主に企画案の検討でした。

激しい議論は何回もあって、ボツ案もいくつかありました。

しかし、ゲームの世界観やキャラクターデザイン、

キャラクターモーション、ギミックの種類など、

少しずつ定着していきました。

▲ボツ案のひとつ


今回の開発環境はUnity 2018.2でした。

インターンシップ中、毎日の16時から、メンターの方々に進捗報告をして、

個別指導をいただくことになっていました。

メンターの方々からは、改善すべき点や注意すべき点、

よくできた点、足りなかった点について、詳しく教えていただきました。

▲進捗報告と個別指導の様子


特に印象的なのが、

①スケジュールに合わせて、ゲーム要素を追加したり、削減したりすること。

要素の追加と削減は必ず全員でコミュニケーションを取って、

スケジュールを考えてすべきことです。

無暗に追加したら、ゲームが完成できなくなるかもしれません。

②ゲームの軸を見失わないこと。

例えば、今回の軸は『貫く』でした。

最初は様々な要素を考えましたが、

『貫く』の特徴のない要素は全部捨てました。

おかげで、ゲームの完成が間に合いました。

③ゲームの分かりやすさを常に意識すること。

キャラクターのコントロールは簡単ですか?

カメラのアングルは適切ですか?

開発者にとって当たり前の設定と要素は、

はじめてこのゲームをするプレイヤーからみればどうですか?

などを常に意識すれば、面白いゲームが作れます。

④普段、ゲームをするとき、ゲームの面白さを分析すること。

例えば、プログラマなら、

そのゲームの技術的に面白いところを分析して学べば、

今度は自分のゲームの面白さに応用できるかもしれません。

以上の四つでした。

8/13()8/22() ベータ版の開発

一週間目にも開発の作業がありましたが、本格的な開発は二週間目からでした。

ちなみに、8/14()プログラマーの岩崎さんと合流しました。

これでチーム全員が集まりました!

実は8/21()がベータ版発表の予定日でしたが、様々な不具合が起きたせいで、

一日延ばしていただきました。

最も大変な不具合は二つありました。


不具合その一:SVNでのConflict

今回使っていたのはTortoiseSVNでした。

全員でTortoiseSVNの基本的な使い方を勉強しました。

今まで、複数人でバージョン管理ツールを使った経験がないせいで、

様々な試行錯誤を重ねてきました。

一番多かったのがConflictでした。

複数人が同じファイルを編集する場合は、必ずConflictが起きます。

そのとき、Conflictのところを丁寧に確認しないと、せっかく書いたコードがなくなって、

努力が台無しになる恐れがあります。

特にUnitySceneファイルにConflictがあったら、Sceneがメチャクチャになる可能性があるので、

できればそれぞれ違う名前のSceneファイルを用意したほうがいいと思います。

(例えばMain_xxx)

今回は実際にSceneConflictがあって、せっかく作ったステージマップがメチャクチャになって、Revertを使ってもダメでした。そして、マップを作り直すのに時間かかりました。


不具合その二:UnityEmpty GameObjectTransform

Unityでステージマップを作った際、マップ管理をきれいにするため、

たくさんのEmpty GameObjectを作りました。

例えば、

Map

|---Area1

|---GroundBlock1

|---GroundBlock2

...

|---Area2

...


のような構造を使っていました。

MapArea1Area2Empty GameObjectで、

GroundBlockXCubeでした。

この場合、

MapArea1Area2のようなEmpty GameObjectTransform

つまりPositionRotateScaleを、

それぞれ(0, 0, 0), (0, 0, 0), (1, 1, 1)に固定しないと、

GameObjectの座標変換の処理が不便になります。

例えば、SetParentがバグります。

今回は親Empty GameObjectScale(1, 1, 1)に固定しなかったせいで、

GameObjectSetParentをコール度に、

GameObjectScaleがどんどん増えて、

謎の巨大化バグが発生しました。

それを修正するのに結構時間かかりました。

みなさんは必ず気をつけてください!


事情により、尾方さん(アーティスト)は8/21(火)を以てインターンシップを終了しました。

送別会のつもりで、5人で食事にいきました。


▲食事後の集合写真


8/23()8/31() 完成版の開発

8/22()にゲームのベータ版が発表されて、

8/23()8/24()で社内レビューをいただいていました。

その後、私たちは社内レビューを踏まえて、完成版の発表までのスケジュールを組みました。

インターンシップもいよいよ最後の週に入り、ゲームの完成も近いと感じました。

この時期はデバッグが主な作業でした。

デバッグは地味で退屈でしたが、バグを直したときはやはり達成感を感じました。

「ゲームの完成度がまた上がった!」と心から嬉しく思っていました。

そして、私たちのゲームが完成できました!


ようこそ、にゃうピアの世界へ!

ゲームの開始画面



余談

インターンシップ中に、

社員の方々とコミュニケーションする機会をたくさんいただきました。

一緒に食事したり、ボードゲームしたり、

ウルトラマンの映画を観たり、

ナルティメットシリーズをプレイしたりしていました。

ゲーム開発に関する話や、個人的な面白いエピソード、

ゲームクリエイターとして学ぶべきことなど、

様々な話が聞けて、本当に楽しかったです!

とある日の食事の様子

そして、とある日の昼休みに、

エレベーターの前で松山社長と会いました。

ごく短い間なので、写真を撮ることを忘れました。

今から思えば、ちょっと残念でしたね。


おわりに

今回のインターンシップでは、

様々なことが勉強できました!

特に、コミュニケーションの大切さを分かりました。

企画について議論するときも、

開発中に困るときも、

メンターの方々の指導を受けるときも、

仕事以外でチームメンバーといるときも、

積極的にコミュニケーションを取るのが大事と思います。

この経験を活かして、

これからの人生も頑張ります!

みなさん、今後もし機会があれば、

ぜひサイバーコネクトツーさんのインターンシップに参加してみてください。

人生にとってきっと良い経験になるでしょう。

■氏名:岩崎 健太郎
■職種:プログラマー

■期間:8/9(木)~8/31(金)

今回インターンシップにプログラマーとして参加しました岩﨑です。

サイバーコネクトツーさんのご指導のもと、他にインターンに参加された5名の方と協力して作品を制作しました。


■インターン内容について

インターン内容は以下の通りでした

----------------------------------------------------------------------------------------------------

開発環境:Unity 2018(Pro版。エディタ画面がPro専用の黒色で感動しました)

開発人数:5人(ゲームデザイナー:1人、アーティスト:1人、プログラマー:3人)

開発期間:8/6~8/31(自分は8/9から参加しました)

使用言語:C#

作業内容:仕掛けの基本的な挙動、UIの処理、シーン間のデータやりとり、

ポーズ・タイトル・ゲームクリア・ゲームオーバー画面処理

----------------------------------------------------------------------------------------------------

インターンを通して、社員の方からの意見をいただき、チームメンバーと話し合いをしていくうちにどのように問題を解決すればいいのか、どのように意思疎通をとればよいのかについて非常に考えることができました。

意見をいただく際にはユーザーの立場に立って遊びやすいか、わかりやすいか、見やすいかについてとても配慮された意見をいただくことが多かったです。

プログラムの指導では、他のゲーム画面と共有するデータについてはあらかじめ共有化しておき、共有データからデータを引っ張ってくるほうがよいとのアドバイスをいただきました。以前は前の画面の変数を残した状態で別画面に移動してそこでデータを移し替えるといったバケツリレーのような方式をとっていました。少々複雑で修正しにくい部分であっただけに、その問題について的確にアドバイスしていただき参考になりました。



▼下のようなイメージです。



また、グループでの制作を通して、共同作業でのデータ共有に関しての知識についても得ることができました。

β版提出の締め切り近くの時には「間に合うの?」と思ってしまうくらい、遊びにくかったり不具合や未実装の部分が多かったりと不安でしたが、最終日にはなんとか作品を完成させることができました。

最終週付近には、みんな制作に慣れてきたのか何故か遊び心あふれる機能を追加していたり、どれだけ早くステージをクリアできるかタイムアタックしたりしていました(笑)。

社内レビューで自分が担当したUI処理やギミック挙動についていいコメントがあったのは非常にうれしかったです(画面遷移のアニメーションをプログラムで自作した部分の評判が想定していたよりもよかったので安心しました)。


▼開発初期のエディタ画面(左)とβ版の頃のエディタ画面(右)



インターンに参加したチームメイトの皆さんとも非常に仲良くしていただき、時には熱い議論を繰り広げたり、相談に乗ってもらったり、デバッグでタイムアタック競争をしたり、お互いの生活について話しあったりしてかなり充実した時間を送ることができました。出身も環境も異なる人達が集まっていて話をするだけでも非常に新鮮でした。共通していたことは皆さんの向上心が非常に高く、他の人がいい物を作ると「自分もスゴイもの作ってやる!」といわんばかりに作業していました。


▼作業風景(この頃はまだ元気だった)



■失敗談

失敗談としては、仕様変更によってプログラムに突貫工事でつけたようなコードが増えたことですね。実装前にもう少しゆとりを持てるようにあらかじめ設計の段階で考えておくべきでした。また、他人のプログラムのデータをもらう際の受け渡し方法も人によってまちまちで、開発終盤でバグが多発する要因になってしまいました。話し合いの段階でもっと詳細に決めておくべきだったなぁと思いました。

あと、一番困ったのがバージョン管理に使用していた「TortoiseSVN」という管理ツールでデータが消えることがたびたびありました。管理の仕組みをよく理解していないまま複数人で作業していたため更新内容に衝突が起こってしまうことが原因で、みんなで四苦八苦しながら覚えて数をこなして慣れていきました。一生懸命に作ったデータが消えてしまったときの叶(ヨウ)さん、ギデェオンさん(プログラマーの方です)の顔は見ていてせつなくなりました。


▼SVNの更新履歴。完成までに457も更新していたことに驚きました。

(一部隠していますがご了承ください。)



■インターンシップを振り返って

あらかじめインターン参加前に想定はしていたものの、今の自分の実力と現場で必要とされるスキルにはこれほどまでに差があるのだと痛感しました。

昼休憩の時間ではスタッフの方と会食しながら制作話など現場でしか聞けない話をしていただき貴重な経験になりました。

本当はシェーダー作成などもっとたくさんのことに挑戦したかったと思えるほど、勉強になることが多く時間があっという間に過ぎていきました。

今回のインターンシップでは現場でしか体験できない貴重な経験を得ることができました。

指導担当者の方々もお忙しい中、私達のために時間を割いて指導をしてくださり、

ありがとうございました。

今回得た経験を今後の制作にいかしていき、

遊び手に楽しさを与えられるように精進していきたいと思います。



■インターンシップに興味がある方へ

最後に、FUKUOAKAゲームインターンシップに興味があってこのブログを見ている方へ。

私は、日本のゲーム会社でここまで本格的に、真剣に行ってくださる会社は他にないと思っています。ゲーム作りに興味があるけど、実際にどのように開発が行われているのか、雰囲気はどんな感じか、自分はどんなことが向いているのかについて学びたい方はインターンに応募するべきだと思います。

そう思えるほどこのインターンシップでの経験はすばらしいものでした。



悩んでいるなら応募した方がゼッタイいいですよ!

ポスター
第27回応募要項

2022年10月

            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          

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