
ゲーム制作講座
制作講座目次 / PREV(この講座の対象者) / NEXT(ゲームを書くために必要なツール) / トップページ / text mode
 2.JavaScriptって何? |
★JavaScriptとは?
さて、先程からJavaScriptという単語が何度も出てきてますが、そもそもJavaScriptとは何でしょうか?
一言でいうと、HTMLファイル上に記述できるプログラミング言語です。HTMLは、ただの文字の羅列であり、ファイルを読むことを目的としています。それに対して、JavaScriptは、ページを見ている人の動作(ボタンをクリックした等)によって何らかの反応をしたり、一定時間ごとに処理をしたりできます。ようするに、HTMLファイル自体がプログラムになるのです!
と、この後、普通の書籍ならJavaScriptの歴史について書かれていたりするのですが、この講座ではそんなことはどうでもいいので割愛します(笑)。
★いや、他の言語でもいいんですけどね…
HTMLファイル上で動作するプログラミング言語は、JavaScriptだけとは限りません。Javaアプレット、Flash、Shockwaveなど、たくさんのプログラミング言語が用意されています。名前くらいは聞いたことありますよね?
では、なぜこの講座ではJavaScriptを使うのか、さらに言うと、「ちょっとしたゲームセンター」は、なぜJavaScriptなのでしょうか。それは、FlashやShockwaveのように、開発ツールを買う必要がない(開発ツールなしでできる)*1からです。JavaScriptなら、その気になれば、元手0円で始めることも可能です。開発にかける費用が安ければ、気軽に始められますし、もし挫折しても経済的被害が少なくてすみます。
同様に、Javaアプレットも開発ツールは無料なので、元手0円でも可能ですが、Javaのコンパイラ*2(JDK)のインストールが初心者には難しく、プログラムを作る前に挫折する可能性があります(^^;。
【余談】私もJavaScriptばっかり作ってたらダメかな〜と思い、清水の舞台から飛び降りたつもりで(笑)VC++を購入しました。C言語にはちょっと自信があったんですけど、難しくて挫折しちゃいました。ソフト+書籍で1万数千円の被害です。アカデミックパックとはいえ、この金額は学生にとってはきついです。プログラミングのソフトは慎重に買わなきゃいけないと反省した私ですが、実は最近になってVB購入を企んでたりします。
*1 FlashやShockwaveで作る場合は、Directorなどの開発ツールが必要です。数万円くらいします。
*2 人間が書いたプログラミング言語を、コンピュータにも分かるデジタルデータに翻訳すること。JavaScriptには、コンパイラはない(開発ツールが存在しない)ので、HTMLファイルに書いた物がすぐにプログラムとして動きます。
★JavaScriptのメリット
- 書いた物がそのまま動く
JavaScriptは、プログラムを書く→保存する→ブラウザで開く といった簡単な作業で実行することができます。すぐに実行結果が見えるので、初心者にも分かりやすく、プログラムの修正も楽です。
- OSを問わない
1つのプログラムだけで、Windowsでも、Macでも、Unixでも、Linuxでも、Dreamcast*3でも(ブラウザさえあれば)動きます。これはよく考えてみると、すごいことですよ。
- HTMLとの関連性が高い
HTMLのタグの中に命令を書くことができます。また、ボタン(<input type=button>)やテキストエリア(<input type=text>)など、フォームの部品を使って作れるのも特徴の一つです。
- アイデアで勝負できる
JavaScriptはプログラミング言語としては簡単なほうに位置します。また、プログラミング言語の割にはたいしたことは出来ません。そのため、JavaScriptのゲームは技術よりもアイデアが重要になってきます。JavaScriptの初心者でも、(私のようにf^^;)アイデア次第では雑誌に紹介されたりすることも可能です。
*3 DreamPassport2以上が必要。なお、本講座はDreamcastでの動作確認をしていないのであしからず。
★JavaScriptのデメリット
- ブラウザ間で動作が異なる
JavaScript最大のデメリット。有名ブラウザとして、InternetExplorerと、Netscapeの2つがありますが、片方のブラウザにしか使えない命令も多数あります。JavaScriptを使う人なら、できる限り両方のブラウザで動くように作ることを心がけたいものです。
また、メリットの所で、「OSを問わない」と書きましたが、OS間で動作が異なる場合や、特定のOSでしか動かない命令もあるので注意。
- 音が出ない
効果音が使えません。これは結構つらいです。私たちは音のあるゲームに慣れてしまっているので、JavaScriptのゲームをやると物足りなく感じてしまいます。
BGMは、HTMLの機能を使って出すことは可能です。
<html><body> hogehoge.midという名前のファイルを用意してね。<br> <EMBED SRC='hogehoge.mid' autostart='true' volume='100' width='144' height='60' loop='false' controls='console'> </body></html>
|
【余談】ゲームランキングの感想で「音が出るといいですね」と書いてくれる人がたまにいます。私はそれを見るたびにいつも「そんなことできへんのじゃ〜(怒)」と、心の中で叫んでます。
- 動作が重い
JavaScriptなら、一定時間ごとに処理をすることができるのは、前に述べたとおりです。しかし、あまり短い時間(100ms*4以下)に複雑な処理を入れても、ブラウザは定刻通りに処理してくれませんし、極端に無茶しすぎるとパソコン自体の動作が遅くなってしまいます。とくにIEはこの傾向が強いですので、気をつけてください。
- ネットワーク対戦ができない
「東風荘」や「Yahoo!ゲーム」のように、ネットワークを介して、他のコンピュータと通信対戦することができません。JavaScriptで作るゲームは、ほとんど全てスタンドアロン(1台のコンピュータが単独で動作する)なものと思っておいてください。ちなみにJavaアプレットならネットワーク対戦が可能です。
*4 ミリセカンド・ミリセックと読む。1msは1秒の1000分の1なので、100msは0.1秒。
制作講座目次 / PREV(この講座の対象者) / NEXT(ゲームを書くために必要なツール)
記事の無断転載を禁ず(リンクは歓迎)
質問があればメールでどうぞ
(送ってくれた質問は、FAQとしてここに載せることがあります。質問者の名前は公開しません。)