ハンドル: ねこきき
生年月日 年齢: 1982年3月12日
職業: 大阪電気通信大学
 総合情報学部 情報工学科4年(編入)
2007年4月より某ゲームメーカーにて勤務予定


ゲームプログラマーまでの道のり 自分をさらけだした記念
就職活動の詳細 就職活動のまとめ

自分をさらけだした記念
 これは「デジタルトキワ荘」のプログラム掲示板において、自分の実力を把握するために全てをさらけ出して、アドバイスを求めた時の記録です。
 「自分はそこそこできるのではないか?」という淡い期待と「そんなものは妄想で徹底的に叩きのめされるのではないか」という不安の両方を当時の私は抱えていました。
しかしながら、それは最悪の状況でした。「変な期待があるが故に必死に努力しない」「努力をしないから不安が消えない」というループにはまり込んでいたからです。
 そんな中で、「叩きのめされても、そこから這い上がってやる!」と心に決めて書き込んだ書き込みと、それに対する返信の記録です。
 レスを読む前に、恐怖で泣いたのはナイショです(苦笑)
 投稿時間:03/01/13(Mon) 01:28
 投稿者名:Yu-ta  タイトル:アドバイス・評価をいただけませんか?
 こんばんは。かなり久しぶりの書き込みになります。
 Yu-taと申します。
お忙しいにもかかわらず、多くの業界の方々から
素晴らしいご助言のいただけるこの掲示板を、楽しく、時には
辛い気持ちになりながら拝見させていただいております。

 この度書き込ませていただくのは、今後の方針やプログラミングの
手法などについてアドバイス・評価をいただきたいと思ったためです。

 私は将来ゲームプログラマーとして、業界の第一線で働き
自分のプログラミングスキルで生計を立てたいと考えております。
 コンシューマ・アーケード・PCなどの種類に関しては、それぞれに
それぞれの面白みがあると思われるため、現在はどれにも
魅力を感じている状態です。


 現在の状況としましては、来年度に現在の高専専攻科(高専における
大学院のようなもの)を卒業する予定であり、その時点での就職を
考えております。

 現在の技術的な能力としましては、ソースをご覧いただければ
ご理解いただけるかと思いますが、

 ・C++ がある程度使いこなせる
 ・デザインパターンにも興味があり、現在実践での活用を試みている
 ・C もある程度使いこなせる
 ・プログラムの設計はまだ未熟
 ・プログラミング速度はどちらかといえば遅い
 ・アセンブラは全くと言っていいほど知らない
 ・3D は本を片手にプログラムを作成する程度
 ・アルゴリズムは基本的なモノはいくつか知っているが
  必要になると本で調べる程度

というような具合であると自己分析しております。
 また、まだまだ採用レベルには到達していないとも分析しております。

 今後、自己のスキルアップを目指し行いたいと考えていること
としましては

 ・3Dプログラミング
 ・ネットワークプログラミング
 ・さらなるデザインパターンの有効活用
 ・STLの活用
 ・アセンブラ
 ・新たなプログラムをキチンとした設計をふまえて作成する

というようなことを考えております。
 来年度卒業と同時に就職ができるレベルまでスキルを
高める方法として、今後どのようなことをどのような
優先順位でどれぐらいのレベルを目指して行うのが良いと
思われるでしょうか?
また、どのような部分を直していく必要があると思われますか?

 下記のアドレスに私が製作したプログラムを公開してありますので
そのプログラムに対する批評・アドバイスとともに、ご助言いただければ
嬉しく思います。


 今回のプログラムの目標は

 1. Strategyパターンを実際のプログラムに適用する。
 2. ”遊べるゲーム”を書籍などに頼らずに独力で作る。
 3. DirectX (Direct Draw)を理解し、活用できるようになる。
 4. ライブラリーとして他人のプログラムを活用する。
 5. 短期間(2ヶ月以内)でどこまでできるかチャレンジする。

ということでした。
 アピール出来るポイントとしましては、「Strategyパターンを活用した
柔軟な設計」という点があげられると考えております。
 それぞれについての考察は「プログラム解説」で行っております。

 それでは、よろしくお願いいたします。


公開している場所:
 http://homepage3.nifty.com/nekokiki/treasure.html


ソフト本体:
 http://homepage3.nifty.com/nekokiki/treasure/ggd2p/ggd070.lzh

