GFF

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

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

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

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

プログラマーコース: 2025年3月アーカイブ

 FUKUOKAゲームインターンシップで、システムソフト・ベータ様のプログラマコースに5日間参加させていただきました。KCS福岡情報専門学校の大歯天楓です。


 実際の職場でしか得られない経験は、今後ゲーム業界の就職を目指す上でとても貴重なものになると思い、参加することにしました。


 日本語版のゲームを海外版用に英語で翻訳するときに、日本語では枠内に収まっていた文章が英語では収まらないことを考慮して、設定した画面幅を超えないように適切な位置に改行する必要があります。ということで、今回のインターンシップの内容は、文字列の禁則処理変換ツールを作るというものでした。

 学生の自分にとってこの内容はとても盲点でした。確かによく考えると、代表的なゲームは、売上の大部分を海外が占めています。ゲーム業界で生きていくためには、海外進出は必須になるので、この内容はとても良い経験になると思いました。


・1日目

 ツールを作っていく中で、早速立ちはだかる壁がありました。それはテキストファイルの読み書きでした。これまで自分がゲームを作るときは、ゲームのジャンルや規模の小ささなどの関係でファイルの読み書きの経験がなかったので、理解するのにとても時間がかかりました。この日は結局ファイルの読み書きに多くの時間を取られ、本題に入れずに終わってしまうという不甲斐ない結果となりました。しかし、ファイルの読み書きという今後パソコンを使う仕事をする上で重要な内容を理解し、活用することができるようになったことは大きな成果だと思います。


・2日目

 1日目の続きから作業を行い、いよいよ本題の改行を適切な位置に入れる処理を作る過程に入りました。これまでのコードを書いてきた経験を活かせば、なんとか作れるのではないかと最初は思いましたが、そう上手くはいきませんでした。

 立ちはだかるエラーや意図しない処理の数々に、頭を抱えることが多々ありましたが、担当の方にエラーや不具合の原因を教えてもらい、改善へのヒントを与えてもらったことで、なんとか作業を進めることができました。

 担当の方に教えてもらって初めて知った便利な関数や、より原因を分かりやすく絞るためのデバック方法など、新しく学べたことも多くありました。

・3日目

 2日目の続きから作業を行い、無事に改行の処理を作ることができました。そして、最終段階として、色変更のタグを入れて処理をすることになりました。この作業がまた大変で、この処理を入れるために必要なコードが意外と多く、さらにこれまで書いてきたコードに変更を加えつつコードを書く必要がありました。途中段階でデバックするときに、改行の処理すらうまくできていないこともあって、焦ることもありました。

 この日は苦労しつつも、完成の一歩手前まで進めることができました。処理自体は文字列の一部に色を付けるといった簡単そうなものですが、こういった一要素を入れることがどれだけ大変なことかを改めて体感できました。


・4日目

 3日目の作業の仕上げを行い、無事に指定された通りに処理できるツールを作ることができました。そして、ここからリファクタリングを行っていきました。今までの自分は、リファクタリングした方がいいんだろうな~と思いながらも、小規模での制作かつ自分が書いたコードは自分しか見ないことが多く、期間までに完成できればいいやの精神で、あまりしていませんでした。しかし、ゲーム業界では当たり前ですが、そんなことは通用しません。大規模なチーム制作であるがゆえに、多くの人が自分が書いたコードを確認します。内容を自分以外の人が引継ぎするときなどに、自分にしかわからないようなコードを書いていては、内容を理解するために無駄な時間を使わせてしまい、多くの人に迷惑をかけてしまいます。

そんなわけでリファクタリングを行いましたが、この日は台風の影響で作業は午前中のみ行いました。


・5日目

 リファクタリングの続きを行いました。といっても自分の力だけで行うのは難しく、自分が最善と思ったコードが、まだ改善の余地があったり、自分が必要だと思っていたコードが、実は必要なかったりと、担当の方にご指導してもらうことで、初めて気づいたことが多くありました。言われてみれば確かにとなりますが、自分で気付くとなるとなかなか難しいなと感じました。先人の知恵をより取り入れていくとともに、自らリファクタリングの経験を積極的に行うことで、この力を今後伸ばしていきたいと思いました。


 5日間という短い期間ではありましたが、多くのことを学べました。これからゲーム業界を目指す上でどんな技術が必要なのか、どういう意識でゲームを作っていくべきなのかという悩みに一つの正解のかたちをもたらしてくれました。

インターンシップに参加して得た経験は、改めて実際の職場で働かないとわからないものだったなと実感しました。


 今回のインターンシップで自分の担当をしてくれた方をはじめとして、システムソフト・ベータで働いている皆様には本当にお世話になりました。自分自身の作業もある中で、多くの時間を割いて親切にわかるまで教えていただき本当に感謝しています。

PR-039:大歯 天楓(プログラマーコース)1.png

PR-039:大歯 天楓(プログラマーコース)2.png

こんにちは。KCS福岡情報専門学校 二年 高武優太です。
この度はシステムソフト・ベータ様のプログラマーコースでインターンシップに参加させていただきました。


私が今回のインターンシップで行ったのは、古い画像形式から新しい画像形式への変換を行うプログラムの実装です。

