Valve publie le code du jeu Team Fortress 2
(github.com/ValveSoftware)- Le commit
Add Team Fortress 2 SDKdeValveSoftware/source-sdk-2013est un changement majeur qui ajoute le Team Fortress 2 SDK au dépôt Source SDK 2013, avec une large inclusion de fichiers de jeu, de client et de shaders - L’arborescence des fichiers fait apparaître des configurations et fichiers de projet propres à TF, comme
game/mod_tf,src/game/client/tf,client_tf.vpcetgame_shader_generic_*_tf.vpc - Le périmètre du code client est largement découpé par systèmes de jeu : HUD, armes, projectiles, PNJ bots, Halloween, Mann vs. Machine, PASS Time, replays, interface econ et boutique
- Des binaires Steam API, des configurations de tâches VS Code, des scripts de build, des configurations VPC, Xcode et make, des DLL utilitaires DirectX SDK et des outils de build de shaders sont également inclus
- Les éléments vérifiables proviennent surtout de la liste de fichiers et de certains diffs sur la page du gros commit GitHub ; il est donc difficile, dans la plupart des cas, de confirmer les changements d’implémentation réels, ou si chaque fichier a été ajouté ou modifié
Périmètre inclus dans le commit du TF2 SDK
- La cible est le commit
Add Team Fortress 2 SDKdu dépôt publicValveSoftware/source-sdk-2013- Le titre de la page GitHub est
Add Team Fortress 2 SDK · ValveSoftware/source-sdk-2013@0759e2e · GitHub - Les métriques affichées du dépôt sont 3k forks et 9,8k stars
- Le titre de la page GitHub est
- La racine et la partie
gameincluent les fichiers de base et la configuration de mod nécessaires à la distribution du SDK- Au niveau racine, on voit les fichiers
.gitattributes,.gitignore,CONTRIBUTING,LICENSE,README.mdetREADME game/bininclut des binaires Steam API commelinux64/libsteam_api.soetx64/steam_api64.dllgame/mod_tfcontient des ressources de configuration et d’UI commegameinfo.txt,steam.inf, le logo TF2,resource/mod_tf_english.txtetMatchMakingDashboard.res
- Au niveau racine, on voit les fichiers
- Sous
src/game/client/tf, un grand nombre de fichiers semblant correspondre au code client de Team Fortress 2 sont listés- Joueurs et équipes :
c_tf_player.cpp/.h,c_tf_team.cpp/.h,c_tf_playerresource.cpp/.h - Armes et projectiles :
c_tf_projectile_arrow,c_tf_projectile_rocket,c_tf_stickybolt,c_tf_weapon_builder - Bâtiments de l’Engineer :
c_obj_dispenser,c_obj_sentrygun,c_obj_teleporter,c_obj_sapper - Modes et événements : des fichiers liés à PASS Time, Halloween, Mann vs. Machine et au PvE sont inclus
- Joueurs et équipes :
- L’UI et les éléments de jeu-service apparaissent aussi largement dans la liste des fichiers
- Le répertoire
econcontient des fichiers d’UI pour l’inventaire, l’équipement, les échanges, le marché et les objets econ/storecontient des fichiers liés aux écrans de boutique- Les fichiers HUD sont répartis entre compte, succès, notifications, munitions, chat, réticule, indicateurs de dégâts, santé des boss, état Mann vs. Machine, etc.
- Le répertoire
Shaders et outils de build
- La liste des changements liés aux shaders est très volumineuse
- Plusieurs formats sont inclus :
.fxc,.psh,.vsh,.inc,.cpp,.h,.bat,.vpc,.pl, etc. - Des variantes par profil de shader reviennent régulièrement, comme
ps11,ps14,ps20,ps20b,ps30,vs11,vs20etvs30 - Des fichiers liés à l’eau, au post-traitement, au bloom, au motion blur, au cloak, aux yeux, à la flashlight, au lightmapped generic, au HDR et tone mapping, ainsi qu’aux particles, sont inclus
- Plusieurs formats sont inclus :
- L’environnement de développement et de build est également fourni
src/.vscode/tasks.json,src/buildallprojectscreateallprojects,creategameprojects- Des configurations Xcode, makefile POSIX et définitions make Source SDK dans
src/devtools - Dans
src/devtools/bin,ShaderCompile2.exe,vpc.exe,vpc_linux,vpc_osx, ainsi que des scripts Perl, Python et PowerShell
Limites vérifiables et notes de diff
- L’entrée actuelle résume l’arborescence des fichiers et certaines informations de diff de la page du commit ; dans la plupart des cas, il s’agit d’une liste de fichiers modifiés plutôt que du contenu réel du code
- Comme il s’agit d’une page GitHub pour un gros commit, certains contenus sont masqués par défaut, avec une indication suggérant d’utiliser la zone de recherche pour trouver les contenus cachés
- La page affiche aussi le message d’erreur « There was an error while loading. Please reload this page. »
- Le diff de
.gitattributesindique 5 ajouts et 11 suppressionsREADME textest supprimé etREADME.md textest ajouté*.dll binary,buildallprojects textetvpc binarysont ajoutésmod_*_english.txt binaryest supprimé et*_english.txt binaryest ajouté- Certains éléments comme
creategameprojects,createallprojects,vpc_linuxetvpc_osxsont indiqués comme supprimés
- Les commentaires du commit sont affichés à 0
Périmètre non reflété
- Selon les notes d’entrée, certains fragments du texte source ont été omis en raison de limites de longueur et de coût
- Ce résumé ne reflète donc que la liste des fichiers du commit et certains diffs dans le périmètre des notes source fournies, et ne couvre pas tous les fichiers ni toutes les modifications du commit complet
2 commentaires
Valve est vraiment classe, quand même.
Avis de Hacker News
C’est une bonne nouvelle pour le modding, mais il ne faut pas confondre : il s’agit toujours de code spécifique à TF2 posé sur le moteur Source, qui reste fermé
Par exemple, cela ne permettra pas de porter TF2 sur une nouvelle plateforme ; il faudrait au minimum réimplémenter Source, ou le faire correspondre de force à l’une des bases de code Source qui ont fuité, avec les retombées juridiques que cela implique
Il existe une communauté active qui connaît bien les défauts du workflow Source ; une publication sous GPL, comme Carmack l’a fait pour id tech, pourrait provoquer une explosion de projets créatifs indés. Ils ne seraient plus liés à des contrats opaques
Le publieront-ils un jour ? Il peut y avoir des problèmes de licences qui les empêchent de le rendre facilement open source parce qu’ils n’en détiennent pas tous les droits, ou bien il reste peut-être encore beaucoup de technologies secrètes qu’ils veulent conserver
https://www.youtube.com/watch?v=09CvpQrnTEY
Du point de vue de quelqu’un qui faisait des mods TF2 côté serveur, c’est absolument fantastique. J’ai passé un nombre incalculable d’heures à analyser les binaires avec IDA ; maintenant, il suffit d’ouvrir GitHub
La communauté pourra créer de nouvelles fonctionnalités et corriger des bugs beaucoup plus vite. En réalité, cela aurait dû arriver depuis longtemps : le code source de TF2 a déjà fuité deux fois, et un groupe avait même créé un clone du jeu avec une version plus ancienne du moteur. Le soutien de la communauté pour ce jeu reste énorme
J’espère que c’est une bonne nouvelle pour TF2 Classic
D’après une annonce sur le Discord de TF2C, il se peut que TF2 Classic ne puisse pas être lancé pendant un certain temps en raison de la grosse mise à jour du SDK et de la publication du code de Team Fortress 2. Ils disent préparer déjà le portage et une éventuelle sortie sur Steam, et que cela peut désormais se faire légalement. Pour continuer à jouer pour l’instant, il faut basculer Source SDK Base 2013 Multiplayer sur la branche bêta
previous2021, où se trouvent encore les anciens fichiers du SDKOn dirait que le jeu a été renommé Frog Fortress 2
https://github.com/ValveSoftware/source-sdk-2013/blob/0759e2...
Les grenouilles et la programmation graphique sont de bonnes amies
Billet officiel du blog : https://www.teamfortress.com/post.php?id=238809
Il inclut aussi des liens vers les mises à jour récentes d’autres jeux utilisant le moteur Source
Wow… wow, wow. Je ne m’attendais pas à voir ça sur HN. Je l’espérais depuis longtemps, mais si j’avais été Valve, j’aurais sorti une mise à jour de contenu commémorative « finale » bien plus tôt, porté le jeu sur Vulkan, puis publié la base de code en open source tout en gardant des choses comme les serveurs d’objets liées aux serveurs de Valve
Je ne sais pas si c’est le début de la fin de TF2, ou la fin du commencement. Il y avait déjà eu des fuites, mais cette fois c’est énorme
L’équipe TF2 ne compte probablement plus qu’une dizaine de personnes tout au plus, et le jeu a presque 18 ans ; il est temps de confier le développement continu à la communauté extérieure
Valve s’inscrit donc dans une tradition qui dure depuis plus de 25 ans. Des gens créent et jouent encore de nouvelles cartes Doom. Si l’histoire sert de référence, il se pourrait qu’on joue encore à TF2 sous une forme ou une autre dans les années 2050 et au-delà
Le fait qu’ils aient fait ça avant même de recompiler pour les Mac 64 bits en dit long. Valve ne voit manifestement pas Apple comme un partenaire avec qui il est facile de faire des affaires
Ça se comprend quand on voit Apple essayer d’enfermer les développeurs de jeux dans l’App Store
Le fait qu’Apple ait fièrement présenté des graphismes de Tomb Raider 2 de milieu de gamme n’a pas de quoi donner beaucoup d’espoir aux développeurs de jeux qui ne bénéficient pas du soutien des campagnes marketing d’Apple. Et en plus, c’est une plateforme plus petite que Linux en nombre de joueurs
À moins d’être sûr de pouvoir constituer une base de joueurs correcte, optimiser pour Mac n’a pas vraiment de sens commercial pour un studio de jeux. Les utilisateurs qui peuvent s’acheter un Mac peuvent aussi probablement s’acheter une console
On peut toujours forcer les jeux à tourner avec les wrappers et contournements utilisés pour jouer sous Linux, mais sur Mac les outils sont moins matures, ce qui impose d’optimiser directement. Le jeu sous Linux a déjà beaucoup de problèmes de compatibilité avec les DRM et les systèmes anti-triche ; avec des outils moins matures, ce ne peut être que pire
Apple ne semble pas non plus très intéressée par la rétrocompatibilité. Ils ont supprimé le 32 bits sans raison évidente autre que « nous n’avons pas envie de maintenir la compatibilité », et on ne sait pas combien de temps les API de remplacement actuelles seront maintenues. Linux a aussi des problèmes similaires, si bien que la façon par défaut de jouer sous Linux consiste plutôt à lancer les jeux dans un environnement Windows émulé
Les studios de jeux recompileront probablement leurs jeux pour Snapdragon avant de le faire pour Mac. D’ici à ce qu’on arrive à faire tourner des bibliothèques x86 32 bits sur ARM sans émulation, Apple aura encore changé plusieurs fois ses API et ses exigences, donc il n’y aura pas vraiment de raison de s’y mettre
On se moque du « devs devs devs » de Ballmer, mais il avait en grande partie raison. Microsoft a dépensé énormément d’argent pour attirer les développeurs, et a ainsi obtenu une position dominante dans le jeu PC
Cela semble donc arriver, au moins au sens où Apple Silicon prend mieux en charge le x86-64 via Rosetta 2
C’est plus que ce que j’aurais pensé, mais sans jeux compatibles, il n’y a presque aucune raison d’installer Steam. Apple n’a commencé à devenir plus accueillante envers le jeu que récemment, donc il n’est pas surprenant qu’ils essaient de porter un jeu vieux de 20 ans
Une déclaration de Gabe en 2007 s’en rapproche. Il disait que lorsqu’ils rencontraient Apple, leurs interlocuteurs disaient que « les jeux sont vraiment importants, il faut faire quelque chose », puis Valve répondait « alors si vous faites ces trois choses, la situation s’améliorera », Apple disait d’accord, puis disparaissait. Ensuite, quand quelqu’un changeait chez Apple, le même cycle recommençait
Il y a aussi de petits fichiers HL3 dans le diff : https://github.com/ValveSoftware/source-sdk-2013/commit/0759...
Valve continue de gagner
Je redoute le jour où Gaben mourra ou se retirera. J’espère que Valve trouvera un excellent successeur, mais il n’est pas rare qu’une entreprise perde le nord après la disparition de sa génération fondatrice
Cela dit, je serai éternellement reconnaissant envers Steam de me permettre de lancer des jeux Windows sous Linux sans douleur, au point de ne plus avoir à traiter avec Microsoft dans ma vie personnelle. Comme distributeur de jeux, ils sont excellents, et c’est ce que Valve fait le mieux
Le rythme de sortie de Valve s’est quasiment arrêté, et l’entreprise s’appuie sur sa vache à lait. Gabe a 62 ans et semble davantage intéressé par un concurrent de Neuralink
Les gens oublient que TF2 a été l’un des premiers exemples de jeux occidentaux à introduire les loot boxes, bien avant la sortie d’Overwatch. Portal 2 les a aussi intégrées de force au mode coop. C’est pour ça qu’ils ont arrêté de sortir des expériences solo. Half-Life: Alyx étant une exception
CS:GO est le pire. Il existe des sites tiers où l’on parie avec des skins d’armes, et ils ciblent ouvertement les enfants. En pratique, toute la scène pro de CS:GO est sponsorisée par eux
Les sites de paris sur skins ne sont pas officiellement approuvés par Valve, mais l’entreprise ne fait pratiquement aucun effort pour les bloquer
Je me demande s’ils vont maintenant commencer à accepter les pull requests. Il y a beaucoup de bugs que j’aimerais voir corrigés dans le jeu
Ça fait presque 10 ans que le problème du rayon du Medigun qui ne s’aligne pas avec le modèle m’agace
C’était pareil pour le dépôt de Half-Life. Même quand les travaux liés au 25e anniversaire ont été rendus publics, ils ont été poussés sous forme d’un énorme patch unique