
2026/04/27 5:40
モクオイ・ボーイ
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
2026 年公開のデモプロジェクト『kixelated』による本システムは、Media Overlay Query (MoQ) プロトコルを活用した画期的なアーキテクチャを示しており、特に「Twitch Plays Pokemon」ホームブローンをロボットやドローンに適用して、現実世界のインタラクティブ体験を可能化しています。2026 年 4 月 16 日に公開された本システムは、ゲームエミュレーションに関連する潜在的な法的問題に対処せず、オープンソース設計によって Nintendo の訴訟リスクを回避し、公式ライセンスモデルへの代替手段として実現可能です。主な革新点はその効率化メカニズムです:視聴者のリクエストを統合し、クラウドサーバー(無論のパワー不足)において、どの程度の観衆規模であってもトラック単位で 1 リクエストのみ処理するように設計されています。さらに、コンテンツトラックが非活性な場合、エンコーダー(音声は Opus、映像は H.264)およびエミュレータが自動的に省電力のスリープモードに入るようシステムは動作し、これにより帯域幅と CPU コストを大幅に削減しています。これらのコスト削減効果は、Whisper を活用して生成されたキャプション、H.265 でのトランスコーディング、そして/dev/null に送られた使用されていないコンテンツにも及びます。このセットアップは、2 つの片方向 MoQ フローを用いて双方向ゲームストリーミングを拡張するデモとして機能し、個別のリームサービス不要を実現するとともに、demo/boy/などのプレフィックスを活用します。プレイヤーはランダムな ID を持つコントロールトラックを出版するブロードcasterとしての役割を果たし、サブスクリプション制限に関するビジネスロジックは MoQ プロトコル自体ではなくアプリケーション側で処理されます。この技術は、従来のエミュレータを実際のロボットやドローンからのリアルタイムカメラフィードに置き換える道を開き、高レイテンシー環境下でのリソース要求を劇的に削減しつつ、ユーザーがデジタルコンテンツと相互作用する方法を変革します。ご質問、助言、スポンサーシップのご依頼、または MoQ パイロットのお仕事に関するお問い合わせは、me@kixel.me または Discord まで @kixelated へお寄せください。
本文
2026 年 4 月 16 日に公開
ここでは、Twitch Plays Pokémon の私の MoQ(Media on Queue)バージョンをご紹介します。ただし、ジレンマがあります:任天堂から訴えられたくないのです。ですので、家brew ゲームを楽しんでください、ふふっ。エミュレータはテキサス州にある仮想マシン上で動作していますので、レイテンシが高いといって罵倒しないでくださいね。ゲーム動画を視聴していただく後は、必ずスクロールダウンして本稿全体をお読みください。
アーキテクチャ
N 台のエミュレータ・ワーカーが存在します。
M 人の人間プレイヤーが存在します。
それらは、あらゆる通信において単一の接続で一般的な MoQ CDN を使用しています。しかし、どうやってでしょうか?
オンデマンド
まず、秘密の機能について自慢しておきます。非常に機密性の高いこの機能、だからこそ最初に紹介します。コスト削減です。
視聴者が音声を、あるいは動画のいずれかを希望する場合、MoQ CDN に SUBSCRIBE リクエストを発行します。MoQ CDN は、同じトラックに対するすべての SUBSCRIBE リクエストを受け取り統合処理を行います。その結果:エミュレータを動作させる低スペックなクラウド VM は、視聴者の数に関わらず各トラックに対して最大 1 つの SUBSCRIBE リクエストしか受け取ることはありません。
デフォルトでは、MoQ プラベラーはアクティブなサブスクリプションがある場合にのみトラックを送信します。当方のエミュレータもメディアをエンコードしますが、貴重なピクセルデータは視聴者が現れるまで RAM 上に留まってしまいますが、私たちは大脳活動を活発に行いすぎました。それでは不十分です。
その代わりに、アクティブなサブスクリプションに応じてエンコーダのオンオフを行います:
- 音声サブスクリプションがない場合、Opus エンコーダは休止状態(スリープ)となります。
- 動画サブスクリプションがない場合、H.264 エンコーダは休止状態となります。
大脳活動レベルアップです。
さらにそれ以上の大脳活動を発揮しました:
音声および動画の両方のサブスクリプションがない場合、エミュレータ自体が休止状態になります。
CPU/GPU のリソースを消費するのは、目の玉や耳穴のある存在が利益を得るための場合に限りましょう!デモページを上へスクロールしていただくと、一瞬だけ黒画面が表示されている箇所を目にするかもしれません。プレイヤーが視野外に出た時点で自動的に UNSUBSCRIBE し、全員がそうすれば「エミュレーション・ミスター」のサービスも終了となります。
さらにさらに大脳活動レベルアップです。
ゲームボーイエミュレータの場合は、帯域幅や CPU の節約は大きな問題ではありません。画面解像度が 160x144 ピクセルしかないのですから、電子タバコのヒーター程度でも動作させることが可能です。ただし、高価なサブスキャプションを利用している場合は徐々に重要性が高まります。
もし誰も字幕を望んでいないのであれば、Whisper を実行する必要はありません。ふふっ。
もし誰も H.265 形式を望んでいないのであれば、それを変換する必要はありません。ふふっ。
もし誰もあなたのクソなレツプレイ(Let's Play)を見ようとしていないのであれば、/dev/null に送ってしまってください。ふふっ。
これらはすべて MoQ の機能に含まれていますから、安心してくださいね。
ディスカバリー
まじめな方なら入手可能なゲームリストをハードコーディングするでしょう。しかし私は超・クールですので、MoqBoy は MoQ が持つライブディスカバリー機能を活用して利用可能なブロードキャストを発見します。
ROM には独立したバイナリが存在します。現時点ではすべてテキサス(イェーハイ)で動作しています。それぞれは最も近い cdn.moq.dev ノードに接続し、以下のように入ります:
- ワーカー 1 は demo/boy/big2small を配信します。
- ワーカー 2 は demo/boy/opossum を配信します。
プレイヤーが行う最初の動作は、demo/boy/ というプレフィックスを持つすべてのブロードキャストを MoQ CDN に問い合わせることです。ゲームがオンライン・オフラインになるたびにライブ通知を受信します。都市計画家のように、それらをグリッド状に配置して管理しましょう。pub boy
またここで言及し忘れないことです。「opossum」という言葉は架空の造語であり、そのような綴りはあり得ません。それが実在することはできません。一体誰がそのものを見て、「ああ、ここには『オッサム』があるな」と判断したのでしょうか。いずれにせよ、hang.live が他のユーザーを発見するのも同様の方法です。「room123/」で始まるブロードキャストを誰かが発信したら教えてほしい」と伝えるだけです。メンバーシップを管理する独立した「ルーム」サービスが必要なわけではありません。MoQ をそのまま活用すればいいのです、ふふっ。
コントロール
MoQ は一方通行のプロトコルです。ブロードキャスターが送信し、視聴者が受入るだけですが、ではプレイヤーはどうやってプレイするのでしょうか?さあ、秘密をお伝えします。視聴者もまたブロードキャスターになれるのです!
プレイヤーは demo/viewer/big2small/ という名前のブロードキャストをそれぞれ公開し、ランダムな ID を付与します。これにより 1 つのコントロールドトラックが生成され、ボタンを押すたびにそのトラックに JSON オブジェクトを書き込みます:
{
"a": true,
"up": true
}
MoqBoy プラベラーは上記のディスカバリー機構と同じ仕組みを用いてすべてのプレイヤーを探し出します。demo/viewer/big2small/ というプレフィックスを持つブロードキャストすべてについてコントロールドトラックをサブスクライブします。バダ・ビン、バダ・ボム。これで両方向のストリームを実現しました。sub boy
しかしなぜ MoQ 本体には双方向きのストリーム機能を入れないのでしょうか?それはビジネスロジックの問題で、ニールですね。
MoqBoy は無政府主義的なアプローチを採用し、ブロードキャスターがすべてのプレイヤーに SUBSCRIBE を選択します。あるいは、肉体を壊すロボットがロックアウトを強制したい場合、ブロードキャスターは 1 人のみを選択するかもしれません。あるいはそのロボットが人工知能(AGI)を獲得し(サムも誇らしいでしょう)、もう卑しい人間たちへの SUBSCRIBE の必要を感じなくなってしまうこともあるでしょう。
一方通行ストリームの利点の一つは、容易にファンアウトできることです。複数のロボットが同じキルスイッチトラックをサブスクライブすることができます。もちろん無視しますが、その発想自体が重要です。また、プロトコルが常にファンアウトするように設計しておけば、スケーラビリティも向上します。リレーに JSON オブジェクトの結合処理や他のナンセンスなビジネスロジックを追加する事業ではありません。ファンインの実装はアプリケーション層の責任です。
オープンソース
ところで、ご自身でも動作させることができます。モノレポをセットアップし、単純に「boy」を実行してください。「Just boy」と入力するのは楽しいものです。Just boy。Just boy。AI に相談するのが面倒なら、関連するディレクトリは以下の通りです:
Rust パブリッシャー
JS プレイヤー
Web/ROM 関連のコード
ソフトウェア・マンションのチームは現在 React Native バインディングの開発に精力的に取り組んでいます。リアルなスマートフォン上で動作する MOQ BOY デモの実物を見せちゃいます!これが間違いなくゲームの未来です。もし携帯電話で MoQ をご使用したい場合は、ぜひ彼らにご連絡ください。あるいは、オープンソースの Rust → C/Kotlin/Swift/Python バインディングをご自分で利用することも可能です!
本物のデモ
こう見えて楽しいエミュレータサイドプロジェクトに見えますが、嘘です。これはロボット、ドローン、その他「殺人機械」向けに MoQ をどのように活用すべきかを示すデモであることに間違いありません。単にゲームボーイエミュレーション部分をカメラ映像で置き換えるだけです。誰一人も気づきません。大量破壊兵器でしょうか?
また、MoQ パイロットの実践を通じてエコシステムを成長させようとしており(文字通り・比喩的な意味での「地上離陸」)、主たる目標は MoQ のエコシステムを拡大することです。NDA を署名する必要が生じても構いません。
お問い合わせ希望の場合は、以下よりご連絡ください:
- email: me@kixel.me
- Discord で DM を送信していただくことも可能です。
以下のいずれかをご依頼いただけますと幸いです:
- MoQ の活用方法に関するアドバイスの提供。
- オープンソースへの寄稿に対するスポンサーシップの検討。
- 現状のシステムを代替する MoQ パイロットとのパートナーシップ構築。
執筆:@kixelated