【第3話】勇者よ 何ゆえ もがき生きるのか?
こんにちは!まる。です。
創作小説『勇者よ 何ゆえ もがき生きるのか?』の第3話となります。
いつも読んでくださる皆様、本当にありがとうございます!
さて、彗星衝突まで残された時間はあとわずか。
今回は、かつて情熱を失っていた主人公・創助が、ついにプログラマーとして覚醒する回です。
強大な彗星に立ち向かうために彼らが選んだ武器は、魔法の剣でも、破壊光線でもなく……「世界中の祈りを束ねるための、泥臭くも完璧なシステム」。
そして、それを拡散するための超アナログな作戦とは?
現実のシステム開発のリアルと、RPGのファンタジーが交差する熱い開発会議。
クリエイターの意地と遊び心が詰まった第3話、どうぞお楽しみください!
▼前回の話はこちら
📗用語
本編を読む前に、少しだけ世界観の用語をご紹介します。
・アルカステラ
星をモチーフにしたカードの精霊たち。
プレイヤーは相棒となるアルカステラを集め、
彼らを駆使して戦う「ステラバトル」に挑みます。
※普通の人たちは、18歳を迎えると彼女たちの声を聴いたり、
姿を見たりすることができなくなってしまいます。
・WCS
「ワールド・チャンピオンシップ」の略称。
世界一のステラバトラー(カードプレイヤー)を決める、最高峰の大会です。
詳しくは、こちらを見て頂けるとより楽しめるかも知れません。
▼星の精霊アルカステラについてはこちら!
▼世界観についてはこちら!
#6 勇気は夢を叶える魔法
効果音素材:音人
(ノートパソコン・キーボード)

8月1日、正午。
遮光カーテンで真夏の炎天下を締め出した創助の部屋には、キーボードの打鍵音だけが響いていた。
カタカタカタカタ……ッ!
机の端では、飲みかけのブラックコーヒーがすっかり冷え切って、
ぬるい輪染みを作っている。
(——ダメだ。標準の描画処理じゃ、絶対に端末が落ちる)
指先は止まらない。
頭の中で、あの日レビィが差し出したカードの星紋が、勝手に回路図に置き換わっていく。
(全世界の少年少女を、同じ瞬間に、同じ場所に集めるんだ。通信の受け皿が重くて、どうする——)
画面上のオブジェクトを片っ端からプール化する。
重い処理はネイティブモジュール側へ逃がし、JSスレッドは描画専任にする。
頭の中で組み上がった設計図を、指がただ写し取っていく。
書いているというより、思い出している感覚に近かった。
——これで、どれだけデータが押し寄せてもUIは絶対に落ちない。
絶対にだ。

その様子を、シューメーカー・レビィは机の端に腰かけて、
ただ静かに見つめていた。
PCを取り出したあの夜から、二度目の正午。
最初は、レビィも幾度か声をかけようとした。
だが、魔法の箱に連なる無数の呪文——それを紡ぐ勇者の背中は、
話しかけることさえ躊躇わせる張り詰めた気配を纏っていた。
その静寂を覆されたのは、下から響いてきた不作法な足音によってだった。
ドタドタドタッ、と階段を駆け上がる音。
ノックもなしに、部屋の扉が勢いよく開かれる。

「アニキ、須野尾さんが来て——って、あれま」
妹の京は、扉を掴んだまま目を丸くした。
「珍しい。アニキがプログラミングしてる姿なんて、いつ以来だっけ」
『……勇者は今、大魔法を詠唱されているのです』
ふと横を向いて、初めてそこに佇む少女に気づく。
「……勇者?魔法?
…えっと、どちら様?」

『星の精霊アルカステラの一つ、シューメーカー・レビィと申します。
滅びゆく世界を救うべく、勇者に神託を授けに参りました』
「……アルカステラって、あのカードゲームの?
というか、アニキが勇者?何の冗談?」
京は顎に手を当て、不思議そうに首を傾げる。
ちらり、と兄の背中を見やって、
「そもそも、アニキ、カードゲームなんてやってたっけ……ま、いっか。
この兄貴が何やっても、もう驚かないし」
呆れたように零したその横顔は、どこか兄によく似ていた。
「……とは言え、せっかくお客さん来てるんだから、これ以上待たせる訳にはいかないよねぇ。
おい、バカ兄貴! 須野尾さんが遊びに来てるよ!」
ピタ……。 狂ったようにキーボードを叩く手が止まる。
そして、振り返ることなく。

「……そうか。 悪い、京。 アイツをここまで呼んできてくれ」
そう、一言だけ告げた。
#7 ▶たたかう
BGM素材:SunoAI