ヘルプファイル:
 http://homepage3.nifty.com/nekokiki/treasure/ggdSource/030111/help/index.html
 本体に同梱のReadme.txt

ソースファイル: 「プログラム解説」に内容の説明があります。
 http://homepage3.nifty.com/nekokiki/treasure/ggdSource/030111/0111GuruGuruDx.lzh

ドキュメントファイル:
 http://homepage3.nifty.com/nekokiki/treasure/ggdSource/030111/0111GuruGuruDx/doc/index.html
 ソースファイルに同梱の\doc\index.htmlに同じ


プログラム解説:
 http://homepage3.nifty.com/nekokiki/about_my_program.html
 投稿時間:03/01/13(Mon) 07:06
 投稿者名:*e*(管注:一部伏字)  タイトル:すばらしい
あまり詳しくは見ていないのですが、、、、
学生さんで、これだけ出来れば十分ではないかと思います。
あとは、アセンブラを少し勉強し、3Dを沢山勉強すれば
良いのではないかと、個人的に感じています。
ただ、大手だと学歴重視しますので、最終学歴をなるべく
高くしてから、就職を目指してください。
 投稿時間:03/01/13(Mon) 13:00
 投稿者名:Yu-ta  タイトル:貴重なご意見をありがとうございました
 ありがとうございます。
 このようなお褒めの言葉をいただけるとは思っていなかったため
