GFF

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

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

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

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

【第30回】システムソフトベータでインターンシップ!(2)

|

こんにちは。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

ポスター
第27回応募要項

2025年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