プログラムは魔法。 プログラマーは魔法使い(ウィザード)その昔、凄腕のプログラマは「ウィザード(魔法使い)」と呼ばれていました。彼らはコンピュータの中に、新たな世界、新たな命を作り出すことができます。 まさに、魔法を操るウィザードのような存在、それがプログラマーです。 ここでは、巨大な魔法世界「Windows」と魔法言語「C言語」を使い、新しい世界「オリジナルゲーム」を創る為の技術をお伝えします。 ということでC言語偏では、プログラムを魔法に例えながら解説していきます。 アセンブラ(ルーン文字)とC言語の歴史魔法言語であるC言語は、最終的に0と1だけの神々(コンピュータ)の言語に変換され、実行されます。この0と1を、ほぼそのまま言語化したのがアセンブラです。 魔法に例えると、神々が人間に与えた「ルーン文字」でしょうか。 昔(スーパーファミコンくらいまでの時代)は、このルーン文字だけでゲームを作っていました。 ですが、ルーン文字は人間にとっては非常に分かり難い言語です。 その為、人間達はルーン文字よりも人間の言葉に近い魔法言語、C言語を生み出しました。 ※その後、用途に応じて、Python、C#、JAVA等の魔法言語が作られました。 C言語のメリット<実行速度が最速>C言語は最終的にルーン文字になる為、最も実行速度の速い魔法言語です。 ※他の魔法言語はC言語が動かしている為、C言語以上の速度を出すことはできません。 <コンピュータの仕組みを理解し易い> C言語はルーン文字に近い為、コンピュータの仕組みを理解するのにも役立ちます。 <ゲーム業界への就職に有利> どういう会社へ就職するのかにもよりますが、現時点(2016年)では、C言語を扱える方がゲーム業界への就職に有利です。 また、多くのゲーム専門学校で、C言語の授業があります。 ※ゲーム業界以外でも、組み込み系の会社ではC言語を使っている企業が多いそうです。 <流行り廃りが無い> 上にも書きましたが、JAVAやPHPなど他の言語はC言語で作られています。 C言語が全ての言語の元になっているので、廃れることはありません。(CPUの仕組みが変わらない限り、現場で使われ続けます) C言語は難しい?1995年頃(Windows95の時代)は、最初のウインドウを出すだけでWindows用の処理を100行くらい書かないといけない状態でした。今でもその部分は同じですが、ライブラリ(魔法書)の充実により、現在は数行でウインドウを作ることができるようになっています。 ライブラリ(魔法書)のメリット※ライブラリを直訳すると図書館ですが、色々踏まえて(他からもってきたプログラムを簡単には追加できない等)、「魔法書」に例えることにしました。魔法書があれば複雑な手続きを簡略化でき、「魔法名を唱えるだけ」で、その魔法を実行することができます。 例えば「炎を放つ魔法」の場合、本来は↓のような呪文を詠唱をしなければならないとします。
ですが魔法書があれば、「ファイア!」と唱えるだけで魔法書が代わりに呪文の詠唱手続きを行い、炎を放つことができる、という感じです。 ゲーム制作用のライブラリ(魔法書)について現在のゲーム制作では通常、元となる巨大な魔法書があります。Windowsの場合は、マイクロソフト社製のWindowsAPIやDirectXという魔法書です。 ですが、この2つの魔法書は汎用性が高い分、詠唱手続きが無駄に長く、初心者向けではありません。 また、プロのウィザード(プログラマ)も、この巨大魔法書を毎回書いていては大変なので、 普通は、巨大魔法書の必要な部分だけを使い、より扱いやすくした「独自の魔法書」を作ります。 ※「独自の魔法書」は、用途によって、又は製作者によって、分厚いものもあれば薄いものもあり、難解なものもあれば扱いやすいものもあります。また、同じ「炎の魔法」でも、威力や発動までの時間が違ったりします。 魔法書「DXライブラリ」いきなり「独自の魔法書」を作るのは難しいので、ここでは、「DXライブラリ」という初心者からプロまで使える優れた魔法書を使用します。この魔法書を使えば、↓の呪文を書くだけでゲーム用のフルスクリーン画面を表示できます。
因みに、巨大魔法書(WindowsAPIとDirectX)だけで同じことをしようとすると、(どこまで作るかにもよりますが)200行くらい必要になります。 DXライブラリは使用者が多く(専門学校等でも使われているそうです)、ドキュメントも充実している為、最初の魔法書としては最適です。 ゲーム会社で使われている魔法書余談ですが、ゲーム会社の場合、会社や開発チーム毎に「独自の魔法書」を持っています。魔法書の仕様は様々で、大抵、その会社の社風が現れています。 (高速に動作して柔軟性があるけど扱いが難しかったり、RPGに適していたり、シューティングゲームに適していたり等) 因みに私の会社(スタジオギウ)でも独自に作っていて、最新版は「NT2 + V12エンジン」という魔法書です。 例えば、AVARIS2のようなゲームで効果を発揮します。 ※AVARIS2は昔のCPU(1GHz程度)でもサクサク動作し、DirectXを使わずに描画している為、ビデオカードが熱くならない(低燃費)等の特徴があります。但し、扱いが難しく、プログラム初心者には不向きです。 ですが、これから使っていく「DXライブラリ」は、分かりやすく、手軽に使えて、誰でもダウンロードでき、ゲーム配布時の制限も無く、作ったゲームを販売することも可能です。 また、これをマスターしておけば、入社後、その会社が使っている独自魔法書にも対応し易いと思います。 ここまでの魔法用語説明神々 … コンピュータ。ルーン文字 … アセンブラ。 魔法言語 … C言語やPython、C#、JAVA等。 魔法書 … APIやDirectX、DXライブラリなどの「ライブラリ」。 ウィザード … プログラマ(主に上級者)。 呪文 … プログラムのソースコード。 詠唱 … プログラムを実行すること。 補足「プログラミング力とは」ブログに、プログラミング力とは何かを書いておきました↓http://giw.cocolog-nifty.com/blog/2016/10/post-13b0.html |