第05章 デジタル世界は牛乳パックでできている②
ゲーム作りは、必要な牛乳パック(オブジェクト)を作り、それに動きを付けていく作業である、という事が分ったところで、実際に壱人のゲームに必要なものを作ってみる事にした。
「まず一番に必要なものは…」
「必殺技だな!スペシャルで格好良くて派手なやつ!『超ド級ミQミQ雷撃乱舞』みたいな!」
イッQが話している途中で、壱人が口を挟んだ。
「基本システムもできてないのに、必殺技も何もあるか!」
「でもこう、スゴイやつをやりたいんだよ!コンボが繋がって派手に逆転できるやつ!」
「それはもっと先の話だ!その前にやらなきゃいけない事があるだろ」
気持ちが逸っている壱人を制止して、イッQは例えで説明した。
「まず用意しないといけないのは材料や道具だ。家なら、土台や、柱や屋根、断熱材、壁なんかのことだよ。家建てた後にどんな暮らしするかはもっと後の話だ」
「つまんねえな。えーと、つまり何を用意すればいいんだ?」
「いや…お前の場合はカードゲームなんだからカードだろ」
不満顔になった壱人を見ながら、イッQはそれでも話を進める事にした。
「お前のカードゲームはトランプがベースだから、まず普通のトランプを作ろう」
これが小説なら「トランプがここにある」と書けば済むが、それは書き手も読み手もトランプがどういうものか知ってるからである。しかしプログラムでは要素を情報として定義する必要がある。それらを全て自分で用意しなければ、トランプと名前の付いた、ただの牛乳パックでしかないのだ。
トランプは52枚+αのカードが1セットになった集合体だ。今回はαの部分は考えない事にする。
52枚のカードは、模様と数字の要素を持っていて、模様はハート、スペード、ダイヤ、クローバーの4種類、数字は1~13だ。
「まずはカードを一枚作ってみよう。ハートのAだ。カードという名前を付け、ハートという模様と、1という数字を情報として追加する」
カード{
模様 = ハート;
数字 = 1;
};
これを52枚作る事で、それぞれのカードができあがるわけだ。
そして、それらがバラバラでは無く、1組のものとする為に、52枚のカードを内包するオブジェクトを新しく作る。これがトランプのデッキになる。
デッキ{
カード1枚目;
カード2枚目;
…
カード52枚目;
};
「これで完成?」
「いや、これはカードとデッキという牛乳パックができただけだ」
この後に「動き」を付ける必要がある。“シャッフル”、”手札を配る”、“山札から手札にカードを加える”などだ。この「動き」を付けることで、牛乳パック=オブジェクトは動く事ができるのだ。
「うーん」
壱人の顔は渋いままで、それに不安を感じたが、イッQはとにかく説明を続けた。
「それじゃあ、シャッフルを作ってみようか。まずは52枚全てが揃っている状態のシャッフルを考えよう」
カードは整然と並んでいるので、その順番を入れ替える。カード1枚目の順番の数字は「1」。これを別の数字に変更する。
自分で考えて変えてもいいが、「乱数」という“ひみ〇道具”を使うと便利だ。乱数はビンゴの抽選機のようなもので、無秩序な数字を出してくれる。
※“ひみ〇道具”の説明については第03章を参照してください。
カード1枚目の順番の数字 = 1~52のどれか(乱数使用)
これをまた51回(最後の一枚は自動的に決まるので)繰り返して、全てのカードの順番を入れ替えるとシャッフルした事になる訳だ。
「こんな感じで、必要な『動き』…メンバ関数とかメソッドと呼ばれるものを作っていくんだ」
他にも、模様や数字が同じか比較したり、数字が並んでいるのか調べるもの、山札や手札の状態などの情報を管理するものが必要だとイッQは言った。
「トランプを作るだけでも、結構大変なんだな」
それが説明を聞いた壱人の感想だった。何となく思っていたものと違う。もっとポンポンと簡単にできるのかと思っていたのだ。
「見た目も変えたいんだけど」
「それはまだいいだろ?」
壱人の不意の要望に戸惑いながらイッQは答える。
「見た目を変えたいなら、別の『動き』を作らないと。でもまずは基本の処理をちゃんと作って…」
そのイッQの言葉を遮って壱人は正直な感想を口に出した。
「プログラムって面倒な割に地味なんだね」
壱人の一言にイッQは動揺する。
「確かにその通りなんだけど、この一つ一つを作る感じが良いんじゃないか」
慌ててプログラムを擁護しようとしたが、次の言葉は、却って壱人の意欲を下げてしまった。
「大体、プログラムの作業なんて99%は目に見えないよ!」
イラストならラフや下書きなどで、途中経過を見せる事ができるが、プログラムが途中のものはほとんど動かないかおかしな動きしかしない。かと言ってソースコードというプログラム自体を見せても何をしているかなど分かってはもらえないのだ。
見えない部分がしっかりしていないと正常に動くものはできない。だから土台をきちんと作り込んだ方が良いとイッQは主張した。
「っていうか、人に見せられるような形になってたら、作業なんてほとんど終わってるんだよ!」
「でも見た目が変わらないと、ちゃんとできてるかどうか分からないじゃないか!」
二人の言い合いは続く。
「目に見えるものが美しいからといって、それが全てじゃないんだ。それ以外の見えない部分の方が大切な事だってあるんだよ」
「イッQさん、そのネタ誰にも分からないよ。俺すら出典を忘れてるよ!」
(※作者注)本当に忘れました。ご存知の方がいればご一報ください。
「いいか?『とにかく動けばいい』というやり方だとどこかで破綻するんだ。目に見えなくても、進んでいるか心配になっても、完成形を考えながら続ける事が一番大事なんだ。そういう地道な努力がゲームを完成させるんだよ!」
「偉そうな事を言ってるけど、イッQさんはゲームを完成させてないじゃないか!」
「う、それは…」
「どうせその地味な作業が嫌になって中断ばっかりしてたんたろ!」
その壱人の指摘は思ったよりもイッQの心に深く突き刺さり、途端に勢いが消え声が小さくなる。
「そうだよ…ゲームを完成させてない俺が何言っても説得力なんか無いよ!」
震える声でそう言って、イッQはドアを開けて外に飛び出してしまった。
「主人公のくせになんて酷い事を言うんだー!」
という捨て台詞と共に。
「いきなり泣きながら走り出さなくてもいいじゃないか…」
突然の出来事に呆気にとられた壱人はしばらくドアを見つめていた。
「今のは壱人君がいけませんデスデス」
いつの間にかマイナマイナが壱人の後ろに立っていて、そして諭すように言った。
「先程の言葉は、壱人君にはただの事実かもしれません。しかしイッQさんには人生全否定くらいのダメージを与えたのデスデス。なぜなら、挫折したのが本当の事だから」
そして溜息をつきながら付け足した。
「まったく主人公にあるまじき言動デスデスよ」
「今まで何一つ触れてなかったのに、突然、主人公扱いしないでください!」
それは冗談としてと一拍置いた後、壱人に忠告する。
「早く追いかけないと、イッQさんが子供達に見つかってしまいますデスデスよ」
それを聞いた壱人の背筋に冷たいものが走った。忘れているかもしれないが、イッQは117cmミッQ美少女フィギュア(多少デフォルメ有)の姿なのだ。子供にしてみれば『動くおもちゃ』。見つかれば確実に取り囲まれてしまうのである。
飛び出したイッQはしばらく走った後に河原に座って考えていた。傾きかけた太陽を見ながら大きなため息をつく。10年前の自分の言ったことは正しい。自分は結局ゲームを完成させられなかったのだから。
「なぜもっと頑張らなかったのか…」
いや、頑張ろうとはしていたのだ。ただ、やる気を出すのに、やる気を出すための行動が必要で、さらにその行動をするために準備が必要で、その準備の前に息抜きを、みたいな事をしてる内に結局何もできなかったのだ。
「言い訳にすらなってないな」
やってもやっても先に進まず、どんどん意欲を無くしていき、最後は作るのが義務みたいになって少しも楽しく無かった事を思い出す。
しばらく考えた後、イッQは「こんなことしてる場合じゃない」と思い直した。確かに見た目が変わらないと面白くない。面白くないとやる気も出ない。あまり堅苦しく考えずに面白いところから作る事にしよう。せっかくもう一度ゲームを作るチャンスをもらったのだ。できる限り頑張ってみよう。
そう思って部屋に戻ろうと立ち上がった時、イッQはやつらに囲まれている事にようやく気付いた。そう、子供!数人の子供達がイッQをもの珍しそうに眺めている。迂闊に動けば異常な速さで体当たりされるだろう。
「しまった!こんなに接近されるまで気付かなかったなんて。もう少し距離があれば飛んで逃げれたのに」
考えあぐねている間にも、子供達はジリジリ近付いてくる。
その時、探しに来た壱人の声が聞こえた。壱人はイッQを見つけると子供達を通り越して傍まで近付き、「これはお兄ちゃんの人形だから」と抱きかかえて救出した。子供達は諦めきれない様子で壱人の周りに留まっていたが、しばらくするとしぶしぶ遠ざかっていった。その時、小さくキモいという声が聞こえたが気のせいだろう。絶対気のせいだ。
子供達が離れたところでやっと声を掛ける。
「大丈夫か?」
「ああ」
「良かった。とにかく部屋に戻ろう」
帰る道すがらイッQは謝った。
「さっきは悪かった」
謝られた壱人は驚いてどう返事をしたものか迷っていたが、イッQはそのまま思っていた事を吐き出した。
「今の俺は、何かやろうとする度に失敗や不安が目の前をチラつくから、尻込みしてしまってすぐに行動できない。だから、やる気や勢いを持っているお前が必要なんだ。地味な作業も多いけど、ゲーム作りを続けてくれ。俺もなるべく飽きさせないように工夫するから」
ゲームを完成させたいのはイッQも同じなのだと壱人は分った。もしかしたらイッQの方が想いは強いかもしれない。
「もちろんやるよ。絶対ゲームを完成させるって誓っただろ。それになんといっても主人公だからな」
イッQは壱人の言葉に勇気づけられる。この何も考えないで突っ走る力が大切なんだと思った。
「そうだ。俺がやる気を無くしたら怒っていいからな」
イッQを抱きかかえて河原を歩いていた壱人がふいに言った。イッQはその意味を理解はしたが返答に困る。
「俺が言える立場じゃ無いから…」
口ごもるイッQに壱人はこう提案した。
「それならミッQとして怒れば良いよ。そうだ『プQプQポーズ』がいいな。それなら素直に言う事が聞けそうだし」
プQプQポーズとは、ミッQの代表的なポーズの一つで怒った時に使用される。頬を膨らまし、両手を握り、肩の辺りまで腕を上げ、プQプQという効果音を出しながら両手を互い違いに上げ下げする。足の動きも付けば完璧。ミッQファンなら習得済である事が多い。
「いや無理だよ、普通の時は。気分が盛り上がってる時ならできるけど」
「残念だな。ならいつでも良いから今度やってよ」
そんな話をしながら歩いていると、マイナマイナがヒヨコのような何かであるピヤ號と一緒に迎えにきたので、みんなで夕日を見ながら帰った。




