ゲーム作成のための開発言語


目次

ゲーム作成のための開発言語

参考ページ

1.はじめに

ここでは、ゲーム製作にはどんなツール/言語を使ったらいいのだろう?
と悩んでいる人のために、私なりのアドバイスをします。

結論から言うと、使い慣れたツール/言語が一番よいです。
どんなツール/言語であれ、使いこなすにはある程度の期間が必要になるため、
慣れるまでは、開発がまったく進まないからです。

なお、RPGツクールなどのツクールシリーズは使ったことがないので、コメントができません。
ただ、ツクールシリーズはゲームの流れやゲーム性など、ゲーム作成のためにとっても勉強になるみたいです。

2.言語の種類

世の中にプログラム言語はたくさんあるので、どれを選択するか迷ってしまいます。
ですが、ゲームを製作するという視点から見れば、どれを選んでも大変です。
というのも、普通の言語はゲーム以外のものを作成するために作られたからです。

唯一の例外は「HSP」です。
ゲームを作るために開発された言語ではないか、と思うほど、ゲーム開発のための機能に特化しています。

ではどんな言語があるか見てみましょう
ちなみに以下の言語のコンパイラは、VB以外はすべて無料で手に入ります。

言語特徴難易度ランタイムコンパイル速度実行速度配布サイズ
HSP難しい部分をすべて排除した言語。この中ではもっともお手軽。ゲーム関係のライブラリが充実。速い普通普通
C最も速く動き、最も配布サイズが小さい。ポインタが使えるが、使い方が難しい。☆☆☆遅い最も速い最も小さい
C++Cと互換性がある。(Cのプログラムがほぼそのまま動く)オブジェクト指向を採用。とにかく複雑。☆☆☆☆☆遅い速い小さい
VB(6.0)定番のプログラム入門言語。現在、Enterpriseバージョン(15万円くらい)以外は入手不可。☆☆必要速い普通大きい
DelphiCよりも文法が厳格な言語。ロースペックマシンでもコンパイルが早い。フリーウェア作家に人気。Delphi6.0 Personalであれば無料で手に入る。☆☆☆☆速い速い小さい
JavaC++の難しい部分を排除して、オブジェクト指向に特化した言語。JavaVMというランタイムが必要となる。☆☆☆☆必要遅い遅い普通
C#(VB+VC+Java+Delphi)/4といったいいとこ取りの言語。今後に期待できる。.NETFrameworkというランタイムが必要となる☆☆☆☆必要普通普通普通

※VBは.NETであれば安いStandardバージョン(2万円くらい)を入手することができます。ただし、動かすためには、.NETFrameworkが必要になります。

難易度

難易度の説明のために、各言語の取得にかかる時間をグラフにしてみました。
横軸がかかる時間(月)、縦軸が習熟度です(%)
http://www5f.biglobe.ne.jp/~kenmo/wiki/shujukudo.png
習熟度が30〜50%でようやく、そこそこのゲーム(ミニゲームレベル)が作れると想定しています。
JavaやDelphiが習熟に時間がかかるのは、オブジェクト指向という概念を使用しているためです。
また、Cはポインタという概念が必須であるため、それの理解に時間がかかります。
やり方にもよりますが、HSPであれば、2週間ぐらいで簡単なダンジョンRPGが作れるレベルまで行けます。
手前味噌ですが、私の作成したゲーム 「ダンジョンキーパー」 がそれです。
逆に、VisualC++から始めてしまうと、楽してゲームを作成するライブラリ(後述します)の存在に気付かなければ、
半年たってもゲームが作れない状態となります。(それも実は私です。。。)

なぜ、HSPがここまで簡単で、C, Delphi, Javaが難しいかというと
例えば、画像データであるビットマップを読み込む場合に、
HSPであれば、わずか1行の命令で読み込み/表示することができます。
しかし、Cで読み込みを行おうとすると、
デバイスの作成/ビットマップオブジェクトの作成(メモリの確保)/読み込み/変換/オブジェクトの破棄…など
一連の動作をすべて記述しなければならないからです。
C言語自体は簡単な言語なのですが、HSP以外は、WindowsAPI(※)というWindowsOSを操作する関数を知っていないと
何もできません。
(ただ、そういった処理をまとめたライブラリを入手すれば、簡単にできるようになります。それについては後述します)
(※)Javaの場合は、JavaAPIを使用します。その点はJavaのほうが簡単だったりします。


ランタイム

VB, Java, C#は実行時にランタイムが必要となります。
VB, Javaに関しては、だいたいインストールされていることが多いので、問題はないと思います。
問題はC#で、.NET Frameworkがインストールされていることは少ないと思います。
この問題が解決されれば、C#はゲーム開発言語としての有力な選択肢となるでしょう。(まだまだ先の話ですが…)


コンパイル速度

コンパイルとは、プログラムファイルを.exeなどの実行ファイルに変換することです。(正確には違いますが…)
CやJavaは遅いです。HSPやVB,Delphiは速いです。
コンパイルに時間がかかると、実行結果を確認するのに時間がかかり、いらいらしたりする場合があります。
(待つのも楽しい場合もありますが…)

実行速度

