異世界の魔法構文が破綻している件

ミッキーベルグ

プロローグ 世界一周ゲーム

白い天井。カーテン越しの午後の日差し。

ベッドの横に置かれたノートパソコンが、静かにファンを回している。


「これ見て。『いってみたいところリスト』、最新版!」


少女は笑って、紙を差し出した。

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);


(なにこれ……?)


画面じゃない。空間に、直接コードが浮かんでいる。

キーボードに触れていないのに、言葉が流れ出していく。


斉藤は、はっとして目を逸らした。


その瞬間──視界が、白く反転した。



風の音。光の海。

少女は、岸辺の桟橋を駆けていた。春の陽射しの中、麦わら帽子が風になびいている。


「船が来たら、行こうね。画面の中じゃなくて、本当の世界。……ずっと楽しみにしてたんだよ」


彼女は帽子を押さえながら、桟橋の先に立った。

沖合に、帆を張った白い船がゆっくりと近づいてくる。


「ね、見て。ほんとに来たよ。斉藤くん、すごいよね」


彼女の頬に日差しが当たり、まぶしいくらいに笑っていた。


「ちゃんと、私を見てね。……“画面”じゃなくて、“私”を」


その言葉の直後、空が光に割れた。


構文の粒子が空間に満ちる。

少女の笑顔が、構文の光の向こうに溶けていった。


そして、世界が書き換えられた。



草の匂い。風のざわめき。

斉藤は、地面の上で目を覚ました。


周囲には見知らぬ木々。風の音が、現実のものとは思えなかった。


どこかで、風の中に彼女の笑い声が混じった気がした。


「……いやいや、マジかよ」


夢でも妄想でもない。

この空の青さが、それをはっきり教えてくれた。

  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る