
2026/05/10 12:32
『Y の Xs』—— ランごとに名前自体が書き換わるログライク。全コード行数は 4kLoC(千行未満)。
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
「Xs of Y」は、従来の難易度曲線を覆し、初期段階で絶望的な生存を求め、後半には高リスクの神学的な賭けを提供する未完のログライクである。本作は、Go バイトコード VM を動作させる Clojure の派生言語「let-go」という独自言語だけで開発されており、外部依存関係なしに約 6,900 行のコードを実装している。起動時間はわずか 6 ミリ秒で、その速さは際立っている。ビジュアルスタイルはクラシックなゲーム『Broog』を模しており、各ランでは新しいタイトルやユニークなクエストが生成される標準的なログライクの特徴を持つ(例:無用さのスプーテルを回収する等)。ゲームプレイは魔法系を Lisp で実装したシステムによって駆動され、ルーンは裏で記号、スペルは s-式として表現される。敵には蜘蛛がウェブのコンを発射する、 Goblin が逼り寄る、スライムが衝突で分裂する、 troll が再生するといった特定の行動が備わる。特に notable なのは、プレイヤーが現実エンジン自体に root アクセスを有しており、しかしマニュアルページは変化する死語で書かれている点である。物事を燃やすと草や生物を含む連鎖反応を引き起こす。戦略的インタラクションには、オグアスを溶岩へ押し込む、goblin を互いへと追い込む(「教育的」と説明される)などが含まれる。未完成でありスケジュール外での爆発や継続する危険性を示すものの、リソースフットプリントが低いため、この特徴的に危険な現実エンジンを探索したい新規プレイヤーにとって非常にアクセスしやすくなっている。Homebrew コマンド(
brew tap nooga/let-go と brew install let-go)を単一の手順でインストールでき、ネイティブ環境でもブラウザ内の WebAssembly 形式でも動作する。本文
Xs of Y
私の Lisp で作成した Roguelike ゲームです。その魔法システムさえ、Lisp です。
注意: まだ未完成です!遊ばせますが、危険度はわずかで、予期せぬ爆発も覚悟してください。
ブラウザで遊ぶ
各ランで生成される内容:
- 新しいタイトル(例:『恐ろしき山岳の祭壇群』)
- 新しいクエスト(例:『無用なスパチュラを回収せよ』)
- 新しいルーンへのマッピング
ルーンは裏では単なる記号であり、スペルは S 式(S-expressions)です。ダンジョンの実在エンジンにはルート権限を持ちますが、マニュアルは古びた言語で書かれており、起動ごとにその言語も変化します。力加減の曲線は反転しています:序盤は切迫した生存戦、終盤では不十分な安全マージンを備えた応用神学に突入します。 meanwhile、ダンジョンの方はより従来の手段であなたを倒そうとします:アリグモが円錐状のWeb を発射しあなたは捕まり、小人たちが押し寄せる。スライムは攻撃された際に分裂し、トロールは再生します。何かものを燃やしてみましょう──パニックを起こし草地を駆け回り、草を燃やし、さらに生物を燃やすことになります。問題ありません、すべてうまくいきます。オグを溶岩に押し込めてみましょう。小人をもう一人の小人へ押し込んでみましょう。不注意であなた自身を絶壁へと落としてみましょう。絶壁は教育的です。
~6900 行の
let-go(Go のバイナリー VM を走る Clojure 方言)で書かれています。構造体も永続的データ構造を採用、依存関係なし。起動時間 6ms。ネイティブ環境でも WebAssembly を通じてブラウザ内でも動作します。このゲームの見た目がお気に入れば、私の主なインスピレーション源となった『Brogue』もご覧ください。
実行方法
let-go のライブラリを入手するか、以下のコマンドでインストールしてください:
brew tap nooga/let-go https://github.com/nooga/let-gobrew install let-go