世界を動かす技術を、日本語で。

クリーンルームでの「Half-Life 2」のQuake 1エンジンへの実装

概要

  • Anubis はAI企業によるウェブスクレイピング対策のため導入
  • Proof-of-Work 方式でアクセス制御を実施
  • 一般ユーザーには影響が少なく、大規模スクレイピングには高コスト
  • 今後は ブラウザの指紋認証 による判別強化を目指す
  • 一部プラグイン(例: JShelter)は無効化が必要

Anubisによるウェブ保護の仕組み

  • Anubis はウェブサーバーを AI企業のスクレイピング から守るためのセキュリティツール
  • スクレイピングによる サーバーダウン やリソースの浪費を防止
  • Proof-of-Work(PoW) 方式を採用し、アクセス時に計算処理を要求
  • Hashcash の仕組みに類似し、個人利用では負担が小さい設計
  • 大量アクセス を行うボットやスクレーパーにはコスト増大

Proof-of-Work方式の詳細

  • アクセスごとに 計算問題の解決 を要求
  • 個々のユーザーには 影響が軽微
  • 自動化された大量アクセス に対しては高い負荷
  • サーバーの リソース保護 と安定稼働を実現
  • 一時的な 暫定策 として導入

今後の対応方針

  • ブラウザの指紋認証 (例:フォントレンダリングの違い)で正規ユーザー判別を強化予定
  • 将来的には PoWページの表示頻度削減 を目指す
  • より 高度なボット判別技術 の導入検討

プラグイン利用時の注意点

  • Anubis最新のJavaScript機能 を必要とする
  • JShelter などのプラグインは 機能を阻害 する場合あり
  • このドメインでは JShelter等の無効化 が推奨
  • 正常なアクセスのための 設定確認 が必要

バージョン情報

  • このウェブサイトは Anubis version 1.19.1 を使用

Hackerたちの意見

すごいね、Q1エンジンがこんなに古いのに。パラノイド・ドゥームモッドを思い出すよね。: https://www.doomworld.com/idgames/levels/doom2/Ports/p-r/par...

でも、FTEは今や純粋なクエイクエンジンとは言えないね。いろんなことやってるし。

確かにいろんなことができるけど、元のコードベースの延長でもあるんだよね。内部をいじるのに結構時間をかけたよ。

SSL_ERROR_BAD_CERT_DOMAIN これはdnsft.cloud.zyxel.comの証明書を使ってるみたい。これって家庭用ルーター?

その証明書は全然わからないな。idtech.spaceのLetsEncrypt証明書が見えてるけど、いろんなSANがあるね。# host code.idtech.space code.idtech.spaceはidtech.spaceのエイリアスだよ。idtech.spaceのアドレスは192.99.32.215で、IPv6アドレスは2607:5300:60:47d7::

もしかしてMITMされてる?

https://community.zyxel.com/en/discussion/23595/why-i-get-bl... あなたか、あなたの上流にいる誰かが、DNSコンテンツフィルタリングが有効になっているZyxelブランドのデバイスを使ってるみたい。特定のマシンで代替のDNSプロバイダー(DNS over HTTPS、Cloudflareの1.1.1.1、Googleの8.8.8.8、Quad9の9.9.9.9など)を設定することで回避できるはずだよ。もしそれが原因じゃないなら、自分のルーターやDNSリゾルバー、DHCPサーバーで似たようなことをしてみて。

「ゲームは最初から最後までプレイできるわけじゃない。デスマッチや他の変わったモードは遊べるけど。」

面白いね、ここにはHL1(いわゆる「バルブ」)も含まれてる。おかしなことに、このエンジンを通して見るHL2は、思ったよりもHL1と調和してる。逆転のハーフライフ:ソース / ブラックメサ / いわばリメイクみたいな感じ。

シンプルなハーフライフ1のモッドでも、ハーフライフ2のテクスチャやモデルを使ってると、思ったよりも2に近い見た目になるよ。例えばこのモッドとか: https://moddb.com/mods/half-life-dark-future 近代的なハーフライフ2とは混同しないけど、元のHL2エンジンは最新バージョンよりもグラフィックがひどかった。HL2とHL1の違いが、テクスチャやレベルデザインの違いによるものだって気づかされるね。

クエイク1でのハーフライフ2、めっちゃすごいじゃん、どうなってるの?

Quakeのエンジンはオープンソースで、例えばNVIDIAが最近の技術デモで使ってるんだよね。これなんかはQuake 2用のやつだよ。https://www.nvidia.com/en-us/geforce/news/quake-ii-rtx-v1-2-...

エンジンとは関係ないけど、QuakeでのHalf-Life 2のデメイクを思い出した。https://www.youtube.com/watch?v=FhuXHGb_4vU

超面白い!でも、目的は何なんだろう?自分で答えてみると、これは同じ著者によるFreeHLプロジェクトの派生みたいで、GoldSrcのゲームロジックをQuakeCに書き直して、オープンソースのエンジンスタックでそのゲームを動かすためのものみたい。HL2のコンテンツを動かすのがどれだけ大変かを見るのが楽しかったんじゃないかな。OblivionやSkyrimのコンテンツ読み込みを進めているOpenMWプロジェクトにちょっと似てるけど、そっちはもう少し明確な将来の方向性があるかもね。

これがあればHL3もできるってこと?

この文脈で「クリーンルーム」ってどういう意味?ゲームのアセットを参考にして作ったけど、エンジンのソースコードは見てないってこと?