異世界の魔法構文が破綻している件
ミッキーベルグ
プロローグ 世界一周ゲーム
白い天井。カーテン越しの午後の日差し。
ベッドの横に置かれたノートパソコンが、静かにファンを回している。
「これ見て。『いってみたいところリスト』、最新版!」
少女は笑って、紙を差し出した。
A4のルーズリーフに、丸文字でぎっしり書かれた世界の名前。
・モンサンミッシェル(海に浮かぶお城)
・マチュピチュ(すごく高いところにある遺跡)
・砂漠で星を見る
・氷のホテルに泊まる
・……
斉藤弘道は、その紙を受け取りながら、どう答えるべきか少し迷った。
少女の笑顔はあまりにまっすぐで、それに応えるには自分はあまりにも小さかった。
「絶対治して、ぜーんぶ行くから。斉藤くんも付き合ってよ?」
──あの時の頷きが、今でも胸に残っている。
*
斉藤弘道、47歳。
都内のシステム会社で、主に社内向けのツール保守を担当している。
派手な案件とは無縁。派遣社員と紙一重の地味な立場。
若い頃に何度も「いつか」の夢を描いたが、そのほとんどは書きかけのまま、メモ帳に埋もれていった。
帰宅した夜、ふと昔のデータを整理していて、一つのフォルダが目に止まった。
“world_tour_game_v1.02”
(……あったな、そんなの)
大学時代に作った、彼女との「旅行」を再現するプログラムだった。
病室のベッドで遊べるよう、ドット絵と簡単なUIで構成されている。
起動してみると、どこか懐かしい起動画面。ぎこちないデザインの地図。
カーソルを動かすと、観光地のガイドがポップアップする。
(……思ったより、ちゃんと動いてるな)
けれど、ある会話イベントに入った瞬間、エラーが表示された。
> ERROR: loop_condition = undefined
「……ああ、ここ、分岐条件バグってたんだっけ」
斉藤はエディタを開いた。コードは古く、今の自分から見ればあちこちが拙い。だが、それが妙にいとおしく思えた。
> if (visited == false) then show_text;
たった一行の修正。
今なら一瞬で直せる。けれど、それをするのに──30年かかった。
(……昔は、誰かのためにコードを書いてたんだよな)
ふと、胸の奥がざわめいた。
彼がそのまま画面を見つめていると、文字がふわりと滲んだ。
> let soul = compile(desire);
> construct(memory, echo);
> construct(world);
(なにこれ……?)
画面じゃない。空間に、直接コードが浮かんでいる。
キーボードに触れていないのに、言葉が流れ出していく。
斉藤は、はっとして目を逸らした。
その瞬間──視界が、白く反転した。
*
風の音。光の海。
少女は、岸辺の桟橋を駆けていた。春の陽射しの中、麦わら帽子が風になびいている。
「船が来たら、行こうね。画面の中じゃなくて、本当の世界。……ずっと楽しみにしてたんだよ」
彼女は帽子を押さえながら、桟橋の先に立った。
沖合に、帆を張った白い船がゆっくりと近づいてくる。
「ね、見て。ほんとに来たよ。斉藤くん、すごいよね」
彼女の頬に日差しが当たり、まぶしいくらいに笑っていた。
「ちゃんと、私を見てね。……“画面”じゃなくて、“私”を」
その言葉の直後、空が光に割れた。
構文の粒子が空間に満ちる。
少女の笑顔が、構文の光の向こうに溶けていった。
そして、世界が書き換えられた。
*
草の匂い。風のざわめき。
斉藤は、地面の上で目を覚ました。
周囲には見知らぬ木々。風の音が、現実のものとは思えなかった。
どこかで、風の中に彼女の笑い声が混じった気がした。
「……いやいや、マジかよ」
夢でも妄想でもない。
この空の青さが、それをはっきり教えてくれた。
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます