メインコンテンツへスキップ

ド迫力!QRコードにDoom風ゲームを詰め込んでみた結果www

·2 分
2025/04 QRコード ゲーム JavaScript HTML5 技術デモ

ド迫力!QRコードにDoom風ゲームを詰め込んでみた結果www

引用元:https://news.ycombinator.com/item?id=43729683

sangeeth96 2025-04-18T19:14:50

DecompressionStream、初めて知ったわ、ありがとねー。HTML部分を削って、さらに容量を減らせたよ。PR送ったから、もしよかったら見てみて。

kuberwastaken 2025-04-18T19:49:09

マジ神!おかげで、タッチスクリーン操作、より良い移動、敵の出現とダメージの仕組みを(なんとなく)追加できた!マジで感謝、今月最高だわ:)

sangeeth96 2025-04-18T20:28:35

マジか、すげー!役に立ててよかったわ:D

collingreen 2025-04-18T22:31:42

これぞオープンソースの勝利って感じだね。

kuberwastaken 2025-04-18T22:49:12

ほんとそれ!

redbell 2025-04-18T22:01:14

マジでクールなプロジェクト! ‘data:’ URLについて初めて知ったわー。URIスキーム自体は知ってたんだけど、URLとして使えるとは思わなかった。実は、QRコードに収まるようなものを作ろうと思ってたんだけど、HTTP(s)リンクが必要だと思って諦めてたんだよね。

kuberwastaken 2025-04-18T22:16:07

優しい言葉ありがとね!
自分もロックダウン中にこの動画にインスパイアされたんだよね。ブラウザベースにしたのは互換性が高いから。リポジトリにもちゃんとクレジットしてるよ:P

cosignal 2025-04-19T02:56:10

素朴な疑問なんだけど、QRコードってただのデータエンコードでしょ? 最大データ量は3kbくらいで、3000文字程度のテキストに相当すると思うんだけど。ってことは、このゲームは3kbくらいの実行ファイルで動くってこと?

matheusmoreira 2025-04-19T03:32:17

QRコードには、数値、英数字、8ビット、漢字など、さまざまなエンコードモードがあるんだ。一般的なのは英数字エンコードで、最も密度が高いのが8ビットエンコード(バイナリデータをそのまま格納)。
8ビットエンコードは任意のバイナリデータを格納できるよ。qrencodeツールでネイティブにできる。デコーダのサポートはもっとトリッキーで、テキストを含むと思われがち。自分はzbarにパッチを送る必要があったんだ。

cosignal 2025-04-24T04:19:02

興味深いね、返信ありがとう!

pudquick 2025-04-18T17:26:02

data: URIはサポートされてないみたい。QRコードのサイズとか長さの問題じゃないんだ。
例えば、Hi!をエンコードするとdata:text/html;base64,PGh0bWw+PGJvZHk+SGkhPC9ib2R5PjwvaHRtbD4=になる。ブラウザに貼り付けると”Hi!”って表示されるけど、QRコードにすると動かない。

myfonj 2025-04-18T19:23:00

dataURIならbase64エンコードもいらないよ。mime-typeとコンマの後にテキストを置くだけ。
data:text/html,<!doctype html>Hi!

Hello.

これでHTMLドキュメントになる。ASCII以外を使うなら;charset=utf-8が必要。
Base64は安全だけど、サイズが1/3大きくなる。ASCII dataURIがダメなデバイスもあるから、BackroomsのQRコードは738バイト削減できたかも。

reaperducer 2025-04-19T00:07:11

これ、便利かも。Duck browserじゃブックマークできないけど、Safariはいけるね。

myfonj 2025-04-19T01:29:38

dataURIは過去に悪用されたから、ブラウザで制限されることが増えてる。リンクをクリックしてdataURIに移動できないとか。ブックマークとか手動入力はOK。
Backroomsはbase64 URIじゃなくても動くからもっと小さくできるよ。

kuberwastaken 2025-04-19T05:50:25

すごいね!ちょっと試してみるよ!シェアしてくれてありがとう😊

myfonj 2025-04-19T18:26:57

どういたしまして :] BackdoomsをSandboxで試すなら、オリジナルのHTML payloadを使うか、”verbatim”を使うといいよ。そうしないと%23が二重エンコードされちゃうから。

kuberwastaken 2025-04-18T17:34:06

Safariだと壊れてるけど、Chromiumベースのブラウザならモバイルでも動くみたい。QRコードはURI URL自体を持ってるんだね。

