PCゲーム制作入門 〜PythonやC/C++によるプログラミング〜

【 PCゲーム制作入門 魔法のC言語偏 No.01 】

プログラムは魔法。 プログラマーは魔法使い(ウィザード)

その昔、凄腕のプログラマは「ウィザード(魔法使い)」と呼ばれていました。

彼らはコンピュータの中に、新たな世界、新たな命を作り出すことができます。
まさに、魔法を操るウィザードのような存在、それがプログラマーです。

ここでは、巨大な魔法世界「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ライブラリ」という初心者からプロまで使える優れた魔法書を使用します。

この魔法書を使えば、↓の呪文を書くだけでゲーム用のフルスクリーン画面を表示できます。
#include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { if (DxLib_Init() == -1) return -1; WaitKey(); DxLib_End(); return 0; }

因みに、巨大魔法書(WindowsAPIとDirectX)だけで同じことをしようとすると、(どこまで作るかにもよりますが)200行くらい必要になります。

DXライブラリは使用者が多く(専門学校等でも使われているそうです)、ドキュメントも充実している為、最初の魔法書としては最適です。

ゲーム会社で使われている魔法書

余談ですが、ゲーム会社の場合、会社や開発チーム毎に「独自の魔法書」を持っています。

魔法書の仕様は様々で、大抵、その会社の社風が現れています。
(高速に動作して柔軟性があるけど扱いが難しかったり、RPGに適していたり、シューティングゲームに適していたり等)

因みに私の会社(スタジオギウ)でも独自に作っていて、最新版は「NT2 + V12エンジン」という魔法書です。
例えば、AVARIS2のようなゲームで効果を発揮します。
※AVARIS2は昔のCPU(1GHz程度)でもサクサク動作し、DirectXを使わずに描画している為、ビデオカードが熱くならない(低燃費)等の特徴があります。但し、扱いが難しく、プログラム初心者には不向きです。

NT2+V12 ← 魔法書「NT2 + V12エンジン」のイメージ(笑)

ですが、これから使っていく「DXライブラリ」は、分かりやすく、手軽に使えて、誰でもダウンロードでき、ゲーム配布時の制限も無く、作ったゲームを販売することも可能です。
また、これをマスターしておけば、入社後、その会社が使っている独自魔法書にも対応し易いと思います。

ここまでの魔法用語説明

神々 … コンピュータ。
ルーン文字 … アセンブラ。
魔法言語 … C言語やPython、C#、JAVA等。
魔法書 … APIやDirectX、DXライブラリなどの「ライブラリ」。
ウィザード … プログラマ(主に上級者)。
呪文 … プログラムのソースコード。
詠唱 … プログラムを実行すること。

補足「プログラミング力とは」

ブログに、プログラミング力とは何かを書いておきました↓
http://giw.cocolog-nifty.com/blog/2016/10/post-13b0.html

次のページへ



[ StudioGIW TOPページ ]