プログラムについて少しづつ語ることにした

プログラマの業界で出来る人は中学くらいからパソコン通信で有名で、バイトや何やらで学生時代からプログラミングしてきたという話は聞くのですが、俺の場合は専門学校で歳も20歳から。親のパソコンでゲームを遊んだことはあっても分かるのはゲームの起動コマンドとあとはマウスかトラックボールワープロも打てない、高校までは普通科で数学も普通。

ただ、こと数学に関しては記憶力が悪く、記憶が必要な社会科の歴史や地理が壊滅的で、それでも高校でギリギリ入学から卒業まで漕ぎ着けたのは数学を公式の暗記でなく解法の積み重ねで記憶していて、試験のたびに問題用紙や解答用紙の裏面に公理から定理をどんどん導いて解いていたんですね。

専門学校でまず習ったのは紙にフローチャートを書いて、それを元にMS-DOSC言語でif-elseを使っての簡単なプログラムの授業。週3回を半年ほど。

そしてそれが終わるとウインドウズのビジュアルベーシック(VB / VisualBasic)でこれは市販の入門書を1冊。これも半年ほど。

それから専門学校2年生では単位制で卒業課題を決めて課題と単位になるけど、ここでゲームプログラムでなくコンピュータグラフィックに課題を決めて、レイトレーシング法を学び、それとは別にウインドウズのVC(VisualC++)の単位も取りました。

多くの場合、コンピュータの基本を学んだらソフトウェア製品の組み合わせで課題を解決する時代でした。絵を書くならコーレルドロー(CorelDraw)で線画を描いてフォトショップで塗る。システムならデータベースで対象を数値化して、ビジュアルベーシックで画面をつける。

今思えば、食べていくならそれで充分だったのかも知れません。

しかし、自分が作りたいと思ったゲームはファミコンなどの小さなメモリで活き活きと動くアクションゲームのようなものでした。学校の授業じゃもっと簡単なことしか習えない。同級生は俺が2年フリーターをしていた事情で2歳下ばかりで、みんなすぐに他の専門学校に行けばよかったと泣き言を言い始めました。

そこで、皆に自分の学校で習ったことの組み合わせでももっとすごいことが出来る、何故ならVC++MS-DOSC言語の機能を全て備えていて、今ある便利なソフトもほとんどがC言語から始めて積み立てられた成果であるのだから。こう考えました。

振り返ると、見積もりが甘すぎました。確かに原理として既存の製品はMS-DOSC言語から作られているのですが、それ以前のアセンブラつまり機械語の2進数の手打ちの時代からそれぞれの分野で研究開発をして、短いとはいえ30年から40年の歳月をかけて幾人もの手を渡り積み上げられたもの。

それをたかだか本を3冊読んだくらいの学生が踏襲しきれるはずもなく、グダグダな3分ほどのCG映像を卒研に出して俺の夢はひとたび途絶えました。

あの頃ほどの夢はないけど、低いモチベでコツコツ書き溜めたブログが既に20年。この20年をゲームで遊ぶのでなくもっと制作に当てていたら、多分何かは出来る。あまり物騒なものを企画しても、それを実現する力がないので、腕試し的に既存のテーブルゲームで一番難しいとされる麻雀と将棋を作ってみて、それでようやく専門学校時代からの業を少し解決できた気分になりました。アクションゲームも作ったし、ゲーム会社でも働いた。

自分のブログで今からプログラムを学ぶ人に何が言えるかというと、文法や裏技よりも、まずはロードマップが必要ではないかなと思ってこの記事を書きました。 

俺が学生の頃には市販ソフトの組み合わせで課題解決するのが一般的でしたが、今ではもっと課題に即して全ての機能がワンセットになったような統合的なソフトもあります。

だから、それで満足なら便利なソフトで課題解決すればいい。もっと言うと、ゲームが欲しければゲーム機やゲームソフトを買ったほうが安くて早いのです。

それでも、そうでなく成り立ちを知って手に職を身に付け、コンピュータを自分の思い通りに想像通りに動かすのに何から学ぶのかと言うと、俺はC言語からが良いんじゃないかと思います。だいたいそういう人はゲーム業界では企画に顎で使われる下っ端ぽいのが多いですが。