ゲーム

テラリアの中に32bitコンピューターを作ったらどうなるのか?


広大なフィールドを探索しながら敵と戦ったりアイテムを作ったり建物を建築したりと、高い自由サンドボックス系2Dアクションゲームが「テラリア」です。この「テラリア」ではさまざまな素材を使って回路を作ることができるのですが、膨大な回路を構築して32bitのコンピューターを再現し、ゲームをプログラミングしたり3Dモデルをレンダリングしたりするムービーが公開されています。

I Made a 32-bit Computer Inside Terraria - YouTube


テラリアには、回路を作動させる信号を出力する「スイッチ」や、信号を伝達する「ワイヤー」、信号を受け取って作動する「ドア」や「照明」などのアイテムが用意されており、拠点を作る上でさまざまなアイテムの挙動を自動化することが可能です。


この仕組みを利用して、スイッチのONまたはOFFの状態を「0」や「1」と見立てて論理演算が可能だと話すのが、今回32bitコンピューターをテラリアで再現したFrom Scratch氏。From Scratch氏はテラリアの本編そっちのけで回路を使って遊んでいたそうです。


約3カ月かけて回路をつなぎ続けたFrom Scratch氏。


増設に次ぐ増設


この過程で、デジタルロジックとCPU設計について膨大な量をテラリアを通じて学んだとFrom Scratch氏は話しています。


この回路を実際に試す上で苦労したのが「デバッグ」だったとのこと。回路はすべてテラリアのアイテムで作られているために見た目が煩雑で、どこかでつなぎ間違えていた場合、ミスを探すのに非常に苦労したそうです。


ワイヤーの種類を1本間違うだけで回路全体が機能しないこともあります。この作業を、From Scratch氏は「干し草の山から、干し草の見た目をした針を探すようなものでした」と語っています。


加えて、テラリアが「広大なワールド」に最適化されていないことによる問題も発生したとのこと。この問題は、長すぎるワイヤーの信号伝達速度が遅くなるという形で現れたそうです。


ワイヤーの信号伝達の仕組みはこうで、信号を受け取ったワイヤーはまず隣接するピクセルをチェックし、いずれかのピクセルに信号を伝達できるオブジェクトがあれば伝達を実行するという動きをします。


1ピクセルずつ信号を伝達するという仕組み上、ワイヤーが長くなればなるほど信号伝達速度も低下してしまします。これを改善するにはワイヤーを短くつなぎ直すしかなかったそうです。


From Scratch氏がテラリア内でプログラミングしたのが、初期のコンピューターゲームとして名高い「ポン」です。テラリア上でキャラクターを動かすと、テラリア上に配置したディスプレイでポンを遊ぶことができるという優れもの。


セルが誕生・消滅を繰り返すシミュレーションゲーム「ライフゲーム」も作られています。なお、誕生・消滅の速度はかなり遅く、映像は240倍速だそうです。


X、Y、Z座標を指定して3Dの世界をレンダリングするシステムも作成。これも動作速度は遅く、1フレームをレンダリングするごとに45秒もかかってしまうとのこと。


From Scratch氏は「テラリアの中でテラリアを実行すること」を目標に開発を続けています。なお、このプロジェクトのリポジトリはGitHubで公開されています。

GitHub - misprit7/computerraria: A fully compliant RISC-V computer made inside the game Terraria
https://github.com/misprit7/computerraria

この記事のタイトルとURLをコピーする

・関連記事
「マインクラフトの中でマインクラフトをプレイする」という狂気のチャレンジを実現してしまった猛者が登場 - GIGAZINE

マインクラフトで1HzのCPUを作り上げた猛者が登場、テトリスや関数のグラフ化も可能 - GIGAZINE

マインクラフトで記憶装置搭載ワープロを2年かけて作成した猛者が登場 - GIGAZINE

マインクラフトをKubernetes互換の管理ツールにしてしまった人物が出現 - GIGAZINE

ついにDOOMの中でDOOMをプレイすることに成功 - GIGAZINE

in 動画,   ゲーム, Posted by log1p_kr

You can read the machine translated English article here.