pudquick 2025-04-18T17:40:18

ほとんどのiOSユーザーがQRコードを読み込むのに使うカメラアプリだと、このURLに遷移できないってこと。
HTMLゲームがSafariで動くかどうかは別の話。QRコードは、一般的な方法だとクリックできない。

kuberwastaken 2025-04-18T17:56:48

>それはそうだね 笑

kuberwastaken 2025-04-18T17:26:01

へー、見てくれてありがとね!多分、https://qrscanner.org/ みたいなのを使うといいかも。スマホだと大きいQRコードの読み取りが苦手なことが多いからさ。あと、残念ながらスマホじゃ動かないんだ。サイズ制限で互換性を入れられなかったんだよね。

もっとコメントを表示(1)
ascorbic 2025-04-18T19:36:41

ちなみに、Pixelの内蔵QRコードスキャナーだと問題なく動くよ。URLじゃなくてテキストとして認識するけど、クリップボードにコピーしてブラウザに貼り付ければOK。もちろん操作が全く効かないから即死だけど、全部うまくいくとは限らないよね。

kuberwastaken 2025-04-18T19:56:58

アップデート!なんと、最近のPRでさらに最適化されたおかげで、モバイルタッチサポートをちょこっと追加できたんだ。だから、もし操作方法がわかれば、スマホでも遊べるようになったよ!

iainmerrick 2025-04-18T17:41:25

え、もしかしてモバイルだと全然動かないってこと?じゃあ、QRコードは何でスキャンするの?

lelandbatey 2025-04-18T17:58:30

QRコードを物理的なカメラで直接スキャンする必要はないんだよ。普通のコンピューターなら、QRコード解析プログラムを使って、画像を入力として読み込めるんだ。JSでQRコードスキャンできるウェブページもあるくらい簡単だよ。だから、親の発言者は、QRコードの.pngファイルを保存して、リンク先のウェブサイトとかでデータを抽出することを勧めてるんだ。そうすれば、どんなコンピューターでもQRコードをスキャンできるってわけ。

iainmerrick 2025-04-18T22:45:15

それか…URLを使うとか。デスクトップパソコンでQRコードをスキャンしたことのある人なんて、ゼロよりは多いだろうけど、ほとんどいないでしょ。

kuberwastaken 2025-04-18T22:50:07

たぶん僕自身がその数を3桁に乗せたと思うけど、もし興味があれば、ホストしてるバージョンもあるよ!このプロジェクトの理由は実用性じゃなくて、単に僕がそれを“できる”からなんだ。

kuberwastaken 2025-04-18T18:10:04

その通り!もっとわかりやすく説明してくれてありがとう!

kuberwastaken 2025-04-18T19:52:23

アップデート!モバイルタッチサポートをちょこっと追加できたから、もし別のChromiumベースのブラウザを使えば、URIを入力してモバイルでも遊べるよ!

iainmerrick 2025-04-18T22:41:35

いいね!

kuberwastaken 2025-04-18T18:09:18

いやいや、そんなことないって。画像入力できるQRコードスキャナーならどれでも使えるよ!スマホ操作も入れたかったけど、そしたらめっちゃ容量食っちゃうからね。

Jerry2 2025-04-18T18:27:55

iPhoneで動かないって聞いて、なんかホッとしたわ。QRコードってURLを打つ手間が省けるけど、勝手にコード実行されるのはマジで怖いじゃん。

kuberwastaken 2025-04-18T19:09:38

マジかよ、実は俺も同じことブログに書いたんだよね。QRコードを気軽にスキャンすることの危険性についてさ。

>https://kuberwastaken.github.io/blog/Technology/QR-Codes-and…

Valodim 2025-04-19T06:29:26

内容は良いんだけど、最後の3分の1くらいがAIで水増しした感じが否めない。

kuberwastaken 2025-04-19T07:05:21

AIで水増しってどういうこと?

poilcn 2025-04-19T07:52:28

なんとなくわかるかも。AIチャットって、無駄な言葉でコンテンツを増やしたり、訴訟とかネガティブなイメージを避けるための免責事項を並べ立てたりするじゃん?あれに似てるってことだと思う。

Blikkentrekker 2025-04-18T20:15:46

でもこれ、ブラウザ上で動くんだよね。普通のリンクを踏んで、JavaScriptのサンドボックス内でコードが実行されるのと変わらないじゃん。QRコードが怪しいリンクに繋がるのはみんな知ってるし。

