表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
5/8

LOG_004 ー Runaway Script: The Price of Overwriting

構文魔法は順調だった。

いや、そう“思っていた”。


火球、照明、風圧、簡単な浮遊、自己強化――

ArcScriptは日々の調整によって少しずつ安定してきていた。

特に、構文エラーによる暴発も減り、記述方式に“正解パターン”のようなものも見え始めていた。


そして、俺は調子に乗った。


その日は、風系魔法の拡張実験をしていた。

小型の旋風を部屋の中で再現し、紙くずを舞い上げる──そんな無害な構文のつもりだった。


@cast

spell {

type = "wind";

mode = "vortex";

strength = 2;

radius = 1.5;

duration = 30;

}


今までは“type = projectile”や“light”のような単一処理が多かったが、

今回は初めて“mode”を追加してみた。


それが、いけなかった。


魔力を流した瞬間、構文が発動する。


風が起こる。机上の紙が揺れる。問題ない。


──と思ったのも束の間。


風は止まらなかった。

設定した半径を超え、部屋全体に渦を巻き始める。

机が倒れ、本棚が軋み、カーテンが引きちぎれる。


「まずい……!」


構文の解除処理を書いていなかった。

魔法は“実行”されたが、“終了”する構文がなかったのだ。


// termination_condition = none


俺のミスだった。

魔法の持続処理に明示的な終了条件がなければ、魔力が尽きるまで動作を続ける。

だが、俺の魔力量では“尽きる”前に自分が吹き飛ぶ。


部屋の扉を開けようとするも、風の圧に阻まれて開かない。

それどころか、棚の角材が飛んできて、肩をかすめた。


「……っぐ、ぅあ……っ!」


痛み。恐怖。

久しぶりだった。“死”を感じたのは。


その瞬間だった。


「コードキャンセル!」


部屋の外から、怒鳴るような声。

風が、ピタリと止まった。


ドアが開き、駆け込んできたのは――父だった。


「……馬鹿者ッ!!」


部屋が荒れ果てたまま、俺はその場に座り込んでいた。

父の声が耳に痛い。


「構文魔法がどれだけ危険か、わかっていたはずだ! 書きっぱなし? 終了処理なし? 冗談じゃない!」


俺は何も言い返せなかった。


「魔法というのはな……暴走すれば災厄だ。構文で書くというのは、それを“人為的に設計する”ということだ。

責任も、結果も、すべて自分に返ってくる。それがわかっていたか!」


わかっていた“つもり”だった。

でも実際に、家具が吹き飛び、自分の肩に裂傷が走る光景を見て、初めて本当の意味を知った。


「……すみません……」


父は深くため息をつくと、そっと俺の肩を見た。


「もう構文を書くなとは言わん。

だが、自分が作った“魔法”が人にどれだけの影響を与えるか。それだけは絶対に忘れるな」


その夜、俺は初めて“魔法開発ノート”の最初のページに、こう書き加えた。


/**

注意:すべてのコードは、誰かの命を奪う可能性がある。

常に終了処理と制御条件を記述すること。

*/


魔法が技術である以上、それは設計者に責任がある。


“書ける”ことは誇っていい。

でも、“扱う覚悟”がなければ、それはただの破壊だ。


この日から、俺のArcScript開発は一段階、深くなることになる。

評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

この作品はリンクフリーです。ご自由にリンク(紹介)してください。
この作品はスマートフォン対応です。スマートフォンかパソコンかを自動で判別し、適切なページを表示します。

↑ページトップへ