「おっ、やってるねぇ」
須野尾はのんびりとした調子で入ってくるなり、
創助の背後からモニターを覗き込んだ。
流れるコードを、ふむふむと目で追う。
次の瞬間、呆れたように鼻を鳴らした。
「おいおい……コメントくらい書いとけよな。これじゃ、うちの学校じゃ赤点だぜ?」
「どうせ、お前くらいしか読まないんだ。別に良いだろ」
創助はようやくキーボードから手を離し、椅子ごと振り返る。

充血した目の奥には、疲労と——あの日、アプリ開発に寝食を費やしていたころの少年のような光が灯っていた。
須野尾は、その目を見て一瞬だけ黙った。
それから、いつものだるげな仮面の下で、口角がわずかに上がる。
「……ふうん」
「クライアント側の受け皿は、ざっと八割方組み上がった。
UIのコンポーネント化と、オブジェクトプールの実装も完了してる。
描画負荷は極限まで削ったから、どれだけデータが押し寄せても端末は落ちない」
「なるほど。で、俺はどこから始めれば良い?
言語と開発環境……あと、ネットワーク側の要件はあるか?」
須野尾はいつもの気だるげな表情の中に、鋭い光を覗かせて尋ねた。
「フロントはReact Nativeで組んでる。
言語はTypeScriptだ。
俺が作ったこの『絶対に落ちないUI』に、世界中のユーザーの接続を捌けるリアルタイム通信を乗せてほしい。
ネットワークとデータベース領域の設計は、全部お前に任せた」
その言葉に、須野尾はニヤリと口角を上げた。
「ふーん……世界規模の同時接続ね。簡単に言ってくれるねぇ」
「出来ないのか?」
「何、三十時間もあれば十分だろ。
ゼロからソケットサーバーやインフラまで組んでたら音を上げるところだが……幸い、下回りは全部マネージドサービスに丸投げできる。
通信プロトコルは通常のHTTPじゃ心許ないから、WebSocketで双方向ストリーミングの基盤を組む。
DBはスケーラビリティ重視でNoSQLのクラウドデータベースを引っ張ってきて、認証とオートスケーリングもそっちに任せるさ。
……ただし、正直、一番時間を食うのは実装そのものより先だ。
世界中から同時にぶち込まれるアクセスを想定した負荷試験の方が、よっぽど骨が折れる」

『???』
シューメーカー・レビィは、可視化できそうなほどのハテナマークを頭上に浮かべる。
京はそんなレビィを同情するように見つめ、ぽんぽんと虚空を叩く仕草をした。
「あー……あの人たちの言ってること、真に受けない方がいいよ? あたしらとは別の国の言葉で話してるから。
それじゃ、お二人ともごゆっくりー」
「待て」
部屋から退出しようとする京を、創助が引き止める。
「お前にも手伝って欲しいことがある」
「え、でもあたし、プログラミングなんて出来ないの知ってるでしょ?」
創助は一拍置いて、部屋の全員を見回した。
その視線には、迷いがなかった。
まるで頭の中に、既に完成した戦場の見取り図があるかのように。

「……これから役割を分ける。時間がない。聞き返しは一回までだ」
「うわ、急に部活の監督みたいなこと言い出した」
「京」
「はい」
ぴしゃり、と名前を呼ばれただけで、京の背筋が反射的に伸びる。
剣道部で叩き込まれた条件反射だった。
創助はまず、須野尾を見る。
「須野尾。お前はバックエンド全般。リアルタイム通信、データベース、認証、負荷試験。全部だ」
▶さくせん:バッチリがんばれ

「雑だなぁ、おい」
「お前なら出来る」
須野尾は一瞬だけ目を細め、それから肩をすくめた。
「……まあ、否定はしないけど」
「同時接続の見積もりは強気でいけ。
控えめな想定は、だいたい現実に負ける」
「了解。夢を見るなら、最初から桁を一つ上げとくさ」
創助は次に、京へ向き直る。
ピロン、と京のスマートフォンが短い通知音を鳴らす。
「今、URLとQRコードの画像ファイルを送った。
これをSNSに拡散するのと、QRコードをPhotoshopでチラシ風にデザインしてくれ」
▶さくせん:ガンガンいこうぜ

「いや、だから急に言われても——」
「告知画像は三パターン作れ。
一つはポップ。
一つはエモ寄り。
もう一つは、意味深で拡散を狙う。
花火大会の雑踏の中で、人間が三秒で足を止めることを最優先にしろ。
情報を盛るな。遠目でも読めるようにするんだ」
京の目が、少しだけ真面目になる。
「……三秒で足を止める、ね」
「お前、剣道の試合で相手の初動を見るの、得意だろ」
「まあ、それは……」
「同じだ。人が立ち止まる“隙”を作れ」
京は兄の顔をじっと見た。
冗談を言っている顔ではない。
無茶苦茶なことを本気でやり切るつもりの顔だ。
「……分かったよ。文字は詰めない。QRコードを目立たせる。
夜でも視認性の高い配色にする。で、印刷もだっけ?」
「ああ。デザインが終わったら印刷所の候補を洗え。
最速納期のところを当たれ。
枚数は——とりあえず、一万枚くらいあれば足りるか」
「い、一万!? そんな無茶苦茶な……!」
「剣道部で鍛えた精神力を見せつけるいい機会だぞ。
とりあえず、デザインが終わったらLINEしてくれ」
『まぁ! 勇者の妹さんは戦士様だったのですね!』
尊敬の眼差しで目を輝かせるレビィと、ヒィッと顔を引きつらせる京。
だが、創助の指示はまだ終わらなかった。
「レビィ」
『は、はいっ、勇者!』
小さな胸に手を当てて、レビィがぴんと姿勢を正す。
「お前には、アルカステラ側の確認を頼む」
▶さくせん:いのちだいじに

