ゲームのコード、楔形文字で書いても動く
ゲームエンジンGodotのGDScriptは、変数名や関数名にシュメール・アッカドの楔形文字をそのまま書ける。Unicodeの識別子規格に素直に従っているためで、ルーン文字やヒエログリフも通る。
ひなた:あのですね。このあいだ社会のじゅぎょうで、世界でいちばん古い文字のひとつは、麦が何ふくろあるか、羊が何頭いるかを書きとめるために生まれたって、ならったのです。……絵でも詩でもなくて、いちばん最初が、帳簿だったのです。
ひかり:えっ待って、その文字っ、いまゲームのプログラムに使えるらしいよっ! きのう見た画面、ぜんぶギザギザの記号だったのー! なのに動くんだってーっ!
ことね:その話ね。Godot——いま乗り換える人が増えている、無料のゲームエンジンよ。そこで使うGDScriptというプログラミング言語が、楔形文字を受けつけるの。先月30日、Stein Makes Gamesというインディー開発者がSNSに書いて広まったわ。「毎度おなじみのお知らせです。GDScriptは、シュメールの粘土板の文字——古代メソポタミアのアッカド楔形文字に対応しています」。しかも、これは冗談の画像じゃなくて「あなたのゲームにそのまま書ける、完全に正しいコード」だ、と。
ひかり:えー、なんでっ? パソコンが5000年前の文字を読めるわけないじゃんっ! だれかが翻訳してるのー?
ことね:読んではいないの。番号で見ているだけ。……Unicodeという国際規格が、世界じゅうの文字ひとつひとつに固有の番号を振っているでしょう。そのうえで「名前に使っていい文字はここからここまで」と決めた付属の規格があって、UAX#31というの。GDScriptはそれを、余計な例外を足さずに素直に採用しているのよ。だから変数や関数の「名前」の部分には楔形文字が通る。ifとかforとかの命令そのものは、ふつうの英語のままね。同じ理屈で、PythonもES6以降のJavaScriptもRustも書けるわ。ちなみにC#は通らないの。
みずき:…で、それ誰得なの。
ことね:正直に言うと、たぶん誰得でもないの。記事も「実用的な機能というより技術的な興味深さ」という書き方よ。言い出した本人ですら、開発中の採掘ローグライク『Dig Dig Boom』では楔形文字を使っていないそうだし。……なお、通るのは楔形文字だけじゃないの。北欧のルーン文字。エジプトのヒエログリフ。ミケーネの線文字B。
ひかり:ヒエログリフっ!? 鳥さんとか、目玉のやつっ!? 変数の名前が鳥さんっ!? ……それ、どうやって打つのーっ!
みずき:…プログラムって、半年後の自分が読み返すために書くものなんだけど。楔形文字にした瞬間、半年後の自分の仕事が考古学になる。……ひなた。その麦の帳簿、5000年たっても中身は数を数えてるだけだよ。
まとめ:ゲームエンジンの変数名に、5000年前の楔形文字がそのまま通る。動く。ただし半年後の自分が、解読からはじめることになる。