ド迫力!QRコードにDoom風ゲームを詰め込んでみた結果www
引用元:https://news.ycombinator.com/item?id=43729683
DecompressionStream、初めて知ったわ、ありがとねー。HTML部分を削って、さらに容量を減らせたよ。PR送ったから、もしよかったら見てみて。
マジ神!おかげで、タッチスクリーン操作、より良い移動、敵の出現とダメージの仕組みを(なんとなく)追加できた!マジで感謝、今月最高だわ:)
マジか、すげー!役に立ててよかったわ:D
これぞオープンソースの勝利って感じだね。
ほんとそれ!
マジでクールなプロジェクト! ‘data:’ URLについて初めて知ったわー。URIスキーム自体は知ってたんだけど、URLとして使えるとは思わなかった。実は、QRコードに収まるようなものを作ろうと思ってたんだけど、HTTP(s)リンクが必要だと思って諦めてたんだよね。
優しい言葉ありがとね!
自分もロックダウン中にこの動画にインスパイアされたんだよね。ブラウザベースにしたのは互換性が高いから。リポジトリにもちゃんとクレジットしてるよ:P
素朴な疑問なんだけど、QRコードってただのデータエンコードでしょ? 最大データ量は3kbくらいで、3000文字程度のテキストに相当すると思うんだけど。ってことは、このゲームは3kbくらいの実行ファイルで動くってこと?
QRコードには、数値、英数字、8ビット、漢字など、さまざまなエンコードモードがあるんだ。一般的なのは英数字エンコードで、最も密度が高いのが8ビットエンコード(バイナリデータをそのまま格納)。
8ビットエンコードは任意のバイナリデータを格納できるよ。qrencodeツールでネイティブにできる。デコーダのサポートはもっとトリッキーで、テキストを含むと思われがち。自分はzbarにパッチを送る必要があったんだ。
興味深いね、返信ありがとう!
data: URIはサポートされてないみたい。QRコードのサイズとか長さの問題じゃないんだ。
例えば、
dataURIならbase64エンコードもいらないよ。mime-typeとコンマの後にテキストを置くだけ。
data:text/html,<!doctype html>
Hello.
これでHTMLドキュメントになる。ASCII以外を使うなら;charset=utf-8
が必要。
Base64は安全だけど、サイズが1/3大きくなる。ASCII dataURIがダメなデバイスもあるから、BackroomsのQRコードは738バイト削減できたかも。
これ、便利かも。Duck browserじゃブックマークできないけど、Safariはいけるね。
dataURIは過去に悪用されたから、ブラウザで制限されることが増えてる。リンクをクリックしてdataURIに移動できないとか。ブックマークとか手動入力はOK。
Backroomsはbase64 URIじゃなくても動くからもっと小さくできるよ。
すごいね!ちょっと試してみるよ!シェアしてくれてありがとう😊
どういたしまして :] BackdoomsをSandboxで試すなら、オリジナルのHTML payloadを使うか、”verbatim”を使うといいよ。そうしないと%23が二重エンコードされちゃうから。
Safariだと壊れてるけど、Chromiumベースのブラウザならモバイルでも動くみたい。QRコードはURI URL自体を持ってるんだね。
ほとんどのiOSユーザーがQRコードを読み込むのに使うカメラアプリだと、このURLに遷移できないってこと。
HTMLゲームがSafariで動くかどうかは別の話。QRコードは、一般的な方法だとクリックできない。
>それはそうだね 笑
へー、見てくれてありがとね!多分、https://qrscanner.org/ みたいなのを使うといいかも。スマホだと大きいQRコードの読み取りが苦手なことが多いからさ。あと、残念ながらスマホじゃ動かないんだ。サイズ制限で互換性を入れられなかったんだよね。
ちなみに、Pixelの内蔵QRコードスキャナーだと問題なく動くよ。URLじゃなくてテキストとして認識するけど、クリップボードにコピーしてブラウザに貼り付ければOK。もちろん操作が全く効かないから即死だけど、全部うまくいくとは限らないよね。 アップデート!なんと、最近のPRでさらに最適化されたおかげで、モバイルタッチサポートをちょこっと追加できたんだ。だから、もし操作方法がわかれば、スマホでも遊べるようになったよ! え、もしかしてモバイルだと全然動かないってこと?じゃあ、QRコードは何でスキャンするの? QRコードを物理的なカメラで直接スキャンする必要はないんだよ。普通のコンピューターなら、QRコード解析プログラムを使って、画像を入力として読み込めるんだ。JSでQRコードスキャンできるウェブページもあるくらい簡単だよ。だから、親の発言者は、QRコードの.pngファイルを保存して、リンク先のウェブサイトとかでデータを抽出することを勧めてるんだ。そうすれば、どんなコンピューターでもQRコードをスキャンできるってわけ。 それか…URLを使うとか。デスクトップパソコンでQRコードをスキャンしたことのある人なんて、ゼロよりは多いだろうけど、ほとんどいないでしょ。 たぶん僕自身がその数を3桁に乗せたと思うけど、もし興味があれば、ホストしてるバージョンもあるよ!このプロジェクトの理由は実用性じゃなくて、単に僕がそれを“できる”からなんだ。 その通り!もっとわかりやすく説明してくれてありがとう! アップデート!モバイルタッチサポートをちょこっと追加できたから、もし別のChromiumベースのブラウザを使えば、URIを入力してモバイルでも遊べるよ! いいね! いやいや、そんなことないって。画像入力できるQRコードスキャナーならどれでも使えるよ!スマホ操作も入れたかったけど、そしたらめっちゃ容量食っちゃうからね。 iPhoneで動かないって聞いて、なんかホッとしたわ。QRコードってURLを打つ手間が省けるけど、勝手にコード実行されるのはマジで怖いじゃん。 マジかよ、実は俺も同じことブログに書いたんだよね。QRコードを気軽にスキャンすることの危険性についてさ。 内容は良いんだけど、最後の3分の1くらいがAIで水増しした感じが否めない。 AIで水増しってどういうこと? なんとなくわかるかも。AIチャットって、無駄な言葉でコンテンツを増やしたり、訴訟とかネガティブなイメージを避けるための免責事項を並べ立てたりするじゃん?あれに似てるってことだと思う。 でもこれ、ブラウザ上で動くんだよね。普通のリンクを踏んで、JavaScriptのサンドボックス内でコードが実行されるのと変わらないじゃん。QRコードが怪しいリンクに繋がるのはみんな知ってるし。 QRコードの上に、人間が読める形式でリンク先が書いてあったら最高だよね。もしQRコードとリンク先が一致しなかったら、開くのを拒否するように設定できたらもっと安心。 今回のQRコードは大丈夫だけど、悪意のある人が作ったQRコードはどうなるかわからないよ。スキャンするまで何が起こるかわからないのが怖いところ。 知ってる限り、QRコードで実行できるコードってURLくらいだよね。それって既に言われてるリスクと同じじゃん。 これってQRコードからウェブサイト開いて、そこで好きなコード実行するのと何が違うの? ウェブサイトのJavaScriptについて知ったら腰抜かすぞ。 canvasのCSSを 試したけど、こっちの方が楽しくてレトロな感じがして良いんだよね、笑 次のプロジェクト:QRコードでLLM! アップデート - なんとか作ったよ、笑 (LLMじゃないけどクールなchatbot) マジか、ちょっと試してみるかも。ありがとう。 ゲームのトレーラーのリンク先が”Fly me to the moon - 19 September 2024”ってショートフィルムになってるけど、これ間違ってない? 修正したよ、ごめんね、笑 Never gonna give you upは新しい形で生き続けるんだな。 こういうミニマルなゲームプロジェクトってマジ最高だよね。マジ、.kkrieger思い出すわ。 マジかよ!!誰かがLinkedInで教えてくれたんだよね、超クールじゃん! kuberwastaken、マジでイケてるもの作り続けてくれよな! マジ頑張るっす!あざます😊 友達と似たようなアイデアで盛り上がってたんだよね。 昔、テーブルのデザインで同じようなことやったわ。2Dファイル(テーブルはシート材のカットだけで済むから)をエンコードしたんだけど、それでもカスタム圧縮アルゴリズムが必要だったんだよね。 この前のDef Con 32のバッジで、Pico 2上でフルバージョンのDoomが動くんだぜ[1]。 Raspberry Piなら余裕で動くっしょ、計算能力高いし。 Picoはarduinoみたいなマイコンだから。フルバージョンのGNU/Linuxは動かないよ。Nanoと間違えないでね。 s/Nano/Zero/ これマジですごいね。似たような感じで、https://urlfile.app 作ってみたんだ。URLでファイルを共有できるか試したくて(あと、EdgeでQRコード生成してスマホに読み込みたかったし)。小さいファイルなら結構使えるよ。 それ、めっちゃクールじゃん! 25年前のAllegro SizeHackに出した作品思い出したわ。https://www.oocities.org/trentgamblin/sizehack/entries.html#… でPacManみたいなゲームを10KB以下で作ったんだ。HackManって名前でね。一番の自慢はストーリーだったりする! マジで超クール! 誰かがゴキブリとかミバエをハックしてDOOMをプレイさせるってニュースを待ってるんだよね。自律じゃなくてもいいから、鳥肌が立つようなやつ。昆虫をロボット化してるみたいだし、歯ブラシから起動したQRコード経由でアクセスしてDOOMをプレイできるようになったら最高じゃん。SFは遅れてる。 いつかそうなるかもね。 めっちゃクールだけど、ちょっと技術的な問題があったな。Firefox mobileだと画面が真っ黒になった(昨日だけど、もしかしたらアップデートされたかも)。Firefox desktopだと、キーボードが発砲クリックするまで動かないことと、F5でリスタートするたびにリセットされることに気づいたら動いたよ(多分ブラウザのフォーカス問題)。あと、上下キーとw/sキーは前後に使えるけど、aとdは左右に使えなくて、左右の矢印キーが必要だった。色々試行錯誤しちゃった! へいよー!チェックしてくれてありがと! オフラインのAndroidで試してみたよ。動くことに驚いたけど、操作方法が全然わからなくて、いつも数秒で死んじゃう!readmeに操作方法書いた方がいいかも。 そうそう、慣れるまで時間かかるけど、なんとなく動くって感じw すごいクレイジーなことだね! ハハ、そうなるといいなー! なんでreadmeにゲームのスクリーンショットが1枚もないんだ? ゲームがどんどん進化して、ゲーム自体よりも開発の話がメインだったからね。 動かないけど、別にプレイしたいわけじゃなくて、どんなゲームかスクリーンショットが見たいだけなんだよね。 iOS(ipad)で動かない。 タッチデバイスだとダメだね。 アップデートだよ! アップデート! ありがとう! なんかSnow Crashに近づいてる気がしてちょっと怖いなー。QRコード見たとき、マジで脳みそいじられてるかと思ったわ 笑。マジですげー。もっとコメントを表示(1)
>https://kuberwastaken.github.io/blog/Technology/QR-Codes-and…もっとコメントを表示(2)
image-rendering: pixelated
にすると、ぼやけずにクッキリして良い感じになるよ!
関連:https://www.reddit.com/r/OpenAI/comments/138kbhs/someone_sho…
https://github.com/Kuberwastaken/MiniLMs/tree/main/SYNEVA
https://en.wikipedia.org/wiki/.kkrieger
3DプリントのSTLファイルを全部QRコードにエンコードして、それをプリントしたオブジェクトに貼り付けたら、オブジェクトをスキャンしてプリントするだけで複製できるんじゃね?って。
調べたらデータ量が多すぎて無理かと思ったけど、でかいQRコード作ればいけるのか…
https://johnkestner.com/rev/
[1] Running Doom on the Raspberry Pi Pico 2: A Def Con 32 Badge Hack:
https://shop.sb-components.co.uk/blogs/posts/running-doom-on…もっとコメントを表示(3)
>”On Firefox mobile I got a black screen”
>”そうなんだよねー、モバイルコントロール追加しようとして壊しちゃったんだけど、今はちゃんと動くはず!”
>”the keyboard doesn’t work until after I click to fire, and this state resets itself every time I press f5 to restart the game”
>”それはゲーム音楽とか他のプロセスを起動するためなんだ”
もっと慣れて、いつか追加してみるよ!
canitrundoomに「自己完結型QRコード」が追加されるのを待ってるよ(技術的に承認されるかわからないけど)。
でも…これからはQRコードをスキャンする前に、ちょっと考えちゃうかも^^
QRコードってすごい可能性秘めてるよね。
もっと詳しく知りたいなら、この記事読んでみてね!
https://kuberwastaken.github.io/blog/Technology/QR-Codes-and…
もしQRコードをスキャンするのが面倒なら、ここで直接プレイできるよ!
https://kuberwastaken.github.io/backdooms/
スクリーンショットがあると嬉しいな。
どんなゲームか見たいなら、このトレーラーを見てみて!
https://www.youtube.com/shorts/QWPr10cAuGc
モバイルタッチ操作を少し追加できたから、別のChromiumベースのブラウザを使えば、URIを入力してモバイルでもプレイできるよ!
GIFをrepoに追加したよ。少しはマシになったかな?