Telegramのメッセージ内でDoomが動作、1フレーム1024バイト
開発者がTelegramの1通のメッセージ内でDoomを動かした。エンジンはMac上で動き、1フレームはボット応答の1024バイトに収める。

開発者が、Telegramのメッセージ内で直接Doomを遊べるようにした。ゲームエンジンは自身のMacで動かし、チャットには画面と6つのボタンだけを送る。「右」を押すと、同じメッセージの中に次のフレームが表示される。ボットの応答全体に許されるのは1024バイトだ。
ボタン操作からフレーム生成まで
ボタンは前進、後退、旋回、射撃、ドアを開ける操作に対応する。右に回ると、ウィジェットはTelegramWidget.request("right")を呼び出す。ボットはゲームセッションを見つけ、ViZDoomに旋回ボタンを渡す。エンジンはシミュレーションを5ティック進め、その間にプレイヤーの旋回、敵の移動、弾の飛行が処理され、その後ワールドは再び停止する。
ボットは画面バッファからフレームを取り出し、answerWidgetQueryで返す。ウィジェットは同じimg要素の画像ソースを差し替えるため、何十手進めてもチャットにはゲームのメッセージが1通だけ残る。応答待ちの間は新しい入力を無視し、リクエスト間隔は最低1010ミリ秒だ。
768バイトの壁
ViZDoomが出力するのは320×200のRGBフレームで、圧縮前は19万2000バイトになる。結果にはBase64文字列を入れる必要があり、3バイトが4文字に変わる。このためWebPに使えるのは最大768バイトだ。
作者はWebPの品質を固定し、フレームごとに解像度を変える。幅120ピクセルから始め、96、80、64、48、32の順に試す。判定はエンコード後、Telegramが実際に受け取る文字列で行う。小さな画像では遠くの敵は見分けにくいが、ドアを開けて向こう側を確認できる。衝突、ドア、命中の判定はすべてエンジンが担う。
検証と動かし方
Telegram for macOSでは、開始地点のホールからドアまでの移動、旋回、射撃を確認した。ステージ全体は、同じ6ボタン・5ティックの条件でローカルのViZDoomで別に検証している。出口のスイッチまで537手かかり、体力は48%残り、撃破数は6だった。
自分で動かすにはPython 3.12、ボットのトークン、Doom Shareware 1.9の元のDOOM1.WADが必要になる。ゲームのリソースはリポジトリに含まれない。ゲーム用ボットは最大6セッションを保持し、10分間操作がなければ解放する。作者はあわせてAwesome Telegram Widgetsも公開し、@awesomewidget_botでDoomやPacman、電卓などを試せる。
注目のアプリ
正しいマスを選んで足し算、目標の数に。覚えるのは簡単、極めるのは難しい。無料、全年齢向け。
AIの会話パートナーと話すだけ。一文ごとに添削され、あなたの言語で解説が返ってきます。9言語、A1からC2まで。
EDIFACTやX12メッセージを開き、各セグメントの意味を表示。JSON/XML変換、PDF・Excel出力。ローカルで動作、アップロード不要。
相手、シーン、性格を選ぶだけ。検索エンジンが地元ショップの商品説明を読み、合うものを並べます。無料、登録不要。
同じ日のニュース
すべて見る →関連カテゴリ: ソフトウェア
すべて見る →
WhatsApp新CEOシャー氏、アプリの簡素化とAI強化を表明

リンクブリックス、HWPとMS文書を編集できる無料AIオフィス公開

Asahi Linux、コピーレフト採用へ 出典なきコード流用に対抗




