カテゴリー
ゲーム

Minecraft HDL – Verilog-HDLからマインクラフト内に論理回路を作るツール

MinecraftHDL は、カナダ・マギル大の学生3人による卒業論文で制作された、ハードウェア記述言語で定義した論理回路をマインクラフト内のレッドストーンを使った「動く」回路に変換するツールセット(digital synthesis flow)です。

レッドストーンは、マインクラフト内で電流を通す電線のように使えるアイテム群のことで、ブロックの組み合わせで電子回路のような論理回路を作ることができます。

サンプルから、以下のVerilog HDLの設計コード


  module sevenseg (
      input I1, I2,
      output S1, S2, S3, S4, S5, S6, S7
  );
  
  assign S1 = ~I2 | I1;
  assign S2 = 1;
  assign S3 = ~I1 | I2;
  assign S4 = ~I2 | I1;
  assign S5 = ~I2;
  assign S6 = ~I1 & ~I2;
  assign S7 = I1;
  
  endmodule

が、こんなレッドストーン回路に変換されるそう。(右側の巨大な7セグメントディスプレイは、出力を見やすく表示するために手動で作成されたものです。)

上記のコードは、2つの入力ビットに対し、入力に応じた7個の出力ビットを出すもので、要は2bitsの値に応じてデジタル数字に必要な7か所の線をオンにするかオフにするかを演算させるものです。

この回路が作動している様子がこちら。

手前の二つのスイッチが上位ビット・下位ビットになっていて、上が0、下が1のようです。二つのスイッチを組み合わせて0-3の値にセットすると、遠くにある巨大ディスプレイがそれに応じた数字を表示していますね。

なんで2bitsなのかというと、0-9まで表示させる回路を作ると大きくなりすぎるから、だそうです。単純な回路以上のものを変換させると、マインクラフト内にロードできるブロック数の上限を超えてしまうということ。

また、現バージョンではフィードバックループを持てないため、メモリやカウンタなどは作れないそうです。

via Hacker News

カテゴリー
ゲーム

オリジナルZorkのソースコードがMITにより公開される

往年のテキストアドベンチャーゲーム Zork の1977年のソースコードが、MITにより発見されて公開されました。

MIT の説明によれば、1973年から1990年前半にかけての人工知能研・計算機科学研のバックアップテープから復元したデータが収集されているそうで、今回はその中から1977年のZork のソースコードが見つかったというわけ。

コードを見てみるとこんな感じ。


<GDECL (FF) STRING>
<DEFINE ILO (BODY TYPE NM1 NM2 "OPTIONAL" M1 M2)
#DECL ((BODY NM1 NM2 M1 M2) STRING (TYPE) FIX)
<COND (<==? .TYPE *400000000000*>
<COND (<OR <AND <MEMBER "<FLUSH-ME>" .BODY>
<NOT <MEMBER ,XUNM ,WINNERS>>>
<AND <MEMBER .NM1 ,WINNERS>
<MEMBER ,FF .BODY>>>
<EVAL <PARSE .BODY>>)>)>
<DISMISS T>>

;"ROOM FUNCTIONS"

往年のメインフレーム機 PDP-10 上で動くLISP系のMDPという言語だそうです。

2019年の4月にGitHubで公開された「Zorkのソースコード」と何が違うかですが、この時公開されたコードは、後に Zork を商用化(1979)して販売したインフォコム社が買収の後閉鎖された1980年代終わりに、社内のソースコード管理システムから取り出されたものなのに対し、今回のコードはInfocom 以前の MIT 時代に メインフレーム PDP-10 の上で動いていたものだということ。

(image Michael L. Umbricht, Wikimedia)

Infocom 版 Zork コードの発見者として知られるインターネット考古学活動家のジェイソン・スコット氏(Jason Scott)も早速、MIT のコードを fork しています。Zork ファンや Zork 研究者による調査がさらに進むのでは。

via Hacker News

カテゴリー
ゲーム

AI Dungeon – AI自動生成で無限に遊べるテキストアドベンチャーゲーム

AI Dungeon は、テキストアドベンチャーゲームをAIにより自動生成してくれるというPython 製のツールです。

Jupiter Notebook で動くものが配布されており、Google Colaboratory 上で自分の AI Dungeon を動かすことができます。

ブラウザで数分待つと始まる。簡単です。

大昔にあった Zork シリーズ的なUI。「動詞」で始まる命令文を入れることで、何かが起こります。

「それをやるとループしてしまいます」という返答だらけになり詰まったこともありますが、それでも大昔の同種のテキストアドベンチャーゲームに比べると、かなり自由度が高い。思いついた動詞で適当に命令しても、それに合わせた結果を返してくれます。このへんはさすが自動生成。

ただし、ストーリー展開に整合性が取れているかというと、自分が遊んでみた範囲では、辻褄が合わなかったり急に場面が変わったりの連続で、寝ている時に見る夢に近いような印象を受けました。

AI Dungeon のサイトには、プレイした結果のストーリーたくさん掲載されています。動かさずにどんなゲーム体験になるか見たい人や、どんなコマンドを入れたら先に進むのかわからないという人は、まずこれらのプレイレポートを見てみるのもいいかと思います。