Blikkentrekker 2025-04-19T07:23:18

QRコードの上に、人間が読める形式でリンク先が書いてあったら最高だよね。もしQRコードとリンク先が一致しなかったら、開くのを拒否するように設定できたらもっと安心。

dylan604 2025-04-18T21:08:13

今回のQRコードは大丈夫だけど、悪意のある人が作ったQRコードはどうなるかわからないよ。スキャンするまで何が起こるかわからないのが怖いところ。

Blikkentrekker 2025-04-19T07:21:02

知ってる限り、QRコードで実行できるコードってURLくらいだよね。それって既に言われてるリスクと同じじゃん。

berkes 2025-04-19T07:30:44

これってQRコードからウェブサイト開いて、そこで好きなコード実行するのと何が違うの?

もっとコメントを表示(2)
recursive 2025-04-18T20:28:25

ウェブサイトのJavaScriptについて知ったら腰抜かすぞ。

jasonjmcghee 2025-04-18T17:11:03

canvasのCSSをimage-rendering: pixelatedにすると、ぼやけずにクッキリして良い感じになるよ!

kuberwastaken 2025-04-18T17:30:20

試したけど、こっちの方が楽しくてレトロな感じがして良いんだよね、笑

thund 2025-04-19T00:22:51

次のプロジェクト:QRコードでLLM!
関連:https://www.reddit.com/r/OpenAI/comments/138kbhs/someone_sho…

kuberwastaken 2025-04-24T16:18:00

アップデート - なんとか作ったよ、笑 (LLMじゃないけどクールなchatbot)

https://github.com/Kuberwastaken/MiniLMs/tree/main/SYNEVA

kuberwastaken 2025-04-19T06:12:01

マジか、ちょっと試してみるかも。ありがとう。

r1chardnl 2025-04-18T17:08:05

ゲームのトレーラーのリンク先が”Fly me to the moon - 19 September 2024”ってショートフィルムになってるけど、これ間違ってない?

kuberwastaken 2025-04-18T17:28:06

修正したよ、ごめんね、笑

dylan604 2025-04-18T21:02:43

Never gonna give you upは新しい形で生き続けるんだな。

Barrin92 2025-04-18T21:56:02

こういうミニマルなゲームプロジェクトってマジ最高だよね。マジ、.kkrieger思い出すわ。
https://en.wikipedia.org/wiki/.kkrieger

kuberwastaken 2025-04-18T22:03:02

マジかよ!!誰かがLinkedInで教えてくれたんだよね、超クールじゃん!

rezmason 2025-04-18T19:15:58

kuberwastaken、マジでイケてるもの作り続けてくれよな!

kuberwastaken 2025-04-18T19:55:21

マジ頑張るっす!あざます😊

kamranjon 2025-04-19T13:11:11

友達と似たようなアイデアで盛り上がってたんだよね。
3DプリントのSTLファイルを全部QRコードにエンコードして、それをプリントしたオブジェクトに貼り付けたら、オブジェクトをスキャンしてプリントするだけで複製できるんじゃね?って。
調べたらデータ量が多すぎて無理かと思ったけど、でかいQRコード作ればいけるのか…

jkestner 2025-04-20T19:49:37

昔、テーブルのデザインで同じようなことやったわ。2Dファイル(テーブルはシート材のカットだけで済むから)をエンコードしたんだけど、それでもカスタム圧縮アルゴリズムが必要だったんだよね。
https://johnkestner.com/rev/

teleforce 2025-04-19T00:38:12

