2 ポイント 投稿者 GN⁺ 2025-02-19 | 2件のコメント | WhatsAppで共有
  • ValveSoftware/source-sdk-2013Add Team Fortress 2 SDK コミットは、Team Fortress 2 SDK を Source SDK 2013 リポジトリに追加する大規模な変更で、ゲーム・クライアント・シェーダーファイルが広範に含まれる
  • ファイルツリーには game/mod_tfsrc/game/client/tfclient_tf.vpcgame_shader_generic_*_tf.vpc など、TF 専用の構成とプロジェクトファイル が見られる
  • クライアントコードの範囲は、HUD、武器、投射物、ボット NPC、Halloween、Mann vs. Machine、PASS Time、リプレイ、econ・ショップ UI など、ゲームシステム単位 で幅広く分かれている
  • Steam API バイナリ、VS Code 作業設定、ビルドスクリプト、VPC・Xcode・make 設定、DirectX SDK ユーティリティ DLL、シェーダービルドツールもあわせて含まれる
  • 確認できる内容は GitHub の大規模コミットページにある ファイル一覧と一部の diff が中心であり、各ファイルの実際の実装変更や追加・修正の有無は大半が確認しにくい

TF2 SDK コミットに含まれる範囲

  • 対象は ValveSoftware/source-sdk-2013 公開リポジトリの Add Team Fortress 2 SDK コミット
    • GitHub ページのタイトルは Add Team Fortress 2 SDK · ValveSoftware/source-sdk-2013@0759e2e · GitHub
    • 表示されているリポジトリ指標は Fork 3k、Star 9.8k
  • ルートおよび game 側には SDK 配布に必要な基本ファイルとモッド構成が含まれる
    • ルートレベルのファイルとして .gitattributes.gitignoreCONTRIBUTINGLICENSEREADME.mdREADME が見える
    • game/bin には linux64/libsteam_api.sox64/steam_api64.dll のような Steam API バイナリ が含まれる
    • game/mod_tf には gameinfo.txtsteam.inf、TF2 ロゴ、resource/mod_tf_english.txtMatchMakingDashboard.res などの構成・UI リソースが入っている
  • src/game/client/tf 配下には Team Fortress 2 クライアントコード と見られるファイルが大量に列挙されている
    • プレイヤー・チーム: c_tf_player.cpp/.hc_tf_team.cpp/.hc_tf_playerresource.cpp/.h
    • 武器・投射物: c_tf_projectile_arrowc_tf_projectile_rocketc_tf_stickyboltc_tf_weapon_builder
    • Engineer 建築物: c_obj_dispenserc_obj_sentrygunc_obj_teleporterc_obj_sapper
    • モード・イベント: PASS Time、Halloween、Mann vs. Machine、PvE 関連ファイルが含まれる
  • UI とサービス型ゲーム要素もファイル一覧に広く含まれる
    • econ ディレクトリにはインベントリ、装備、取引、マーケット、アイテム UI ファイルがある
    • econ/store にはショップ画面関連のファイルがある
    • HUD ファイルはアカウント、実績、通知、弾薬、チャット、照準、ダメージ表示、ボス体力、Mann vs. Machine 状態などに分かれている

シェーダーとビルドツール

  • シェーダー関連の変更一覧は非常に大きい
    • .fxc.psh.vsh.inc.cpp.h.bat.vpc.pl など多様な形式が含まれる
    • ps11ps14ps20ps20bps30vs11vs20vs30 のような シェーダープロファイル別の派生 が繰り返し現れる
    • 水、ポストプロセス、bloom、motion blur、cloak、eye、flashlight、lightmapped generic、HDR・トーンマッピング、particle 関連ファイルが含まれる
  • 開発・ビルド環境まで一緒に入っている
    • src/.vscode/tasks.jsonsrc/buildallprojects
    • createallprojectscreategameprojects
    • src/devtools の Xcode 設定、POSIX makefile、Source SDK make 定義
    • src/devtools/binShaderCompile2.exevpc.exevpc_linuxvpc_osx、Perl/Python/PowerShell スクリプト

