第05章 デジタル世界は牛乳パックでできている①
「そういえば、ゲームってどうやって作ればいいんだ?」
実質的な作業をする段になって、壱人が初歩的な質問をしてきた。今までは本の通りにしていたので考える必要は無かったが、いざ自分でやるとなると、何から始めたら良いのか分からないのだ。
「初めてなんだから、まずは自分の作りたいゲームに近いサンプルプログラムをベースに、必要なオブジェクトやルールを追加していくと良いよ」
「オブジェクト?ルール?」
すぐには意味が理解できなかった壱人の為に、イッQはそれぞれについて説明した。
『オブジェクト』はゲームで使用するあらゆるものを指す。分かりやすいのは画像だが、キャラクターのセリフや、能力ゲージの数字も全てオブジェクトだ。
『ルール』はゲーム内の規則。身近なルールは道路交通法の「信号が青なら進め、赤なら止まれ」だろう。しかしこれは人間が決めたルールだから破る事が出来る。プログラムでのルールはもっと絶対的で「自然法則」に近い。例えば、万有引力や慣性、電気伝導などである。
「万有引力とは、質量をもつ物体が互いに引き寄せあう現象だ。ボイジャー1号が太陽圏を脱出する時に使ったスイングバイは、木星と土星の引力、つまり物体を引き寄せる力を上手く利用したものなんだ」
イッQが説明を終えたところで、壱人が疑問を口にした。
「万有引力なら『リンゴが木から落ちる』で良いだろ。なんでスイングバイを使ったんだ?」
まさかそこを指摘されるとは思っていなかったイッQは、動揺しながら答える。
「え、だって機会があったらスイングバイって言いたいじゃないか?滅多に言えないんだから」
「読み方が格好良い単語を不必要に使っちゃう中二病みたいな行動って10年経っても治らないの?」
「10年で治るわけないだろ!むしろ拗らせてるよ!」
呆れて思わず本音が出てしまった壱人に、イッQもつい反論してしまう。
そのせいで少し中断したが、マイナマイナの「話を進めて下さいデスデス」とピヤ號の「ピヤピヤ」により、イッQは説明を再開した。
「オブジェクトに戻るけど、俺のイメージだと枠だけの立方体なんだよな」
「立方体って箱とか段ボールみたいなやつ?」
「そうだ。オブジェクトは色々な形に変形するから、粘土やレ〇ブロックでも良いんだけど、情報を内包できる事を考えると、中が空になっている方が分り易いと思うんだ。だから枠だけの立方体なんだけど…」
そうは言ってみたものの、ちゃんと伝わっているのか自信が無いイッQは、壱人に直接聞いてみる事にした。
「箱とかダンボールでもいいんだけど、もっと小さくて手軽な感じなんだよな。お前はどんなものをイメージした?」
そう問われた壱人は、今までの説明を頭の中で反芻して一つ思い付いたものがあった。それは…
「牛乳パックかな?」
それを聞いてイッQは「確かに牛乳パックは、簡易まな板や収納用具になったり、溶かして葉書にできるし、色々と形を変えられるな」と腑に落ちたので、それで説明する事にした。
「まず牛乳パックを用意する」
「突然、小学生の工作みたいになったけど大丈夫か?」
その言葉に不安を感じた壱人が尋ねる。
「お前が言ったんだろうか!とにかくこのまま説明するぞ」
この牛乳パックは球体や三角錐にもなるし、もっと複雑にも平面にもなる。さらに音や光、時間にもなるのだ。だからイッQはこう言った。
「つまりお前が望めば、美少女にも変形させられるって事だ」
「マジか!」
壱人がすかさず反応する。イッQは「本当だ」と言った後、「その場合は、必要な要素を全部自分で用意しないといけないけどな」と付け加えた。
「それじゃあ、その牛乳パックをプログラムで使える用にするぞ」
「どうすんの?」
「型を決めて、名前を付けてやるんだ」
型によって物体・画像・テキスト・数字・音のように、どんな「もの」にするのかが決まる。そして名前を付ける事で実体化する。
「つまり名前の有無が、存在の有無なんだ」
「なんか格好良い!」
「そうだ、プログラミングは格好良いんだ!」
デジタル限定だが世界を作れるのだとイッQは得意気に言った。小説や漫画でも世界は作れるが、プログラムの場合は作った仕組みで動いてくれるところが良いのだという。
「人もドラゴンも、車やロケットや、街だって星だって、世界のあらゆるものをなんだって作れるんだぞ」
そうイッQは付け加え、壱人も世界を作るという想像が膨らんで興奮してくる。
「それって全部、牛乳パックでできてるんだよな?」
「分解していけば全て単純な牛乳パックだよ。それを変形させたり繋げたり複雑にしていく事で世界を構築していくんだ」
つまり、ゲームに必要なオブジェクトを考えて、それはどんなルールで動くのかを決める。それを繰り返してゲームを作っていくのだと壱人は認識した。