見出し画像

Among Us Scratch の解析0:はじめに

はじめに

「スクラッチ」はブロックを組み立ててプログラミングをするビジュアルプログラミング環境だ。教育目的な素性から、コンピューターにそれほど親しみのない子供達でもプログラミングを楽しめるよう、絵を動かしたり音を出すことが簡単にできるし、ウェブブラウザさえあればどこでも動かせる。ユーザーも多く、たくさんのアニメーションやゲームが作られ公開されている。

コンシューマーやPCゲームとして有名な Among Us をモチーフに作られたアプリケーションも多く、"among us" で検索すると数えきれないほど出てくる。

画像1

その中で、本家そっくりに作られた「☁ Among Us ✦ Scratch remake (beta)」というプロジェクトがあり、これがとてもよくできている。

☁ Among Us ✦ Scratch remake (beta) 

画像2

本家と同じく、オンラインで多人数で遊ぶことができ、リアルタイム性もそれほど損なわれておらず、チャットや投票もきちんと動く。

壁の向こうが見えてしまっていることや、プレイ中のキャラクタの動きが本家ほどなめらかではないといった点は気になるが、むしろその程度しか見劣りしない。

画像3

スクラッチはとてもよくできた開発環境だが、検索機能は絶望的だし、ブロックを使ったコード編集は面倒も多く、一括置換などは不可能だ。プログラミング言語としてみても、データ構造と呼べるものは単純型要素のリストだけだし、抽象化機能は限定的、オンラインために使用できる機能と言えば、単純型変数の共有だけで、RPC等の機能は全くない。

それにもかかわらず、キャラクタ操作、ゲームモードやゲームの各画面はよく実装されていて、ネットワークや通信に関して、状態同期やメッセージ通信のような機能を使って、たくさんのゲーム要素を余さず実装しているようにみえる「☁ Among Us ✦ Scratch remake (beta)」は、ちょっとすごい。

特にオンラインの部分はどうなっているのか気になったのだが、どうせなら内部すべて細かく確認してみようと始めたのがこの解析noteだ。意気込みとしては、Commentary on UNIX 張りに、全コード解説するぐらいでいきたい。

解析するプロジェクト

解析には、「☁ Among Us ✦ Scratch remake (beta)」(server1) の v2.1 当時のものを使用した。

このプロジェクトは修正や改良が速く、最新は v2.1 ではないが、解析も文章も追いつかないので、バージョンは v2.1 に固定して進めていく。

バージョン v2.1 のプロジェクトは次のリンク先プロジェクトに remix 版として保存している。

☁️ 保存版Among Us Scratch remake v2.1 (WIP) ✦ TimMcCool games remix copy

画像4

オリジナル v2.1 と区別するため、タイトルのみ「解説・解析用 V2.1 保存版」の表示を追加している。

自分自身ほとんどスクラッチでアプリケーションを作ったことがないので、途中でくじけてしまうかもしれない。が、とにかく頑張ってみる。

次の記事

Among Us Scratch の解析1:プロジェクトの外観と背景

総合目次



この記事が気に入ったらサポートをしてみませんか?