普段は主にC#を扱っている私がC++を使ったり、なかなか手を付ける機会がない画像ファイルの仕組みについて学びながら作業を行ったなかで、様々な気づきを得られたので共有させていただきます。


日程は8月21日(月)~8月25日(金)までの5日間だったので、進捗状況とともに1日ずつ振り返ろうかとおもいます。


<8月21日(月)>

初日は主に作業内容の確認と、画像ファイルの仕組みについての勉強から始まりました。


変換を行う上で必要な情報に大幅な違いがあるわけではないのですが、格納方法やサイズなどは違うため、一度すべての情報を個別に保持し、変換する必要があります。


そのため、
①古い形式のファイルを読み込む
②データを分けて保持する
③データを新しい形式のファイルに合うよう変換する
④変換後のデータを新しい形式のファイルに書き込む
という手順で進めることにしました。


仕組みを勉強するうえで実際にデータを読み込みながら行っていたため、データの初めの方に格納されるヘッダー情報は保持できるようになったのですが、表示される色情報の取得にまではたどり着くことができずに初日を終えました。


初日というのもありますが、場所も違えば言語も違う、やっていることも実に初めてで、正直に言えば緊張と悩みが同時に来ていました。

ですがそれ以上に新しいことに挑戦できるという楽しみがあり、5日間を全力で楽しんで、学んで、有意義な時間にしていこうとより一層決意しました。


<8月22日(火)>

2日目は前日の続きである色情報の保持ができるようにしました。


古いデータ形式はできるだけデータを小さくできるよう工夫されており、ピクセルごとに色情報を持つのではなく別で保存されているカラーパレットを参照する形で格納することができます。


カラーパレットとピクセルのデータをそれぞれ保持する必要があるのですが、この2つのデータは構造がとても似ているため、効率化を図ろうと構造体で宣言することにしました。

しかし、色情報の扱い方をしっかりと把握できていなかった私はデータのサイズを特に気にせず決めてしまい、後々気づいたころにはサイズを変えるとエラーが出る状態になっていました。


使っていたエディターがとても優秀だったため、影響範囲を特定するのに時間はあまりかかりませんでしたが、C++の記述についてや画像ファイルの仕組みを見直しながら作業を行っていたためこの日はぎりぎり古い形式のデータをすべて格納するところまで行きました。


普段触らない言語を触っているといろいろ試したくなる性格もあり、注意しなければならないところが疎かになっていました。
やるべきことを見失わないように気を付けようと反省しています。


<8月23日(水)>

3日目は読み込んで保持した古い形式のデータを新しい形式のデータに変換する機能を作りました......といいたかったのですが、ここで手こずってしまいました。


まずは新しい形式の色情報に合わせられるよう古い形式のデータを変換しなければならないのですが、データのサイズが違う場合、ビット単位の操作が求められます。

また、リトルエンディアンで並べられたデータを読み取ってデータがしっかりと格納されているかを確認する必要もありました。

古い形式はデータの格納方法が数種あるためそれらにも対応しなければなりません。


コードをこねこねといじり倒しながら、修正加筆を繰り返した結果、なんとか新しい形式でファイルを書き出せるようにはなったものの、格納の順番や数値が間違っているのか、上手く読み込んでくれないという状態で3日目が終了してしまいました。


ここで私は普段の勉強不足、特にアウトプット不足を強く感じました。
授業で聞いただけ、軽く知っているだけ、では身についたとは言えないんだと思い知らされました。
よく言われる「学生のうちに勉強しておけばよかった」という言葉の片鱗を浴びたようにも思います。

<8月24日(木)>

改めて、4日目は古い形式のデータを新しい形式のデータに変換する機能を完成させ、新しいファイルに書き込むところまで実装することができました。

前日は表示すらされなかったためどこがおかしいのか判らない状態でしたが、インターン中の担当をしていただいた方からのアドバイスをいただきながら間違っている原因の特定と修正、再度確認を繰り返し、なんとか完成させることができました。


なんども質問相談をしていたので大変申し訳なく感じつつ、頼れる存在とはこうもありがたいものかと感謝の念でいっぱいです。


<8月25日(金)>

最終日はプログラムの調整と追加の要件の対応を行いました。


想定していたよりも時間がすぎるのがあっというまだったため、多少雑になっていたコメントやコードの修正、頂いていたコーディングルールとの見合わせなどを行いました。


以前私がプログラミング始めたての時に書いたプログラムを見たとき、誰が理解できるんだと思うような悪魔のコードがずらっと並んでいました。
それ以来は人に見られるのはもちろん、自分のためにもわかりやすいコーディングを心がけるようにしています。
それでも時間に押されたり、上手い実装方法が思いつかなかったりすると、雑になってしまう時があります。そういったことも含めしっかりと情報を残せるように意識しました。


この5日間を振り返って、様々な経験を得ることができました。
なかでもアウトプットが足りていないという発見は、私の成長に絶対つながるものだと感じています。今回の知見を無駄にしないよう努力し、最高のゲームを作るチームの一員として活躍できる存在になるよう頑張ります。

PR-003:高武優太_プログラマーコース.png

ポスター
第32回応募要項

2025年9月

  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        

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