この前のDef Con 32のバッジで、Pico 2上でフルバージョンのDoomが動くんだぜ[1]。
[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

kuberwastaken 2025-04-19T05:52:19

Raspberry Piなら余裕で動くっしょ、計算能力高いし。

opan 2025-04-19T09:41:43

Picoはarduinoみたいなマイコンだから。フルバージョンのGNU/Linuxは動かないよ。Nanoと間違えないでね。

opan 2025-04-19T18:00:43

s/Nano/Zero/

below43 2025-04-19T06:12:11

これマジですごいね。似たような感じで、https://urlfile.app 作ってみたんだ。URLでファイルを共有できるか試したくて(あと、EdgeでQRコード生成してスマホに読み込みたかったし)。小さいファイルなら結構使えるよ。

もっとコメントを表示(3)
kuberwastaken 2025-04-19T07:05:50

それ、めっちゃクールじゃん!

EGreg 2025-04-18T19:06:10

25年前のAllegro SizeHackに出した作品思い出したわ。https://www.oocities.org/trentgamblin/sizehack/entries.html#… でPacManみたいなゲームを10KB以下で作ったんだ。HackManって名前でね。一番の自慢はストーリーだったりする!

kuberwastaken 2025-04-18T19:57:57

マジで超クール!

metalman 2025-04-18T20:15:24

誰かがゴキブリとかミバエをハックしてDOOMをプレイさせるってニュースを待ってるんだよね。自律じゃなくてもいいから、鳥肌が立つようなやつ。昆虫をロボット化してるみたいだし、歯ブラシから起動したQRコード経由でアクセスしてDOOMをプレイできるようになったら最高じゃん。SFは遅れてる。

kuberwastaken 2025-04-18T22:18:03

いつかそうなるかもね。

redeyedtreefrog 2025-04-19T09:03:32

めっちゃクールだけど、ちょっと技術的な問題があったな。Firefox mobileだと画面が真っ黒になった(昨日だけど、もしかしたらアップデートされたかも)。Firefox desktopだと、キーボードが発砲クリックするまで動かないことと、F5でリスタートするたびにリセットされることに気づいたら動いたよ(多分ブラウザのフォーカス問題)。あと、上下キーとw/sキーは前後に使えるけど、aとdは左右に使えなくて、左右の矢印キーが必要だった。色々試行錯誤しちゃった!

kuberwastaken 2025-04-19T09:37:03

へいよー!チェックしてくれてありがと!
>”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”
>”それはゲーム音楽とか他のプロセスを起動するためなんだ”

sebastiennight 2025-04-19T09:12:54

オフラインのAndroidで試してみたよ。動くことに驚いたけど、操作方法が全然わからなくて、いつも数秒で死んじゃう!readmeに操作方法書いた方がいいかも。

kuberwastaken 2025-04-19T09:38:07

そうそう、慣れるまで時間かかるけど、なんとなく動くって感じw
もっと慣れて、いつか追加してみるよ!

Bengalilol 2025-04-18T20:33:23

すごいクレイジーなことだね!
canitrundoomに「自己完結型QRコード」が追加されるのを待ってるよ(技術的に承認されるかわからないけど)。
でも…これからはQRコードをスキャンする前に、ちょっと考えちゃうかも^^

kuberwastaken 2025-04-18T20:51:05

ハハ、そうなるといいなー!
QRコードってすごい可能性秘めてるよね。
もっと詳しく知りたいなら、この記事読んでみてね!

https://kuberwastaken.github.io/blog/Technology/QR-Codes-and

deadbabe 2025-04-18T18:11:52

なんでreadmeにゲームのスクリーンショットが1枚もないんだ?

kuberwastaken 2025-04-18T18:26:17

ゲームがどんどん進化して、ゲーム自体よりも開発の話がメインだったからね。
もしQRコードをスキャンするのが面倒なら、ここで直接プレイできるよ!

https://kuberwastaken.github.io/backdooms/

deadbabe 2025-04-18T20:13:17

動かないけど、別にプレイしたいわけじゃなくて、どんなゲームかスクリーンショットが見たいだけなんだよね。

ant6n 2025-04-18T18:49:04

iOS(ipad)で動かない。
スクリーンショットがあると嬉しいな。

kuberwastaken 2025-04-18T18:58:35

タッチデバイスだとダメだね。
どんなゲームか見たいなら、このトレーラーを見てみて!

https://www.youtube.com/shorts/QWPr10cAuGc

kuberwastaken 2025-04-18T19:52:57

アップデートだよ!
モバイルタッチ操作を少し追加できたから、別のChromiumベースのブラウザを使えば、URIを入力してモバイルでもプレイできるよ!

kuberwastaken 2025-04-18T22:17:48

アップデート!
GIFをrepoに追加したよ。少しはマシになったかな?

deadbabe 2025-04-21T19:18:22

ありがとう!

frellus 2025-04-18T22:47:38

なんかSnow Crashに近づいてる気がしてちょっと怖いなー。QRコード見たとき、マジで脳みそいじられてるかと思ったわ 笑。マジですげー。

記事一覧へ

海外テックの反応まとめ
著者
海外テックの反応まとめ
暇つぶしがてらに読むだけで海外のテックニュースに詳しくなれるまとめサイトです。