Portal 2(Sourceエンジン)でWebサーバーを作る
(youtube.com)要約
(Geminiで要約した後、一部修正)
-
Portal 2 エンジンをWebサーバーに変換
- Sourceエンジンの隠れたTCPコンソール機能(
-netconportオプション)を利用して、Portal 2 上で直接Webページをホスティングする実験を実施。
- Sourceエンジンの隠れたTCPコンソール機能(
-
開発者コンソールを通じたHTTPレスポンス処理
- ゲーム上にTCPサーバーは開かれたものの、ユーザーのリクエストに対して開発者コンソールがそれをコンソールコマンドとして解釈してしまう問題がある。
- HTTPリクエストをゲームのコンソールコマンドとして受け取るため、Sourceエンジンの
aliasコマンドと VScript(Valve製のスクリプト言語)を使い、入力された文字列に対する応答を出力できるように変更。
-
複数ルーティングの実装
- ゲームコンソールではURLパスを区別できないため、HTTPリクエストのメソッド(GET、POSTなど)やカスタムHTTPヘッダーを使って、異なるルーティングを擬似的に実現。
- これを利用して、JavaScript を使い、ゲームからのデータ更新をリアルタイムで行えるように実装。
-
ゲームオブジェクトをHTML DOMとCSSにマッピング
- キューブのようなゲームオブジェクトをHTMLタグや属性に対応づけ、実際にWebサイトを「積み上げていく」方式で構成。
- 同様にスタイル情報(CSS)も各プロパティを1つのキューブに対応させ、視覚的にWebページを構成する。
2件のコメント
漫画やゲームなどで、サーバーへの侵入プロセスを仮想空間の中を歩き回るように描いていたのを時々思い出します。
Webサーバーをゲームエンジンで作ろうと考えたこと自体にも驚きますが、概念的にではあってもWeb開発の基礎的な内容をうまく説明している部分が多くて面白い動画です。Portalのキューブを積み上げてDOM/CSSを構成する部分は本当によかったと思います。