コンピューターサイエンスに関するゲーム『Turing Complete』
(turingcomplete.game)- Turing Completeは、自分で問題を解きながらコンピューターサイエンスの概念をより深く理解する体験に焦点を当てたゲーム
- 学習は論理ゲートから始まり、nandゲートだけでほかのゲートを作ってみる形で進む
- その後、メモリとコンポーネントを組み合わせながら、単純な回路を実際のコンピューターアーキテクチャに近い形へ拡張する
- プレイヤーが作るコンピューターはTuring completeを目標としており、Turing machineのようなアルゴリズムを計算できる構造を意味する
- 自分で作ったハードウェア上でアセンブリ命令を構成し、バイナリコードベースのプログラミングパズルを解く
コンピューターサイエンスをゲームで学ぶ方法
- Turing Completeはコンピューターサイエンスを題材にしたゲーム
- 問題を解き明かす楽しさや、すでに理解していると思っていた概念をより深く見つめ直す瞬間が好きな人に向いている
- SteamでPlay Turing Completeとして提供されている
回路からコンピューターアーキテクチャへつながる学習の流れ
-
論理ゲート
- 論理ゲートは計算の基本構成要素
- nandゲート1つだけで残りのゲートを作りながら、回路の基礎を学ぶ
-
コンポーネントとメモリ
- 論理ゲートの上にメモリを加えることで、より複雑なコンポーネントを作れる
- こうして作った構成要素を組み合わせ、実際のコンピューターアーキテクチャへ拡張する
-
アーキテクチャ
- 自分で組み立てたコンピューターはTuring completeを目標とする
- これはTuring machineのようなアルゴリズムを計算できるコンピューターを意味する
-
アセンブリ
- コンピューターはバイナリコードでプログラムされる
- アセンブリ命令を作ってこの過程を単純化し、自分で作ったハードウェア上でプログラミングパズルを解く
1件のコメント
Hacker News の意見
HNで Turing Complete を見かけると好意的なコメントを残すだけの単純な人間です :)
数年前に買って数レベル遊んだあと、当時14歳だった息子に夏休みの間進めさせ、ときどき手伝いました。最後のレベルでは息子が、ゲームが教えてくれた疑似アセンブリ言語でプログラムを書き、論理ゲートから自作したコンピュータに、ランダムな迷路を右手法で通り抜けさせました。このゲームは本当にすごいです。
ただ、私がその年齢だったころに似たようなゲームすらなかったことだけが唯一の不満です。
メモリが導入されるレベルではずっと詰まっているのですが、私の脳が 次/前の tick という概念をうまく受け入れられないようです。それでもオンラインにはヒントや完全な解答がたくさんあるので、必要なら解答を入れて次のレベルに進めます。
ゲーム自体は1年以上前にほぼ完成していて、開発者は性能を改善し、より複雑なCPUなどを作れるように全体を再実装してきた状態です。アップデートを配布するときに何か壊れないことを願っています。
強くおすすめします。
[0] https://en.wikipedia.org/wiki/Rocky%27s_Boots
私が書いていたのは:
Mux(a=out, b=in, sel=load, out=muxOut)
DFF(in=muxOut, out=DFFOut)
最後の行はこうでなければなりませんでした:
DFF(in=muxOut, out=DFFOut, out=out)
それでもTuring CompleteはNAND to Tetrisの完璧な相棒のように見えます。ただSteamでしか売っていないようなので、単体で購入できるといいのですが。
このジャンルのゲームがとても好きで、Steamに関連ゲームのコレクションが少しずつ増えています。nandgameのようにSteam以外のものもあります。
Turing Completeはその中でも良いほうで、シミュレーションは安定しているように見えますし、初期の早期アクセス期間に行われた再構成以降、ミッションもかなりよく作られています。
ただ、UIが常に滑らかというわけではなく、案内も不足しているので、すでに別のシミュレータで似たような過程を経験した人により向いています。
似たゲームの中で概念説明がもっと上手いものを探しているなら Silicon Zeroes をおすすめします。全体的には少し粗さがありますが、かわいい物語構成があり、各レベルが何を紹介しようとしているのかをよりよく説明してくれます。特に クロック 関連の問題解決をずっと上手く扱っています。
電子回路寄りより疑似アセンブリ寄りのほうを楽しむなら、TIS100やShenzhen I/Oをおすすめします。
よくできたパズルを好むなら、Human Resource Machineのほうが好みに合うかもしれません。
Turing Completeのこのニュースも読む価値があります: https://steamcommunity.com/app/1444480/eventcomments/3806156...
1年間アップデートがなかった後、2023年8月に「すみません、まもなく大きな新アップデートが来ます!」というニュースが投稿され、その後もまた沈黙しています。
開発者が非常に大規模な 大規模リライト に足を取られて、予想よりはるかに時間がかかっているようです。
早期アクセスを抜けたらまたやろうと思って待ってきましたが、永遠に待つことになるのではと心配しています。
デジタルコンピューティングには抽象化の利点があります。論理ゲートを考えるのにオームの法則を知る必要はありません。
アナログコンピューティングに進むなら、必ず数学を教える方法を見つけなければなりません。演算はもはやブール値ではなく、複数の電気方程式の組み合わせになります。単純な数学だとしても、一般的なプログラミングゲームの感覚とは違います。
それでも興味深く聞こえるか、遊んでみる価値がありそうか気になります。
https://store.steampowered.com/app/2124440/SIC1/
Human Resource Machineは序盤のいくつかのチャレンジだけやった記憶があります。パズルが簡単すぎる感じで、解く過程もあまり難しくなかったので、終盤まで行きませんでした。
ちょうどSteamウィンターセールでさっき買いました。
素晴らしいコンセプトですが、きちんとしたゲームや独立した教育ツールになるには、もっとずっと磨き込む必要があります。
関連知識のある人には悪くありませんが、初心者には案内・教育・準備がほとんどないまま問題を投げつける形なので、かなりもどかしい体験になりそうです。
回路配置 を助ける機能もあるといいです。部品を動かしたり回転したりすると配線と切れてしまい、配線を1本ずつ手動で引き直さなければなりません。正しいロジックを見つけたあとでも、実装にはかなり摩擦があります。
このゲームは本当に楽しく遊べたし、今でも楽しい。一度に長時間じっくり取り組むときが一番いい。
Factorio のように、長く休んでから戻ってくると、続きをやるより最初から始めたほうが楽しいことが多い。あるいは、単に最終段階のサンドボックスに留まっていればいい。
UI はもう少し磨けるし、ここ数年、まだリリースされていない大きなパフォーマンスの作り直しが進行中。最近は Verilog のエクスポートもあるが、きちんと使ってみたことはない。
後半でアンロックされる追加パーツが、サンドボックスを本当に楽しくしてくれる。スコアシステムもあって競争要素が加わるが、最初のコンピューターを作ったずっと後にならないとアンロックされない。
中年になってからコンピューターサイエンスの学位を取ろうと決める前に、このゲームをかなり遊んでいたので、基本的なアーキテクチャの内容がとても簡単に感じられた。楽しい復習用としても強くおすすめできる。
ここでいう「楽しい」とは、親切な環境でブール論理をいじる楽しさという意味なので、その考えが嫌ならこの「ゲーム」も合わないはず。
会社でも実際にこれを使っていて、強くおすすめする。
約1年前、同僚と自由時間に最後まで遊んでみて、本当に気に入った。電気工学の見習いにぴったりだと思った。教育課程ではゲート、レジスタ、シフトレジスタ、カウンタのようなデジタル論理の概念は学ぶものの、それを実践的なプロジェクトに多く適用する機会は少ないからだ。
また時間の制約のため、アセンブリプログラミングのような派生的な内容は、もうあまりきちんと教えられていない。
外部から少し追加で案内があれば、このゲームは人々がデジタル論理部品の動作を理解し、自分で触って遊ぶ動機づけに本当に役立つ。簡単なアセンブリ言語を書き、それでパズルを解く段階まで行ける点が素晴らしく、学生にとっても大きなモチベーションになる。
最初にページを開いたときは、Sebastian Lague の Digital Logic Sim [1] を真似たもののように見えたが、動画を見たら実際にはずっと深く踏み込んでいて印象的だった。なので購入した。近いうちに触る時間が取れたらいいと思う。
1: https://sebastian.itch.io/digital-logic-sim
このゲームはコンピューター工学基礎の1学期分と十分比較できるが、とくにアセンブリのミニゲームのおかげで、より楽しく感じられた。
大学では、仮想 CPU 向けの特定の命令を設計する課題と、特定の回路を設計する課題が別々にあったが、完全な設計でも動作する設計でもなかった。
Turing Complete は、完全な小型 CPU を作りながら自分だけの命令セットアーキテクチャを作れるし、望むだけ深く掘り下げられるので楽しかった。
似たゲーム: https://nandgame.com/
ただし Turing Complete のほうが nand game より深みがありそうに見える。
このゲームを買ったが、ひとつの芸術作品だと思う。
コンピューターサイエンス専攻ではないが、開発者として約15年働いてきた。ゲームに含まれる多くの内容は抽象的には知っていたし、Arduino ボードや小さなサイドプロジェクトなどで触ったこともあった。
だがこれは、コンピューターをいじるのが好きな人たちが渇望していた実践型カリキュラムそのものだ。
Exapunks([https://www.zachtronics.com/exapunks/](https://www.zachtronics.com/exapunks/))も興味を持つかもしれない。大学の授業よりもアセンブリをうまく教えてくれた。