Valve veröffentlicht den Spielcode von Team Fortress 2
(github.com/ValveSoftware)- Der Commit
Add Team Fortress 2 SDKinValveSoftware/source-sdk-2013ist eine umfangreiche Änderung, die das Team Fortress 2 SDK zum Repository Source SDK 2013 hinzufügt und dabei in großem Umfang Spiel-, Client- und Shader-Dateien umfasst - Im Dateibaum erscheinen TF-spezifische Konfigurationen und Projektdateien wie
game/mod_tf,src/game/client/tf,client_tf.vpcundgame_shader_generic_*_tf.vpc - Der Umfang des Client-Codes ist breit nach Spielsystemen gegliedert, etwa in HUD, Waffen, Projektile, Bot-NPCs, Halloween, Mann vs. Machine, PASS Time, Replay sowie
econ- und Shop-UI - Ebenfalls enthalten sind Steam-API-Binärdateien, VS-Code-Arbeitseinstellungen, Build-Skripte, Konfigurationen für VPC, Xcode und
make, Utility-DLLs des DirectX SDK sowie Shader-Build-Tools - Verifizierbar sind vor allem die Dateiliste und einige Teile des Diff auf der großen GitHub-Commit-Seite; tatsächliche Implementierungsänderungen in den einzelnen Dateien oder ob sie hinzugefügt bzw. geändert wurden, lassen sich meist schwer feststellen
Umfang des TF2-SDK-Commits
- Gegenstand ist der Commit
Add Team Fortress 2 SDKim öffentlichen RepositoryValveSoftware/source-sdk-2013- Der GitHub-Seitentitel lautet
Add Team Fortress 2 SDK · ValveSoftware/source-sdk-2013@0759e2e · GitHub - Angezeigt werden die Repository-Kennzahlen Fork 3k und Star 9.8k
- Der GitHub-Seitentitel lautet
- Im Root-Verzeichnis und im Bereich
gamesind die grundlegenden Dateien und Mod-Konfigurationen für die SDK-Auslieferung enthalten- Auf Root-Ebene sind Dateien wie
.gitattributes,.gitignore,CONTRIBUTING,LICENSE,README.mdundREADMEsichtbar - In
game/binliegen Steam-API-Binärdateien wielinux64/libsteam_api.soundx64/steam_api64.dll game/mod_tfenthält Konfigurations- und UI-Ressourcen wiegameinfo.txt,steam.inf, das TF2-Logo,resource/mod_tf_english.txtundMatchMakingDashboard.res
- Auf Root-Ebene sind Dateien wie
- Unter
src/game/client/tfist eine große Menge an Dateien aufgelistet, die wie Team-Fortress-2-Client-Code wirken- Spieler und Teams:
c_tf_player.cpp/.h,c_tf_team.cpp/.h,c_tf_playerresource.cpp/.h - Waffen und Projektile:
c_tf_projectile_arrow,c_tf_projectile_rocket,c_tf_stickybolt,c_tf_weapon_builder - Engineer-Gebäude:
c_obj_dispenser,c_obj_sentrygun,c_obj_teleporter,c_obj_sapper - Modi und Events: Dateien zu PASS Time, Halloween, Mann vs. Machine und PvE sind enthalten
- Spieler und Teams:
- Auch UI- und Live-Service-Elemente des Spiels sind breit in der Dateiliste vertreten
- Im Verzeichnis
econfinden sich Dateien für Inventar, Ausrüstung, Handel, Markt und Item-UI econ/storeenthält Dateien für die Shop-Oberfläche- HUD-Dateien sind in Bereiche wie Konto, Erfolge, Benachrichtigungen, Munition, Chat, Fadenkreuz, Schadensanzeige, Boss-Lebensleiste und Mann-vs.-Machine-Status aufgeteilt
- Im Verzeichnis
Shader und Build-Tools
- Die Liste der Shader-bezogenen Änderungen ist sehr umfangreich
- Enthalten sind viele Formate wie
.fxc,.psh,.vsh,.inc,.cpp,.h,.bat,.vpcund.pl - Varianten nach Shader-Profilen wie
ps11,ps14,ps20,ps20b,ps30,vs11,vs20undvs30wiederholen sich fortlaufend - Enthalten sind Dateien zu Wasser, Post-Processing, Bloom, Motion Blur, Cloak, Eye, Flashlight, Lightmapped Generic, HDR- und Tonemapping sowie Partikeleffekten
- Enthalten sind viele Formate wie
- Auch die Entwicklungs- und Build-Umgebung ist enthalten
src/.vscode/tasks.json,src/buildallprojectscreateallprojects,creategameprojects- Xcode-Einstellungen in
src/devtools, POSIX-Makefiles und Source-SDK-Make-Definitionen - In
src/devtools/binliegenShaderCompile2.exe,vpc.exe,vpc_linux,vpc_osxsowie Perl-, Python- und PowerShell-Skripte
Verifizierbare Grenzen und Diff-Notizen
- Die aktuelle Eingabe ist eine Zusammenfassung der Dateibaum- und teilweisen Diff-Informationen der Commit-Seite; in den meisten Fällen handelt es sich also um Listen geänderter Dateien und nicht um den tatsächlichen Codeinhalt
- Da es sich um eine große GitHub-Commit-Seite handelt, sind einige Inhalte standardmäßig ausgeblendet, mit dem Hinweis, dass sich verborgene Inhalte über das Suchfeld finden lassen
- Auf der Seite erscheint außerdem die Fehlermeldung „There was an error while loading. Please reload this page.”
- Das Diff von
.gitattributeswird mit 5 Ergänzungen und 11 Löschungen angezeigtREADME textwird entfernt undREADME.md textwird hinzugefügt*.dll binary,buildallprojects textundvpc binarywerden hinzugefügtmod_*_english.txt binarywird entfernt und*_english.txt binarywird hinzugefügt- Einige Einträge wie
creategameprojects,createallprojects,vpc_linuxundvpc_osxwerden als entfernt angezeigt
- Für den Commit werden 0 Kommentare angezeigt
Nicht abgedeckter Umfang
- Laut der Eingabenotiz wurden einige Original-Chunks wegen Längen- und Kostenlimits ausgelassen
- Diese Zusammenfassung bildet daher nur die Dateiliste des Commits und einige Diff-Ausschnitte aus dem Bereich der bereitgestellten Quellnotizen ab und deckt nicht sämtliche Dateien oder Änderungen des gesamten Commits ab
2 Kommentare
Valve ist wirklich cool.
Meinungen auf Hacker News
Gute Nachrichten fürs Modding, aber man darf nicht durcheinanderbringen, dass das weiterhin TF2-spezifischer Code ist, der auf der nach wie vor proprietären Source Engine aufsetzt.
Man kann TF2 damit zum Beispiel nicht auf neue Plattformen portieren – das ginge höchstens, wenn man Source neu implementiert oder es irgendwie mit einer der geleakten Source-Codebasen zusammenzwingt und dann die rechtlichen Folgen in Kauf nimmt.
Es gibt eine aktive Community, die die Schwächen des Source-Workflows gut kennt; wenn Valve ihn wie Carmack bei id tech unter GPL veröffentlichen würde, könnte das eine Explosion kreativer Indie-Projekte auslösen. Man wäre nicht länger an undurchsichtige Verträge gebunden.
Ob sie es irgendwann tun? Vielleicht gibt es Lizenzprobleme, weil sie nicht alle Rechte besitzen und es daher nicht einfach als Open Source freigeben können, oder es steckt noch genug geheime Technologie darin, die sie behalten wollen.
https://www.youtube.com/watch?v=09CvpQrnTEY
Aus Sicht von jemandem, der serverseitige TF2-Mods gebaut hat, ist das wirklich fantastisch. Ich habe unzählige Stunden damit verbracht, Binaries in IDA zu analysieren; jetzt muss ich einfach nur GitHub öffnen.
Die Community wird neue Funktionen und Bugfixes viel schneller umsetzen können. Eigentlich hätte das schon längst passieren sollen: Der TF2-Quellcode ist bereits zweimal geleakt, und eine Gruppe hat mit einer früheren Engine-Version sogar einen Klon des Spiels gebaut. Die Unterstützung der Community für dieses Spiel ist immer noch enorm.
Ich hoffe, dass das gute Nachrichten für TF2 Classic sind.
Laut einer Ankündigung im TF2C-Discord kann es wegen des großen SDK-Updates und der Veröffentlichung des Team-Fortress-2-Codes eine Weile dauern, bis TF2 Classic wieder lauffähig ist. Die Portierung und ein möglicher Steam-Release werden bereits vorbereitet, und das Ganze soll nun legal vorangetrieben werden können. Wer vorerst weiterspielen möchte, muss Source SDK Base 2013 Multiplayer auf den Beta-Branch
previous2021umstellen, in dem die alten SDK-Dateien noch vorhanden sind.Es sieht so aus, als wäre der Name des Spiels in Frog Fortress 2 geändert worden.
https://github.com/ValveSoftware/source-sdk-2013/blob/0759e2...
Frösche und Grafikprogrammierung sind gute Freunde.
Offizieller Blogpost: https://www.teamfortress.com/post.php?id=238809
Enthält auch Links zu den jüngsten Updates anderer Spiele mit Source Engine.
Wow … wow, wow. Ich hätte nicht gedacht, das auf HN zu sehen. Ich habe lange darauf gehofft, aber wenn ich Valve wäre, hätte ich schon viel früher ein „letztes“ Jubiläums-Content-Update veröffentlicht, das Spiel auf Vulkan portiert und die Codebasis als Open Source freigegeben, während Dinge wie Item-Server weiter an Valve-Server gebunden bleiben.
Ich weiß nicht, ob das der Anfang vom Ende von TF2 ist oder das Ende des Anfangs. Leaks gab es schon früher, aber das hier ist eine riesige Nachricht.
Das TF2-Team dürfte inzwischen höchstens noch aus einem Dutzend Leuten bestehen, und das Spiel ist fast 18 Jahre alt; es ist an der Zeit, die weitere Entwicklung der externen Community zu überlassen.
Valve führt damit eine Tradition fort, die nun seit über 25 Jahren besteht. Leute bauen und spielen immer noch neue Doom-Maps. Wenn die Geschichte ein Maßstab ist, könnten wir TF2 in irgendeiner Form noch in den 2050ern und darüber hinaus spielen.
Dass sie das getan haben, noch bevor sie es für 64-Bit-Macs neu kompiliert haben, sagt einiges aus. Valve sieht Apple offenbar nicht gerade als angenehmen Geschäftspartner
Wenn man sieht, wie Apple Spieleentwickler in den App Store einsperren will, ist das verständlich
Dass Apple stolz Grafik auf dem Niveau eines mittelmäßigen Tomb Raider 2 vorführt, macht Spieleentwicklern, die nicht von Apples PR-Kampagne unterstützt werden, auch nicht gerade Hoffnung. Außerdem ist es gemessen an der Spielerzahl eine Plattform, die sogar kleiner ist als Linux
Solange man nicht sicher ist, dass eine ordentliche Spielerbasis entsteht, ergibt es aus Geschäftssicht für Spielefirmen wenig Sinn, für den Mac zu optimieren. Nutzer, die sich einen Mac leisten können, können sich wahrscheinlich auch eine Konsole leisten
Mit den Wrappern und Workarounds, die man unter Linux fürs Gaming nutzt, kann man Spiele irgendwie zum Laufen bringen, aber auf dem Mac sind die Tools weniger ausgereift, sodass man direkt optimieren muss. Linux-Gaming hat schon viele Kompatibilitätsprobleme mit DRM/Anti-Cheat; mit weniger ausgereiften Tools wird das nur schlimmer
Apple scheint auch wenig Interesse an Abwärtskompatibilität zu haben. 32-Bit wurde ohne erkennbaren Grund außer „wir wollen die Kompatibilität nicht pflegen“ abgeschafft, und niemand weiß, wie lange die aktuellen Ersatz-APIs bestehen bleiben. Linux hat ähnliche Probleme, weshalb der Standardweg fürs Gaming unter Linux darin besteht, es in einer emulierten Windows-Umgebung auszuführen
Spielefirmen werden ihre Spiele wohl eher für Snapdragon neu kompilieren als für den Mac. Bis man 32-Bit-x86-Bibliotheken ohne Emulation auf ARM zum Laufen bringt, wird Apple seine APIs und Anforderungen wieder ein paar Mal geändert haben, also gibt es keinen Grund, sich das anzutun
Man macht sich über Balmers „devs devs devs“ lustig, aber er hatte damit ziemlich recht. Microsoft gab viel Geld aus, um Entwickler anzuziehen, und bekam dadurch eine monopolartige Stellung bei PC-Spielen
Zumindest in dem Sinne, dass es x86-64 ist, das Apple Silicon über Rosetta 2 besser unterstützt, scheint es zu kommen
Mehr, als ich gedacht hätte, aber ohne kompatible Spiele gibt es auch kaum einen Grund, Steam zu installieren. Dass Apple erst seit Kurzem anfängt, spielefreundlicher zu werden, macht es nicht überraschend, dass man versucht, ein 20 Jahre altes Spiel zu portieren
Eine Aussage von Gabe aus dem Jahr 2007 kommt dem noch am nächsten. Er sagte, wenn man sich mit Apple treffe, sagten die Leute dort: „Spiele sind wirklich wichtig, wir müssen etwas tun“, und wenn Valve dann sage: „Wenn ihr diese drei Dinge tut, wird es besser“, nickten sie, und dann sehe man sie nie wieder. Wenn sich anschließend intern bei Apple jemand ändere, beginne derselbe Zyklus von vorn
In der Diff-Historie gibt es auch kleine HL3-Dateien: https://github.com/ValveSoftware/source-sdk-2013/commit/0759...
Valve gewinnt einfach weiter
Ich fürchte den Tag, an dem Gaben stirbt oder zurücktritt. Ich hoffe, Valve findet einen großartigen Nachfolger, aber es ist nicht selten, dass ein Unternehmen nach dem Wegfall der Gründergeneration die Orientierung verliert
Trotzdem bin ich ihnen für immer dankbar, dass ich dank Steam Windows-Spiele unter Linux schmerzfrei nutzen kann und Microsoft im Privatleben nicht wieder anfassen muss. Als Spielevertrieb sind sie großartig, und Spielevertrieb ist auch das, was Valve am besten kann
Valves Release-Zyklus ist fast zum Stillstand gekommen, und sie stützen sich auf ihre Cashcows. Gabe ist 62 und scheint sich mehr für einen Neuralink-Konkurrenten zu interessieren
Die Leute vergessen, dass TF2 lange vor Overwatch eines der frühen westlichen Spiele mit Lootboxen war. Selbst in Portal 2 haben sie das unnötigerweise in den Koop-Modus gepackt. Deshalb haben sie aufgehört, Singleplayer-Erlebnisse zu veröffentlichen. Half-Life: Alyx einmal ausgenommen
CS:GO ist am schlimmsten. Es gibt Drittanbieter-Websites, auf denen mit Waffenskins gezockt wird, und sie zielen unverhohlen auf Kinder ab. Praktisch die gesamte CS:GO-Pro-Szene wird davon gesponsert
Skin-Glücksspielseiten sind zwar nicht offiziell von Valve genehmigt, aber Valve unternimmt praktisch nichts, um sie zu stoppen
Ich frage mich, ob sie jetzt anfangen werden, Pull Requests anzunehmen. Es gibt viele Bugs im Spiel, die ich gern behoben sähe
Dass der Medigun-Strahl nicht zum Modell passt, nervt mich seit fast zehn Jahren
Beim Half-Life-Repository war es genauso. Auch als die Arbeiten zum 25-jährigen Jubiläum veröffentlicht wurden, wurden sie als ein einziger riesiger Patch gepusht