目次
参考ページ
ここでは、ゲーム製作にはどんなツール/言語を使ったらいいのだろう?
と悩んでいる人のために、私なりのアドバイスをします。
結論から言うと、使い慣れたツール/言語が一番よいです。
どんなツール/言語であれ、使いこなすにはある程度の期間が必要になるため、
慣れるまでは、開発がまったく進まないからです。
なお、RPGツクールなどのツクールシリーズは使ったことがないので、コメントができません。
ただ、ツクールシリーズはゲームの流れやゲーム性など、ゲーム作成のためにとっても勉強になるみたいです。
世の中にプログラム言語はたくさんあるので、どれを選択するか迷ってしまいます。
ですが、ゲームを製作するという視点から見れば、どれを選んでも大変です。
というのも、普通の言語はゲーム以外のものを作成するために作られたからです。
唯一の例外は「HSP」です。
ゲームを作るために開発された言語ではないか、と思うほど、ゲーム開発のための機能に特化しています。
ではどんな言語があるか見てみましょう
ちなみに以下の言語のコンパイラは、VB以外はすべて無料で手に入ります。
言語 | 特徴 | 難易度 | ランタイム | コンパイル速度 | 実行速度 | 配布サイズ |
HSP | 難しい部分をすべて排除した言語。この中ではもっともお手軽。ゲーム関係のライブラリが充実。 | ☆ | − | 速い | 普通 | 普通 |
C | 最も速く動き、最も配布サイズが小さい。ポインタが使えるが、使い方が難しい。 | ☆☆☆ | − | 遅い | 最も速い | 最も小さい |
C++ | Cと互換性がある。(Cのプログラムがほぼそのまま動く)オブジェクト指向を採用。とにかく複雑。 | ☆☆☆☆☆ | − | 遅い | 速い | 小さい |
VB(6.0) | 定番のプログラム入門言語。現在、Enterpriseバージョン(15万円くらい)以外は入手不可。 | ☆☆ | 必要 | 速い | 普通 | 大きい |
Delphi | Cよりも文法が厳格な言語。ロースペックマシンでもコンパイルが早い。フリーウェア作家に人気。Delphi6.0 Personalであれば無料で手に入る。 | ☆☆☆☆ | − | 速い | 速い | 小さい |
Java | C++の難しい部分を排除して、オブジェクト指向に特化した言語。JavaVMというランタイムが必要となる。 | ☆☆☆☆ | 必要 | 遅い | 遅い | 普通 |
C# | (VB+VC+Java+Delphi)/4といったいいとこ取りの言語。今後に期待できる。.NETFrameworkというランタイムが必要となる | ☆☆☆☆ | 必要 | 普通 | 普通 | 普通 |
※VBは.NETであれば安いStandardバージョン(2万円くらい)を入手することができます。ただし、動かすためには、.NETFrameworkが必要になります。
難易度の説明のために、各言語の取得にかかる時間をグラフにしてみました。
横軸がかかる時間(月)、縦軸が習熟度です(%)
習熟度が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の差)、
最近はむしろ、画像ファイルや音楽ファイルをいかに小さくするかが問題ですね。
同じ言語であっても開発環境が複数あることがほとんどです。
言語 | 開発環境名 | DirectX | 備考 |
HSP | なし | △ | 無料で手に入る。デバッグ機能なし |
VB | VisualBasic?(6.0) | ○ | 現在Enterpriseバージョン以外は入手不可。 |
C/C++ | VisualC++ | ○ | |
C++ Builder | △ | ||
Builder C++ Compiler(コンパイラのみ) | △ | 無料で手に入る。 | |
Delphi | Delphi | △ | Delphi6.0 Personalであれば無料で手に入る |
Java | JBuilder | × | Personalであれば無料で手に入る |
Eclipse | × | 無料で手に入る。GUI作成機能なし | |
C# | VisualC# | ○ | コンパイラーのみであれば、無料で手に入る |
TODO:各ツールのリンク先はこちら
MicroSoft?が開発元であるVisual〜は、デバッグ機能が充実しています。
Borlandの〜Builder,DelphiはGUI部品(ボタンやコンボボックスなど)を組み込むときの使い勝手が充実しています。
ただ、GUI部品をゲームにそのまま使うことはほとんどないので、
デバッグ機能が充実しているVisual〜の方が有利ではないかなー、と思います。
また、Visual〜は同じMicroSoft?開発のDirectX(グラフィックやマルチメディアのコンポーネント)が容易に使えます。
しかし、HSPやDelphiでは、善意の人たちが独自に開発したライブラリで、DirectXを呼び出すこととなります。
そのため、どうしても情報が少ないです。
なぜDirectXの話をしたのかというと、ゲームを簡単に作成するためのライブラリがDirectXであるからです。
(HSPはDirectXを使用しないほうがいいです。かえって難しくなります)
そうです。DirectXを使えば、簡単にゲームが作れるのです。
しかし、DirectXを直接使おうとすると、実は結構難しいです。(あれれ?)
いや、つまり。
DirectXを簡単に使うためのライブラリを使う、ということです。
例えば、C/C++であれば、「Easy Link Library」を使用します。
また、Delphiであれば、「Quadruple D」
を使用します。
最初は簡単な言語を使用したほうがいいと思います。
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を必要とする実行ファイルと、必要としない実行ファイルの両方を作成することができます。
最後に各言語の勉強方法ですが、基本的にはネットで検索します。
例えば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の基礎を学ぶことができます。 |
DirectX | DirectX実践プログラミング | これ一冊で、DirectXは大体分かります。 |
ELを配布していた「Bothy World」のページは閉鎖されてしまいました。
現在は、Twin Tail Loversの葉迩倭さんが善意で再配布をしています。