確認可能な限界と diff メモ

  • 現在の入力はコミットページの ファイルツリーと一部 diff 情報 を要約したものであり、大半は実際のコード内容ではなく変更ファイル一覧
  • GitHub の大規模コミットページのため、一部内容はデフォルトで隠されており、隠れた内容を探すために検索ボックスを使えるという案内がある
  • ページには “There was an error while loading. Please reload this page.” というエラーメッセージも表示されている
  • .gitattributes diff は 5 件追加、11 件削除と表示される
    • README text が削除され、README.md text が追加されている
    • *.dll binarybuildallprojects textvpc binary が追加されている
    • mod_*_english.txt binary が削除され、*_english.txt binary が追加されている
    • creategameprojectscreateallprojectsvpc_linuxvpc_osx など一部項目は削除されたものとして表示される
  • コミットコメントは 0 件と表示される

反映されていない範囲

  • 入力メモによれば、原文の一部チャンクは長さ・コスト制限により省略されている
  • したがってこの要約は、提供されたソースノート範囲のコミットファイル一覧と一部 diff のみを反映しており、コミット全体のすべてのファイル・変更内容を網羅するものではない

2件のコメント

 
honglu 2025-02-19

本当にValveはかっこいいですね。

 
GN⁺ 2025-02-19
Hacker News のコメント
  • Modding には良いニュースだが、これは依然として非公開の Source エンジンの上に載った TF2 専用コードだという点を混同してはいけない
    例えば、これで TF2 を新しいプラットフォームに移植できるわけではなく、少なくとも Source を再実装するか、流出した Source コードベースのいずれかに無理やり合わせたうえで法的な余波を覚悟しないと不可能だ

    • Valve が Source を非公開のままにしている姿勢は理解しにくい。今取り組むうえで特に魅力的なエンジンでもなく、O3DE、Godot、Wicked のように、はるかに強力で扱いやすい主要なオープンソース代替がすでに少なくとも 3 つはある
      Source のワークフローの欠点をよく知る活発なコミュニティがあるのだから、Carmack が id tech でやったように GPL で公開すれば、インディーの創作プロジェクトが爆発的に増える可能性がある。もはや不透明な契約に縛られる必要もない
    • 流出もあったし、Source 1 を使った最後の大型ゲームが出てから 10 年以上経っており、Source 2 ではゲームグラフィックスの新たな進展に合わせてレンダリングコードの大半は書き直されているはずなので、まだ非公開にしておく理由があるのか気になる
      いつか公開するのだろうか。全権利を持っているわけではなく、簡単にオープンソース化できないライセンス上の問題があるのかもしれないし、あるいはまだ秘匿しておく価値のある技術が多いのかもしれない
    • これで TF2 が Mac に戻ってくることを期待していたので残念。Apple が 32 ビット対応をなくして以来、オフィスでまともな LAN パーティーができていない
    • Valve が 10 年以上前に Source 2 へ移行したのに、Source が非公開のままな理由がいまだによく分からない。基本要素が一部重なっているからかもしれないが、ゲームのソースは公開してもよいと見ているようだ
    • 良いニュース! すでに誰かが TF2 用の Source エンジンをある程度 リバースエンジニアリングすることに成功している
      https://www.youtube.com/watch?v=09CvpQrnTEY
  • サーバー側の TF2 Mod を作っていた立場からすると、本当に素晴らしい。IDA でバイナリを解析するのに数え切れないほどの時間を費やしてきたが、これからはただ GitHub を開けばいい
    コミュニティは新機能やバグ修正をはるかに速く作れるようになるはずだ。実際、もっと早くこうなっているべきだったし、TF2 のソースコードはすでに 2 回流出しており、あるグループはさらに古いバージョンのエンジンでゲームのクローンまで作っていた。このゲームへのコミュニティの支援はいまも非常に大きい

  • これが TF2 Classic にとって良いニュースだといい
    TF2C Discord の告知によると、大規模な SDK アップデートと Team Fortress 2 のコード公開のため、しばらく TF2 Classic を起動できない可能性がある。すでに移植作業と将来的な Steam リリースの準備を進めており、合法的に進められるようになったという。当面プレイし続けるには、Source SDK Base 2013 Multiplayer を、以前の SDK ファイルが残っている previous2021 ベータブランチに切り替える必要がある

    • 原作ゲームの 派生作品が認められ、そうした作品を Steam の新作ゲームとしてリリースできると明記されたので、TF2 Classic への道が開けた形だ
    • TF2 Classic って何?
  • ゲーム名が Frog Fortress 2 に変わったように見える
    https://github.com/ValveSoftware/source-sdk-2013/blob/0759e2...

    • コードをビルドしてインストールしたとき、名前を変えていない場合に公式 TF2 と区別するためだと思う
    • 一種の内輪ネタのようだ。コミッターが誰かを見れば分かる
      カエルとグラフィックスプログラミングは良い友達だ
  • 公式ブログ記事: https://www.teamfortress.com/post.php?id=238809
    最近の他の Source エンジンゲームのアップデートへのリンクも含まれている

  • うわ……うわ、うわあ。HN でこれを見ることになるとは思わなかった。ずっと前から期待していたが、もし自分が Valve なら、もっと前に「最後」の記念コンテンツアップデートを出し、ゲームを Vulkan に移植し、アイテムサーバーのようなものは Valve のサーバーに紐づけたまま、コードベースをオープンソースとして公開していただろう
    これが TF2 にとって終わりの始まりなのか、始まりの終わりなのかは分からない。以前にも流出はあったが、今回はとてつもないニュースだ

    • 終わりの始まりというには、すでに何年も前から終わっていた。今はコミュニティに引き渡しているところで、そうするのが正しい
      TF2 チームはいまや多くても十数人規模の可能性が高く、ゲームもほぼ 18 年になるのだから、継続的な開発を外部コミュニティに任せる時期だ
    • 90 年代に id は Doom で数年間収益を上げてからソースコードを公開し、Quake でも同じことをした。Valve のような会社が今日存在している理由の一つも、初期のゲームが Doom や Quake の改造エンジンを使っていたことにある
      Valve はいま、25 年以上続く伝統を引き継いでいるわけだ。人々はいまも新しい Doom のマップを作り、プレイしている。歴史を基準にするなら、2050 年代以降も何らかの形で TF2 をプレイしている可能性がある
    • 「Woah... woah WOAH」って、何を狙っているのか分かった
    • なぜ HN でこれを見るとは予想できなかったのか気になる
  • 64ビットMac向けに再コンパイルするより前にこれをやったという事実が、多くを物語っている。Valveは明らかにAppleを、ビジネスをしやすい相手とは見ていないようだ
    Appleがゲーム開発者をApp Storeに閉じ込めようとしているのを見ると理解できる

    • Mac向けゲームを作るのは大きな挑戦に見える。比較的非標準なCPUアーキテクチャ、独自のグラフィックスAPI、少数のデバイス、過度に高解像度な内蔵画面、そしてせいぜい「十分」なレベルのGPUが組み合わさっている
      Appleが中級レベルのTomb Raider 2のグラフィックスを誇らしげに発表したことも、Appleの広報キャンペーンの支援を受けないゲーム開発者には大した期待を抱かせない。しかもプレイヤー数ベースではLinuxよりも小さいプラットフォームだ
      十分なプレイヤー基盤ができると確信できない限り、ゲーム会社がMac向けに最適化するのはビジネス的にほとんど意味がなさそうだ。Macを買えるユーザーは、コンソールも買える可能性が高い
      Linuxでゲームをするときに使うラッパーや回避策で無理やりゲームを動かすことはできるが、Macではツールの成熟度が低く、直接最適化する必要がある。LinuxゲームにもDRM/チート対策の互換性問題は多いが、成熟度の低いツールを使えばさらに悪化するだけだ
      Appleは後方互換性にもあまり関心がなさそうだ。「互換性を維持したくない」以外に明確な理由もなく32ビットを廃止したし、現在の代替API群をどれだけ長く維持するのかも分からない。Linuxにも似た問題があるため、Linuxでゲームをする基本的な方法は、エミュレートされたWindows環境で実行する方向になっている
      ゲーム会社はMacより先にSnapdragon向けにゲームを再コンパイルしそうだ。32ビットx86ライブラリをエミュレーションなしでARM上で動かせるようになるころには、AppleはAPIと要件をまた何度も変えているだろうから、わざわざやる理由がない
    • ゲーム業界のインタビューを見ると、Appleは歴史的にゲーム会社との協力にかなり敵対的で、iPhone App Store以降に少し和らいだようだ
      Ballmerの「devs devs devs」はからかわれるが、彼はかなり正しいことを言っていた。Microsoftは開発者を呼び込むために大金を使い、その結果PCゲームで独占的な地位を得た
    • 原文によると公式TF2ウェブサイトで発表されており、https://www.teamfortress.com/post.php?id=238809には、TF2、DoD:S、HL2:DM、CS:S、HLDM:SといったマルチプレイヤーSourceエンジンの旧作に、64ビットバイナリ対応、拡張可能なHUD/UI、予測の修正など多くの改善を追加すると書かれている
      少なくともApple SiliconがRosetta 2でより適切にサポートするx86-64という意味では、来る予定に見える
    • Macユーザーは1.4%で、Linuxより25%少ない
      思ったよりは多いが、対応ゲームがなければSteamをインストールする理由もほとんどない。Appleがゲームに友好的になり始めたのも最近なので、20年前のゲームを移植しようとしているとしても驚きではない
    • ValveのゲームがなぜMacintoshに移植されなかったのかを説明した動画があったのだが、見つからない。要点は、Appleが自社デバイスをゲーム用に使われることを望まず、移植作業を台無しにしたうえでゲームの公開を拒否した、という内容だった
      2007年のGabeの発言がそれに比較的近い。Appleと会うと、向こうの人たちは「ゲームは本当に重要だから何かしなければならない」と言い、Valveが「ではこの3つをやれば改善する」と言うと、分かったと言ったきり二度と現れない、というパターンが繰り返されると言っていた。その後Apple内部の人が変わると、同じサイクルがまた始まるという
  • 差分には小さなHL3ファイルもある: https://github.com/ValveSoftware/source-sdk-2013/commit/0759...

  • Valveは勝ち続けている
    Gabenが亡くなるか退く日が怖い。Valveが優れた後継者を見つけてくれることを願うが、創業世代がいなくなった後に会社が方向を見失うのは珍しくない

    • これは本当に素晴らしいことだし、Valveがやっている多くのこともそうだが、Valveはギャンブルや未成年者のギャンブルからかなりの収益を上げているので、完全に立派な会社だと見なすのは難しい
    • 私にとってValveは、ゲーム開発会社としてはずっと前に道を見失っている。最近何を出した? 2023年のCS 2? そのIPも25年前に買ったMOD由来だし、Half-Life以後に出した他のゲームも同じだ。パイプラインにある唯一の「新しい」ものはMOBA FPSだけだ
      それでもSteamのおかげでLinux上でWindowsゲームを苦労なく動かせ、私生活でMicrosoftと再び向き合わずに済んでいる点には永遠に感謝している。ゲーム配信会社としては素晴らしく、Valveが最も得意としていることもゲーム配信だ
    • むしろGabeは引退すべきだと思う。できればRobin Walkerに引き継いでほしい
      Valveのリリースサイクルはほとんど止まっており、金のなる木に頼っている。Gabeは62歳で、Neuralinkの競合のほうにより関心があるように見える
    • Gabeが最大の影響力を持っていると見る理由が分からない。Half-Lifeを作った初期チームの大半は去っているし、人々はSteamのために商品を買ったのではなく、ゲームを買ったのだ
    • Valveはすでに道を見失っていると思う。ただし彼らのエンシッティフィケーションは、ギャンブルに近いルートボックスという形だった
      TF2がOverwatchが出るずっと前から、西洋のゲームの中でルートボックスを導入した初期例だったことを人々は忘れている。Portal 2にもわざわざ協力モードにそれを組み込んだ。だからシングルプレイヤー体験のリリースをやめたのだ。Half-Life: Alyxは例外としても
      CS:GOが最悪だ。銃器スキンを賭けてギャンブルするサードパーティサイトがあり、子どもを露骨に狙っている。事実上CS:GOのプロシーン全体がこれにスポンサーされている
      スキン賭博サイトはValveが公式に承認したものではないが、阻止しようとする努力は実質的にしていない
  • そろそろプルリクエストを受け付け始めるのか気になる。ゲーム内で直してほしいバグがたくさんある。
    Medigun のビームがモデルと合わない問題には、もうほぼ10年イライラしている。

    • これは単に GitHub にダンプしただけで、内部リポジトリとはまったくつながっていない気がする。
      Half-Life のリポジトリも同じだった。25周年関連の作業が公開されたときも、1つの巨大なパッチとしてプッシュされていた。
    • GoldSrc のイシュートラッカーにあるバグも、何年も前からほとんど全部無視されている。
    • 本当に、本当に、本当にそうではない可能性が高い。それでも、誰かが Steam で動くゲームのコミュニティフォークを主導してくれたらいいのに。