完全初心者のためのプログラミング入門
――JavaScriptでUFOゲームを作る――

世間には、「プログラミングを勉強してみよう!」と思って、入門書や入門ページを見てみたものの、以下のような理由で挫折した、という人が多いのではないかと思います。

こういうことで挫折する人が出ないよう、このページでは、以下の方針で行くことにします。

最初に作るゲームはこんな画面です。実際に動くゲームはこちら

ランダムに(でたらめに)飛び回るUFOを、下にいるキャノン砲で撃墜するゲームです。

カーソルキーの左右でキャノン砲を移動し、スペースキーでビームを発射します。ビームがUFOに当たると、UFOは爆発炎上し、また次のUFOが出てきます。

UFOは撃ってこないし、UFOは1機しかいないし、なんならこちらのビームも画面上には一発しか存在しません(ビームが消えるまで、次のビームが撃てない※3)。いまどきの目の肥えた若い人たちには物足りないかもしれませんが、このUFOゲームを元にもうちょっと勉強すれば、この程度のシューティングゲームや、テトリス風ゲームくらいならすぐに作れるようになります。最初の一歩はこれでもよいのではないでしょうか。

この入門の最後の章では、上のシューティングゲームまで作りますので、いくらなんでもUFOゲームじゃ物足りない、という人は最後まで読んでください。

目次

この入門で作成しているJavaScriptプログラムや画像ファイルは、以下からダウンロードできます。

jslesson_20221010.zip

zipファイルがダウンロードされますので、右クリックして「すべて展開(T)...」を選択して展開してください。「ファイルって何?」という人はこちらに。

なぜこんなのを書いたのか

以下、おっさんの昔語りなので、興味のない人は飛ばして本編を読んでいただいて構いませんが。

大昔、「マイコンBASICマガジン」(略してベーマガ)というパソコン雑誌がありました。毎号、主にBASIC(ベーシック)という初心者向けのプログラミング言語で作られたゲームのプログラムリストをたくさん載せていて、それをパソコンに(手でキーボードから!)打ち込んで遊んだり、それを参考にプログラムの勉強をした中高生が大勢いました。掲載されているプログラム自体、読者が作って投稿したものです。我々の世代には、この雑誌でプログラミングを学んだ、という人がかなり多いはずです※4

そのベーマガのある号(こちらのページによれば、1982年8月号)に、「UFOゲームを作ってみよう」という記事がありました。「AAA」という文字で表示したUFOを、「I」のビームで撃ち落とす、というたわいのないゲームでしたが※5、当時のBASIC製ゲームの基本は押さえていて、とても勉強になったことを覚えています。この「入門」は、つまり、あの「UFOゲームを作ってみよう」へのオマージュです。

1982年8月当時、私は12歳で中学1年生だったようです。この入門は、当時の(ベーマガ自体はもうちょっと前から読んでたのと、その前に、確か新書の本でBASICの基本を読んだ記憶があるので、その頃は小6か)私でも読んで理解できるということを目標にしています。まあ、今の子どもは、Scratchとか、任天堂のナビつき! つくってわかる はじめてゲームプログラミングあたりでさくさくゲームくらい作ってしまうのかもしれませんし、私も別段そういうものを否定するつもりはありませんが(そもそもやったことがないので)、プログラミング言語を使ってイチからプログラムを書く、という選択肢もあってよいでしょう。

子どもでも読めることを目指すなら、当時のベーマガがそうであったように、Dr.Dと編さんと影さんのかけあいにしてみるとか、そういうことも考えたのですが、やめました。私にそういうものを面白く書く能力はなさそうですし、そういう形にしなくても小中学生でも読めるでしょう。なにしろ、プログラミングという、知らない世界をのぞき込むのなら、精一杯背伸びしたっていいじゃないですか。それに、もちろん、この入門は、子どもだけをターゲットにするつもりはありません。おっさんでもおばさんでも、読んでいただければ幸いです。「生活が苦しい。プログラマは儲かるようなので転職したい」という人も、プログラミングスクールに大金払う前に、まずはUFOゲームくらい作ってみて、面白い仕事かどうか試してみるのはどうでしょうか。

――ベーマガの時代は、雑誌のちょっとした特集記事で、プログラミングの基礎を学ぶことができました。ゲームセンターで100円払ってやるゲームも、実のところこのUFOゲームとそう大差ありませんでした。それに引き換え、今は、初心者がちょっとプログラミングをやってみようと思った時に、思いつくものといえば、掲示板のようなWebアプリケーションとか、スマホアプリとかでしょうか? 掲示板ひとつ作るにもHTMLCSSサーバサイドのプログラミング言語とデータベースネットワークの知識が必要ですし、スマホアプリも、始めるハードルはかなり高いです。Androidアプリの開発環境Android Studioはエミュレータ含めるとクソでかいですし、iPhoneアプリに至っては、Macを買ったうえでアップルにお金を払わないと始めることすらできません。私が子供のころに比べて、情報源はめちゃくちゃ増えたものの、プログラミングを始める難易度はかなり上がったと感じています。

ここで扱うUFOゲームは、ゲームとして面白いとは正直思えませんが、ブラウザひとつで動かせますし、HTMLとJavaScriptだけ覚えればなんとかなるのでハードルは低いと思います。そして、こんなものでも自分で作って動かせたとなれば楽しいものです。プログラミングを始めるきっかけにはなると思っています。

公開日: 2021/06/20



ひとつ上のページに戻る | トップページに戻る