正直驚いております(汗
 しかし、「あまり詳しくは見ていない」とおっしゃられていますので、
詳しくごらんいただくことになれば、厳しい意見も頂戴することに
なるであろうと気持を引き締めております。
 また"「アセンブラを少し」「3Dを沢山」勉強しなければ就職できない"
という忠言であると捉え、今後精進していきたいと思います。

 学歴に関しては、現在学歴より技術に重点をおきはじめている
私としましては少々耳が痛い部分です…。
 学歴を得るためには、大部分の時間を「技術を磨くこと」よりも
「学歴の獲得」に費やす必要があり、それほどの価値があるものなのかと
現在悩んでおります…。

 貴重なご意見をありがとうございました。
 今後もどうぞよろしくお願いします。
 投稿時間:03/01/13(Mon) 13:57
 投稿者名:*ん*1*8*i*(管注:一部伏字)  タイトル:無題
(管注:引用部分略)

こんにちは、初めて書き込みます*ん*1*8*i*と申します。
なんだか面白そうなスレだった故、書き込みさせていただきます。

まず、ゲームそのものですが、面白さは別として、なかなかのできと思います。

ただ、コンシューマ機でのプログラマを目指していらっしゃるなら、
非力なコンピュータ上でのプログラミングを経験しておく事をお勧めします。
(セレロンの300MHzクラス、96MBメモリなど(家の最弱PCの性能ですが。))

ここからは悪かった点です。
ソースに関しては、コメントが多すぎてやや読みにくいです。
関数の働きなどは、ドキュメント化してしまえばいいので、ソースの中に事細かに書く必要はないと思います。

また、DDrawに関しては、名称自体、DX7以前のものですので、
統合化されたDirectGraphicsを使いこなすというくらいの気持ちで望む事をお勧めします。

また、アルゴリズムについても、まだまだ改良の余地があると思います。
(特にCOM側の思考など)

あと、あまりプログラミングには関係ないですが、ソースがCPPなのに、
古いインクルード宣言なのが気になりました。(私もこっち派ですが。)

長々と失礼致しました。
では。
 投稿時間:03/01/13(Mon) 19:47
 投稿者名:Yu-ta  タイトル:具体的なご助言ありがとうございます
 初めまして。Yu-taと申します。
ご助言ありがとうございます。

> 非力なコンピュータ上でのプログラミング
 今回の「ぐるぐる大回転」は2Dオンリーであり特別に
重い処理が必要なゲームではないと思います。
 それにも関わらず、求めるスペックが非常に高いのは
自分のプログラムに問題があるものと考えております。
(一部には処理速度改善の工夫も行ったのですが…。)
 「より低スペックの環境でより多くの人に遊んで
いただくこと」は重要なことですし、最適化はプログラムの
技術的にも非常に興味深いものです。
 低スペックなマシンも学校にはありますのでそちらでの
テストを経て、より低スペックで動くようにプログラムを
改善していきたいと考えています。
>関数の働きなどはソースの中に事細かに書く必要はない
 これは cpp ファイルの関数名の上にある//で囲んである
コメントのことでしょうか?それともヘッダファイルの方
でしょうか?
 cpp ファイルにある説明のことであれば、個人的には
あの程度あった方が開発が便利だと思いました。毎回
ドキュメントを参照するようにすれば問題ないのですが…。
私の記憶力が乏しいということにすべての原因があるのですが;;
 ヘッダファイルにある説明は、ドキュメントファイルを
「やねうらおさん」が作成された「auto_ref」という
ソフトを使いドキュメントへ抽出しているためです。

>統合化されたDirectGraphicsを使いこなすというくらいの気持ちで望む
 そうですね。今後は常に最新の技術を取り込む覚悟で
プログラミングにとり組みたいと思います。

>アルゴリズムに改良の余地
>(特にCOM側の思考など)
「プログラム解説」
http://homepage3.nifty.com/nekokiki/about_my_program.html
 の「今回の反省と今後の展望」に「よりスマートな敵のアルゴリズム
(シミュレートなど)を実装する。」とありますように、今後
よりスマートな敵の思考を実装していきたいと考えております。
 "連鎖を作成する"という思考はアルゴリズムとして作成する
のが少々困難に思われますが、同時に非常に興味深いものである
と思っております。
 今後楽しく開発していきたいと考えております。

>古いインクルード宣言
 新しいインクルード宣言の特長である「変数・関数名の衝突を
回避できる」ということは大規模なプログラムを複数で開発する
上では必要不可欠なことであるとおもいます。それを冗長な
名前を付加することなく回避できる新しいインクルード宣言は
素晴らしい技術であると思います。
 今回の「ぐるぐる大回転」の制作中に興味を持ち、ある程度
調べたのですが、途中から切り替えると少々手間がかかって
しまいそうだったため、スピード勝負だった今回は見送りました。
 次回以降のプログラムでは積極的に採用していきたいと
考えております。

 具体的なご批判・ご助言本当にありがとうございました。
今後もどうぞよろしくお願いします。
 投稿時間:03/01/14(Tue) 23:00
 投稿者名:*ん*1*8*i*(管注:一部伏字)  タイトル:P.S.

追記です。

アセンブラに触れたことがないとのことですが、
本物のアセンブラに触れる機会がないのなら、CASLL程度でも学習しておいた方が有利だと思われます。
(未だにコンシューマ機ではmain()後に_asmと書く方がいるくらいですし。)
 投稿時間:03/01/15(Wed) 01:30
 投稿者名:Yu-ta  タイトル:さらなるアドバイス本当にありがとうございます。
 さらなるアドバイス本当にありがとうございます。
誠に恥ずかしい話しながら「CASL」というものの存在すら知りませんでした。
アセンブラを武器にしていく第一歩としての指針を示していただき
本当にありがとうございます。
 早速「InfoCASL」をダウンロードしてみました。楽しく学習し、自分のモノに
していきたいと思います。
 投稿時間:03/01/13(Mon) 23:51
 投稿者名:*r*D**(管注:一部伏字)  タイトル:拝見させて頂きました
(管注:引用部略)
僭越ながら、
コード拝見、および、実行ファイル拝見させて頂きました。

以前にあったツリー
「就職活動中の者です..... 」にダブるコメントをしたいとこですが

>来年度に・・・・・就職を
ということであれば、まずはレベル的に水準ちょい手前くらいの力は
感じられます。
特に敵の思考ルーチン(もっとも低いとこに落すなど)
を自己で考えたのなら、
月並みでありつつも、その創作過程は高く評価されるものと思います。

ワーク間(クラス間)の設計も、まずまず水準に達してるかと。

>高専専攻科
を出るとの事で、数学で言えば、大学教養過程までは取得されることと
推測します。

今回のゲームは、パズルというジャンルの為か、
やはりミニゲーの感が強く、

豊富なデータをエディタなどを通じて編集するなど、
ある程度大規模制作に耐えうる仕組み作りが感じられませんでした。

ゆえに、このゲームはこのゲームで、1つ。
また、もっと大規模なものも作れるという状況で来ると
力を認めて貰えるかと思います。

>コンシューマ・アーケード・PCなどの種類に関しては、それぞれに
>それぞれの面白みがあると思われるため、現在はどれにも
>魅力を感じている状態です
との事で、
今のソースだと、どちらの方向に対しても中途半端である感は
ある程度納得してます。

PCであれば、PCのグラフィックライブラリはより堅牢にする必要が
あると思いますし。
コンシューマであれば、
GBA的な方向?か、PS2、GC,XBOXなども念頭に置くかで
ハードルはまるで違ってきます。

GBAであれば、限られたワークに対する
メモリ管理が重視されますし、
PS2、GC,XBOXであれば、
3Dでの提出ゲーム作りが要求されるかと思います。

現時点では、100ステップ中、15ステップというところでしょうか。
 投稿時間:03/01/14(Tue) 11:29
 投稿者名:Yu-ta  タイトル:詳しい評価・ご助言本当にありがとうございました
>コード拝見、および、実行ファイル拝見させて頂きました。
 お忙しい中、ソースまでご覧いただき本当にありがとうございます。


>>来年度に・・・・・就職を
>ということであれば、まずはレベル的に水準ちょい手前くらいの力は
>感じられます。
 なるほど…まだ水準には達していないということですね。
これからも切磋琢磨していきたいと思います。


>特に敵の思考ルーチン(もっとも低いとこに落すなど)
>を自己で考えたのなら、
>月並みでありつつも、その創作過程は高く評価されるものと思います。
 思考ルーチンの実装はわくわくしながら行いました。
まだまだ「もっとも低いとこに落す」という思考ルーチンにも
不備が残っているのですが、現在はバランス調整の為にそのままに
している状態です。今後さらに改善をしていくとともに、さらに
スマートな思考ルーチン(「シミュレートにより最高のパターンを
導き出すもの」や「意図的に連鎖を組むもの」)などを楽しく
実装していければと思っています。
 ゆくゆくは「GAなどを用いた学習アルゴリズム」なども
研究できれば…とも考えています。ただGBAというような制約を
設けたときにどの程度まで可能なのかが問題となりますが…。


>ワーク間(クラス間)の設計も、まずまず水準に達してるかと。
 ありがとうございます。
 本作品は二度目の製作であったため、一度目の時に行った
大まかな設計を思い出しながら、具体的に設計を行うことなく
製作を行いました。
 実際に製作をしていく上で、きちんと設計を行わなかったために
生じてくる無駄が発生し、非常に後悔することになりました…。
 次回以降の製作ではFSM図なども活用しながら、きちんと
設計を行い、無駄のないスマートな設計を行いたいと思います。


>数学で言えば、大学教養過程までは取得されることと推測します。
 そのように認識していただいて結構だと思います。
3Dプログラムに取りかかるにあたり、知識の確認をしながら
製作にとり組みたいと考えております。
 また大学の工学部と同程度の専門科目「熱力学」や「流体力学」
なども学んできたと思っております。
 このような専門知識をプログラムでアピールできないかと
試行錯誤しているところです。


>今回のゲームは、パズルというジャンルの為か、
>やはりミニゲーの感が強く、
>
>豊富なデータをエディタなどを通じて編集するなど、
>ある程度大規模制作に耐えうる仕組み作りが感じられませんでした。
 今回のゲームにはエディタを活用するチャンスがあまり
ありませんでしたが、今後ゲームを製作する時には、
設計段階でエディタの製作も含めた設計を行い、効率的に
製作を行えるようにしていきたいと思います。


>ゆえに、このゲームはこのゲームで、1つ。
>また、もっと大規模なものも作れるという状況で来ると
>力を認めて貰えるかと思います。
 ありがとうございます。
 今後3Dゲームとして、今より大規模なゲームを有用なエディタの
製作も含めて、製作していきたいと思います。


>GBAであれば、限られたワークに対する
>メモリ管理が重視されますし、
>PS2、GC,XBOXであれば、
>3Dでの提出ゲーム作りが要求されるかと思います。
 今回の「ぐるぐる大回転」は、ゲームの性質などを考えても
GBAが適当であると考えられるため、GBAを意識した作品に
チューンナップしていきたいと思います。
 次回の作品として3Dゲームを製作していきたいと思います。


>現時点では、100ステップ中、15ステップというところでしょうか。
 100点満点中の15点との評価であると認識しております。
現状をきちんと認識し、より高みを目指して切磋琢磨していきたい
と考えております。
 具体的な評価ありがとうございました。


 現状の問題点を認識し、今後の方針を具体的に決定できるような
詳しいご助言本当にありがとうございました。
 今後もどうぞよろしくお願いします。