『確認、ですか?』
「人の願い——エーテルを束ねる条件だ。
一人あたり、どれくらいの祈りが必要なのか。
同じ時間に、同じものを願う必要があるのか。
場所は問わないのか。
願いの言葉は揃っていた方がいいのか。
それと、一度に流し込める上限。暴走条件。失敗した場合の反動。全部だ」
レビィは赤い瞳をぱちくりと瞬かせた。
『……ゆ、勇者。それは、まるで……』
「仕様確認だ」
「ははっ」
須野尾が吹き出した。
「女神相手に要件定義を始める高校生、初めて見た」
『よ、要件定義……! なるほど! 神託にも、あらかじめ詰めておくべき条件があるのですね!』
「曖昧なまま作って、あとで死ぬ方がまずい」
『承知しました!
星の精霊たちの伝承庫を辿り、
必要な条件を調べ上げてまいります!』
「なるべく分かりやすい言葉で頼む」
『が、がんばります!』
巻き込まれることを悟った京は、半ば逃げるように部屋を後にした。
バタン、と扉が閉まる音を聞き届けてから、
須野尾は持参したノートパソコンを開きつつ、創助に尋ねた。

「……それで、何を企んでやがるんだ?」
「……八月四日に、駅前で大きな花火大会があるだろ?
それまでにこのプラットフォームを仕上げて、そこで勝負をかける」
「……なるほどねぇ」
全てを察したように、須野尾は悪戯っ子のような笑みを浮かべる。
『……あの、魔法使い様。
勇者は一体、どのような魔法を作っておられるのでしょうか?』
「ああ。アイツは、世界中の少年少女をこの魔法の箱の中の世界に招待しようとしているんですよ」
『転移魔法……そんな大魔法が可能なのですか!?』
目を丸くして驚くシューメーカー・レビィに、須野尾はタイピングの手を止めず、分かりやすい言葉を選んで説明を始める。
「転移魔法、というのとは少し違いますよ、レビィ殿」
須野尾はタイピングの手を止めず、目線だけをちらりと少女に向けた。

「例えるならね——アイツが今こしらえてるのは、世界中から冒険者が集まる『バカでかいギルドの酒場』です」
『ギルドの、酒場……』
「そう。俺たちは、あの彗星を直接ぶん殴れるような攻撃魔法は組めない。
宇宙服も持ってないし、ロケットも持ってない。
——でも、集めることはできる」
ぱち、ぱち、と須野尾のタイピング音がリズミカルに刻まれる。
「世界中の少年少女をひとつの場所に集めて、全員の願いの力……エーテルってやつを、一点に束ねる。そのためのバカデカい魔法陣を、今、あそこで組んでる男が描いてるんです」
『……勇者が』
レビィの赤い瞳が、静かに揺れた。
「……ただ、今の時代、ネットの海にただ放り投げても届かない。アルゴリズムってやつは残酷でね——自分に似た人間の声しか、耳に入らないようにできてる」
「じゃあ、どうやって……」
「だからアイツが選んだのは、一番古くて、一番泥臭い方法ですよ」
須野尾はニヤリと歯を見せた。

「花火大会。人が密集して、感情が高ぶって、スマホより空を見上げてる、
その瞬間を狙う。物理のチラシを、一万枚。
誰か一人でも面白がって火をつけてくれれば——あとは、ねずみ算式に燃え広がる」
『……人の心に、火を』
「そう。人間のUXを泥臭く突くことに関しては、コイツの右に出る奴はいませんよ」

須野尾の視線の先で、創助の背中はもう次のコードを叩き始めていた。
カタ、カタ、カタ……。
その音は、もはや一人分ではなかった。
世界を救うにはあまりにも小さな部屋で、けれど確かに、四人分の戦いが動き出していた。
▶つづきから
▼他の作品はこちら
#小説 #ボーイミーツガール #プログラミング #RPG #HorizonNotes #創作小説
いいなと思ったら応援しよう!
よろしければ応援お願いします!
いただいたチップはクリエイターとしてのゲーム開発に使わせていただきます!
※チップと共にやって欲しい事があったら言ってください!
可能な範囲であれば頑張ります