複雑な処理をする場合、処理が重くなったりしないかどうかを表します。
基本的にJavaは重いです。
ゲームは処理速度が求められることが多いので、この点Javaはとっても不利です。
ただ、工夫次第である程度速くすることは可能です。
ちなみに市販のゲームは処理速度重視のため、ほとんどC言語で作られているようです。

配布サイズ

VBはどうしても実行ファイルのサイズが大きくなってしまいます。
ただ、そんなに大きな差ではないですし(数100kbの差)、
最近はむしろ、画像ファイルや音楽ファイルをいかに小さくするかが問題ですね。


3.開発環境の種類

同じ言語であっても開発環境が複数あることがほとんどです。

言語開発環境名DirectX備考
HSPなし無料で手に入る。デバッグ機能なし
VBVisualBasic?(6.0)現在Enterpriseバージョン以外は入手不可。
C/C++VisualC++
C++ Builder
Builder C++ Compiler(コンパイラのみ)無料で手に入る。
DelphiDelphiDelphi6.0 Personalであれば無料で手に入る
JavaJBuilder×Personalであれば無料で手に入る
Eclipse×無料で手に入る。GUI作成機能なし
C#VisualC#コンパイラーのみであれば、無料で手に入る

TODO:各ツールのリンク先はこちら

MicroSoft?が開発元であるVisual〜は、デバッグ機能が充実しています。
Borlandの〜Builder,DelphiはGUI部品(ボタンやコンボボックスなど)を組み込むときの使い勝手が充実しています。
ただ、GUI部品をゲームにそのまま使うことはほとんどないので、
デバッグ機能が充実しているVisual〜の方が有利ではないかなー、と思います。

また、Visual〜は同じMicroSoft?開発のDirectX(グラフィックやマルチメディアのコンポーネント)が容易に使えます。
しかし、HSPやDelphiでは、善意の人たちが独自に開発したライブラリで、DirectXを呼び出すこととなります。
そのため、どうしても情報が少ないです。

DirectX

なぜDirectXの話をしたのかというと、ゲームを簡単に作成するためのライブラリがDirectXであるからです。
(HSPはDirectXを使用しないほうがいいです。かえって難しくなります)

そうです。DirectXを使えば、簡単にゲームが作れるのです。
しかし、DirectXを直接使おうとすると、実は結構難しいです。(あれれ?)
いや、つまり。
DirectXを簡単に使うためのライブラリを使う、ということです。
例えば、C/C++であれば、「Easy Link Library」を使用します。
また、Delphiであれば、「Quadruple D」 を使用します。



4.言語の選択


最初は簡単な言語を使用したほうがいいと思います。
HSPやVBでもプログラムの基本は学ぶことはできます。

ただ、お金の面を考えて、無料でゲームを作りたいのであれば、
最初は「HSP」でプログラムの基本を勉強し、より上を目指すなら
「Delphi」+「QuadrupleD」もしくは「Borland C++ Compiler」+「EL」でしょうか。
でも、プロを目指すのでなければ、HSPで十分と思っています。
HSPは標準機能でもかなりのゲームが作成できる上に、機能を追加するライブラリが充実しているため、
苦労してCやDelphiを覚える必要はないと思います。

また、リッチな環境でゲーム開発をしたい!と思っているのであれば、
VisualStudio?.NETを買ってしまいましょー。
学生であれば、アカデミックパックで安く買うことができます。
これには、VisualBasic?/VisualC++/VisualJ#/VisualC#が入っているので、
言語を気にせず勉強できます。
となると、
VisualBasic?」 -> 「VisualC++」+「EL」 という流れになるのでしょうか。
※VisualC++.NETは、.NETFrameworkを必要とする実行ファイルと、必要としない実行ファイルの両方を作成することができます。


5.言語の勉強方法


最後に各言語の勉強方法ですが、基本的にはネットで検索します。
例えばHSPであれば、「HSP 入門」とGoogleで検索すれば、たくさん見つかります。

そうして見つけたページのサンプルコードを打ち込んで実行してみます。
意味は分からなくてもかまいません。
とにかく打ち込んでいるうちに理解できるものです。(少しは考えないとだめですが…)

そのうちにプログラムにはある共通点があることに気がつきます。
1つはアルゴリズムである、条件文(if)と繰り返し(for<HSPはrepeat>)です。
もう一つはデータ構造である、配列です。
最初はこの2つの概念に慣れることが重要です。

そうしてある程度慣れたら、ライブラリを使ってゲームを作ってみます。
とりあえず、やってみることが大切です。

以上、.1064でした。

オススメのプログラムの入門書

言語タイトル説明
HSP無料ツールでゲームプログラミングHSP編TechWin?という雑誌に連載されていた内容をまとめたものです。
HSP2.55Windows95/98/2000/Me/XPプログラミング入門巻末のリファレンスがとっても役に立ちます。
CやさしいC女性ならではの細かい気配りがあって、とても分かりやすいです。
Delphiカンタン!Delphiプログラミング~―あなたにも作れるWindowsプログラムアプリケーションを作りながら、Delphiの基礎を学ぶことができます。
DirectXDirectX実践プログラミングこれ一冊で、DirectXは大体分かります。


ELの再配布先

ELを配布していた「Bothy World」のページは閉鎖されてしまいました。
現在は、Twin Tail Loversの葉迩倭さんが善意で再配布をしています。