08/05/13 13:55:49 W+YhV3a4
ふむぅ・・フルボッコで気の毒なので、>>20の人にもあわせて少し説明するとね
ゲーム向けスクリプト言語とか、HSPなどのBASIC系ゲーム開発言語とかってのは
ゲームのそれぞれのシーンに必要な機能を持った命令群をまず用意して、それらを
うまくつなぎあわせて完成形に仕上げるために必要な制御構造を取り入れた感じ。
たとえばスプライトを動かすとか、画像を読み込んで画面表示するとか、
フォントと表示位置と色を指定して文字列を表示するとか・・
だから、「こういうことがやりたい」→「実現する命令を探してきて使う」という
自然な発想でどんどん進めるね
これに対して、CとかC++のような言語はいわゆる汎用言語と呼ばれていて、言語だけでは
ゲームに必要な機能は何も持っていない。標準ライブラリとかSTLというものが
付属で用意されてるけど、それらもごく低レベルな入出力と、プログラムが
書きやすくなるような仕掛けを用意してくれるに過ぎない。
それ以上のことがしたければ、システムコールやAPIを介してOSの機能を利用したり、
DirectXなどのライブラリを利用することで初めてまともにゲームが作れる環境になる。
そのかわり・・言語自体はコンパイルされて直接機械語に落ちるので、腕と知識があれば
なんでもできるね。極端なことを言えば、WindowsやLinuxなどのOSも、大部分はC/C++で書かれている。
逆にゲーム向け言語ではもちろんゲームは簡単に作れるけど、すでに用意されている以上のことを
やりたくなったときには機能追加・拡張は難しい。そういうときは開発者に要望を出すか、
自力でなんとかしたければ汎用言語の力を借りてDLLやプラグインを作ったりすることになる。
クラスとかポインタとかってのは言語そのものの機能であって、それ自体でなにか
目に見える役に立つことをするわけじゃない。
大工さんの金槌やのこぎり、コックさんの鍋釜や包丁に相当する道具だ。
「角切りの人参とじゃがいもを柔らかくなるまでゆでて、下ごしらえした鶏肉を入れてじっくり煮込む」
という説明に、鍋釜や包丁の使い方は出てこないよね。それと同じで、なにをするにしても
それが自由に使えることが前提の機能であって、逆にそれを使いさえすればすごいことができる、という
性質のものではない。