2 puntos por GN⁺ 2025-02-19 | 2 comentarios | Compartir por WhatsApp
  • El commit Add Team Fortress 2 SDK de ValveSoftware/source-sdk-2013 es un cambio grande que agrega el Team Fortress 2 SDK al repositorio Source SDK 2013, con una amplia inclusión de archivos de juego, cliente y shaders
  • En el árbol de archivos aparecen configuraciones y archivos de proyecto específicos de TF, como game/mod_tf, src/game/client/tf, client_tf.vpc y game_shader_generic_*_tf.vpc
  • El alcance del código del cliente está dividido ampliamente por sistemas de juego, como HUD, armas, proyectiles, NPC bots, Halloween, Mann vs. Machine, PASS Time, repeticiones, econ e interfaz de tienda
  • También se incluyen binarios de Steam API, configuración de tareas de VS Code, scripts de compilación, configuraciones VPC, Xcode y make, DLL de utilidades de DirectX SDK, y herramientas de compilación de shaders
  • Lo que se puede verificar se centra principalmente en la lista de archivos y algunos diffs de la página del commit grande en GitHub, por lo que en la mayoría de los casos es difícil confirmar los cambios reales de implementación o si cada archivo fue agregado o modificado

Alcance incluido en el commit del TF2 SDK

  • El objetivo es el commit Add Team Fortress 2 SDK del repositorio público ValveSoftware/source-sdk-2013
    • El título de la página de GitHub es Add Team Fortress 2 SDK · ValveSoftware/source-sdk-2013@0759e2e · GitHub
    • Las métricas mostradas del repositorio son 3k forks y 9.8k stars
  • En la raíz y en la parte de game se incluyen archivos básicos y configuraciones de mod necesarios para distribuir el SDK
    • A nivel raíz se ven archivos como .gitattributes, .gitignore, CONTRIBUTING, LICENSE, README.md y README
    • game/bin incluye binarios de Steam API como linux64/libsteam_api.so y x64/steam_api64.dll
    • game/mod_tf contiene recursos de configuración e interfaz como gameinfo.txt, steam.inf, el logo de TF2, resource/mod_tf_english.txt y MatchMakingDashboard.res
  • Bajo src/game/client/tf aparece una gran cantidad de archivos que parecen ser código de cliente de Team Fortress 2
    • Jugador y equipos: c_tf_player.cpp/.h, c_tf_team.cpp/.h, c_tf_playerresource.cpp/.h
    • Armas y proyectiles: c_tf_projectile_arrow, c_tf_projectile_rocket, c_tf_stickybolt, c_tf_weapon_builder
    • Construcciones del Engineer: c_obj_dispenser, c_obj_sentrygun, c_obj_teleporter, c_obj_sapper
    • Modos y eventos: se incluyen archivos relacionados con PASS Time, Halloween, Mann vs. Machine y PvE
  • La lista de archivos también incluye ampliamente elementos de interfaz y de juego como servicio
    • El directorio econ contiene archivos de inventario, equipamiento, intercambios, mercado e interfaz de ítems
    • econ/store contiene archivos relacionados con la pantalla de tienda
    • Los archivos de HUD se dividen en cuenta, logros, notificaciones, munición, chat, mira, indicador de daño, vida de jefes, estado de Mann vs. Machine, entre otros

Shaders y herramientas de compilación

  • La lista de cambios relacionados con shaders es muy grande
    • Incluye diversos formatos como .fxc, .psh, .vsh, .inc, .cpp, .h, .bat, .vpc y .pl
    • Se repiten variantes por perfil de shader como ps11, ps14, ps20, ps20b, ps30, vs11, vs20 y vs30
    • Incluye archivos relacionados con agua, posprocesamiento, bloom, motion blur, cloak, ojos, linterna, lightmapped generic, HDR y mapeo de tonos, y partículas
  • También se incluye el entorno de desarrollo y compilación
    • src/.vscode/tasks.json, src/buildallprojects
    • createallprojects, creategameprojects
    • Configuraciones de Xcode, makefile POSIX y definiciones make de Source SDK en src/devtools
    • ShaderCompile2.exe, vpc.exe, vpc_linux, vpc_osx y scripts Perl/Python/PowerShell en src/devtools/bin

Límites verificables y notas de diff

  • La entrada actual resume el árbol de archivos y parte de la información de diff de la página del commit; en su mayoría no es contenido real de código, sino una lista de archivos modificados
  • Al ser una página de commit grande en GitHub, parte del contenido está oculto de forma predeterminada, y hay un aviso de que se puede usar el cuadro de búsqueda para encontrar contenido oculto
  • La página también muestra el mensaje de error “There was an error while loading. Please reload this page.”
  • El diff de .gitattributes aparece con 5 adiciones y 11 eliminaciones
    • Se elimina README text y se agrega README.md text
    • Se agregan *.dll binary, buildallprojects text y vpc binary
    • Se elimina mod_*_english.txt binary y se agrega *_english.txt binary
    • Algunas entradas como creategameprojects, createallprojects, vpc_linux y vpc_osx aparecen como eliminadas
  • Los comentarios del commit aparecen como 0

Alcance no reflejado

  • Según las notas de entrada, algunos fragmentos del original se omitieron por límites de longitud y costo
  • Por lo tanto, este resumen refleja solo la lista de archivos del commit y algunos diffs dentro del alcance de las notas fuente proporcionadas, y no abarca todos los archivos ni cambios del commit completo

2 comentarios

 
honglu 2025-02-19

La verdad, Valve sí es genial.

 
GN⁺ 2025-02-19
Opiniones en Hacker News
  • Es una buena noticia para el modding, pero no hay que confundirse: sigue siendo código específico de TF2 montado sobre el motor Source, que sigue siendo cerrado.
    Por ejemplo, con esto no se puede portar TF2 a una nueva plataforma; para hacerlo, como mínimo habría que reimplementar Source o hacer que encaje a la fuerza con alguna de las bases de código de Source filtradas, y aceptar las consecuencias legales.

    • Es difícil entender la postura de Valve de mantener Source cerrado. Tampoco es un motor particularmente atractivo para trabajar hoy, y ya existen al menos tres alternativas open source importantes, mucho más potentes y fáciles de manejar, como O3DE, Godot y Wicked.
      Como hay una comunidad activa que conoce bien las desventajas del flujo de trabajo de Source, publicarlo bajo GPL, como hizo Carmack con id tech, podría disparar una explosión de proyectos creativos indie. Ya no tendrían que estar atados a contratos opacos.
    • Ya hubo filtraciones, pasaron más de 10 años desde el último juego grande que usó Source 1, y en Source 2 seguramente se reescribió gran parte del código de renderizado para adaptarse a los nuevos avances en gráficos de juegos, así que me pregunto si todavía hay alguna razón para mantenerlo cerrado.
      ¿Lo publicarán algún día? Puede que haya problemas de licencias que les impidan liberarlo fácilmente como open source porque no tienen todos los derechos, o quizá todavía quede mucha tecnología secreta que vale la pena conservar.
    • Qué lástima, esperaba que con esto TF2 volviera a Mac. Desde que Apple eliminó el soporte de 32 bits, no hemos podido hacer una LAN party decente en la oficina.
    • Todavía me confunde que Source siga siendo cerrado aunque Valve pasó a Source 2 hace más de 10 años. Puede ser que algunos componentes básicos se superpongan, pero parece que consideran aceptable publicar el código fuente del juego.
    • ¡Buenas noticias! Alguien ya logró hacer ingeniería inversa del motor Source para TF2 hasta cierto punto.
      https://www.youtube.com/watch?v=09CvpQrnTEY
  • Como alguien que hacía mods de TF2 del lado del servidor, esto es fantástico. Pasé incontables horas analizando binarios con IDA, y ahora basta con abrir GitHub.
    La comunidad podrá crear nuevas funciones y correcciones de bugs mucho más rápido. En realidad, esto tendría que haber pasado hace tiempo: el código fuente de TF2 ya se filtró dos veces, y un grupo incluso hizo un clon del juego con una versión anterior del motor. El apoyo de la comunidad a este juego sigue siendo enorme.

  • Ojalá esto sea una buena noticia para TF2 Classic.
    Según un anuncio en el Discord de TF2C, debido a la gran actualización del SDK y a la publicación del código de Team Fortress 2, puede que TF2 Classic no se pueda ejecutar por un tiempo. Dicen que ya están preparando el trabajo de port y un posible lanzamiento en Steam, y que ahora pueden impulsarlo legalmente. Para seguir jugando por ahora, hay que cambiar Source SDK Base 2013 Multiplayer a la rama beta previous2021, donde permanecen los archivos anteriores del SDK.

    • Como dejaron explícito que las obras derivadas del juego original están permitidas y que esas obras pueden lanzarse como juegos nuevos en Steam, se puede decir que el camino para TF2 Classic quedó abierto.
    • ¿Qué es TF2 Classic?
  • Parece que el juego cambió de nombre a Frog Fortress 2.
    https://github.com/ValveSoftware/source-sdk-2013/blob/0759e2...

    • Parece que lo hicieron para distinguirlo del TF2 oficial si compilas e instalas el código sin cambiarle el nombre.
    • Parece una especie de broma interna. Basta con ver quién hizo el commit.
      Las ranas y la programación gráfica son buenas amigas.
  • Publicación oficial del blog: https://www.teamfortress.com/post.php?id=238809
    También incluye enlaces a actualizaciones recientes de otros juegos con el motor Source.

  • Wow… wow, guau. No pensé que vería esto en HN. Lo esperaba desde hace mucho, pero si yo fuera Valve, hace tiempo habría lanzado una “última” actualización conmemorativa de contenido, habría portado el juego a Vulkan y habría publicado la base de código como open source, manteniendo cosas como los servidores de ítems atadas a los servidores de Valve.
    No sé si esto es el principio del fin de TF2 o el fin del principio. Ya hubo filtraciones antes, pero esto es una noticia enorme.

    • Para ser el principio del fin, ya llevaba años en estado de final. Ahora se lo están pasando a la comunidad, y es lo correcto.
      Es probable que el equipo de TF2 ahora tenga, como mucho, una docena larga de personas, y el juego ya tiene casi 18 años, así que llegó el momento de dejar el desarrollo continuo en manos de la comunidad externa.
    • En los 90, id ganó dinero durante años con Doom y luego publicó el código fuente; hizo lo mismo con Quake. Una de las razones por las que hoy existen empresas como Valve es que sus primeros juegos usaron motores modificados de Doom y Quake.
      Ahora Valve continúa una tradición de más de 25 años. La gente todavía crea y juega mapas nuevos de Doom. Si la historia sirve de referencia, quizá sigamos jugando TF2 de alguna forma incluso después de la década de 2050.
    • Eso de “Woah... woah WOAH”, ya veo qué intentaba hacer.
    • Me pregunto por qué no esperabas verlo en HN.
  • El hecho de que hayan hecho esto incluso antes de recompilarlo para Mac de 64 bits dice mucho. Valve claramente no parece ver a Apple como un buen socio para hacer negocios
    Se entiende si uno ve cómo Apple intenta encerrar a los desarrolladores de juegos en la App Store

    • Hacer juegos para Mac parece un gran desafío. Combina una arquitectura de CPU relativamente poco estándar, una API gráfica propietaria, pocos dispositivos, pantallas integradas con una resolución excesivamente alta y GPU que, en el mejor de los casos, son “suficientes”
      Que Apple haya presentado con orgullo gráficos de Tomb Raider 2 de nivel medio tampoco da muchas expectativas a los desarrolladores de juegos que no cuentan con el apoyo de las campañas de marketing de Apple. Además, es una plataforma más pequeña que Linux en cantidad de jugadores
      A menos que estén seguros de que habrá una base de jugadores decente, para una empresa de juegos no parece tener mucho sentido comercial optimizar para Mac. Los usuarios que pueden comprar una Mac probablemente también pueden comprar una consola
      Con los wrappers y soluciones alternativas que se usan para jugar en Linux se puede forzar la ejecución de juegos, pero en Mac las herramientas son menos maduras y hay que optimizar directamente. Los juegos en Linux ya tienen muchos problemas de compatibilidad con DRM/anticheat, y usar herramientas menos maduras solo lo empeora
      Apple tampoco parece tener mucho interés en la compatibilidad hacia atrás. Eliminó los 32 bits sin una razón clara más allá de “no quiero mantener compatibilidad”, y no se sabe cuánto tiempo mantendrá las API alternativas actuales. Linux también tiene problemas parecidos, por eso la forma básica de jugar en Linux es ejecutar los juegos en un entorno Windows emulado
      Creo que las empresas de juegos recompilarán sus juegos para Snapdragon antes que para Mac. Para cuando logren hacer que bibliotecas x86 de 32 bits corran en ARM sin emulación, Apple ya habrá cambiado sus API y requisitos unas cuantas veces más, así que no valdrá la pena
    • Si uno mira entrevistas de la industria de los videojuegos, Apple históricamente fue bastante hostil a la hora de colaborar con empresas de juegos, y parece haberse suavizado un poco después de la App Store del iPhone
      Se burlan del “devs devs devs” de Balmer, pero en buena medida tenía razón. Microsoft gastó mucho dinero en atraer desarrolladores, y como resultado obtuvo una posición dominante en los juegos de PC
    • Según el texto original, se anunció en el sitio web oficial de TF2, y https://www.teamfortress.com/post.php?id=238809 dice que se agregarán muchas mejoras a juegos antiguos multijugador con el motor Source como TF2, DoD:S, HL2:DM, CS:S y HLDM:S, incluyendo soporte para binarios de 64 bits, HUD/UI escalable y correcciones de predicción
      Al menos parece que llegará en el sentido de que Apple Silicon soporta mejor x86-64 mediante Rosetta 2
    • Los usuarios de Mac son el 1.4%, un 25% menos que Linux
      Es más de lo que pensaba, pero si no hay juegos compatibles, casi no hay razón para instalar Steam. Apple empezó a volverse más amigable con los juegos recién hace poco, así que no sorprende que intenten portar un juego de hace 20 años
    • Había un video que explicaba por qué los juegos de Valve no se portaron a Macintosh, pero no lo encuentro. La idea central era que Apple no quería que sus dispositivos se usaran para jugar, y después de echar a perder el trabajo de porting rechazó publicar el juego
      Lo más parecido es una declaración de Gabe de 2007. Dijo que cuando se reunían con Apple, la gente de allá decía “los juegos son realmente importantes, tenemos que hacer algo”, y cuando Valve respondía “entonces, si hacen estas tres cosas, mejorará”, decían que sí y luego no volvían a aparecer. Después, cuando cambiaba alguien dentro de Apple, el mismo ciclo volvía a empezar
  • En el historial de cambios también hay pequeños archivos de HL3: https://github.com/ValveSoftware/source-sdk-2013/commit/0759...

  • Valve sigue ganando
    Temo el día en que Gaben muera o se retire. Espero que Valve encuentre un gran sucesor, pero no es raro que una empresa pierda el rumbo después de que desaparece la generación fundadora

    • Esto es realmente genial, como muchas de las cosas que hace Valve, pero como Valve obtiene ingresos considerables del juego de azar y del juego de azar entre menores, cuesta verla como una empresa completamente admirable
    • Para mí, Valve como desarrolladora de juegos perdió el rumbo hace mucho. ¿Qué lanzó recientemente? ¿CS 2 en 2023? Esa IP también viene de un mod que compraron hace 25 años, y lo mismo pasa con otros juegos que lanzaron después de Half-Life. Lo único “nuevo” que tienen en el pipeline es un MOBA FPS
      Aun así, estaré eternamente agradecido de que, gracias a Steam, pueda ejecutar juegos de Windows en Linux sin dolor y no tenga que volver a lidiar con Microsoft en mi vida personal. Como distribuidora de juegos es excelente, y lo que Valve mejor sabe hacer es distribuir juegos
    • Más bien creo que Gabe debería retirarse. Si es posible, me gustaría que Robin Walker tomara el mando
      El ciclo de lanzamientos de Valve está casi detenido y vive de sus vacas lecheras. Gabe tiene 62 años y parece más interesado en su competidor de Neuralink
    • No entiendo por qué piensan que Gabe tiene la mayor influencia. La mayor parte del equipo original que hizo Half-Life ya se fue, y la gente no compró productos por Steam, compró juegos
    • Creo que Valve ya perdió el rumbo. Solo que su enshittification fue en forma de cajas de botín, algo cercano al juego de azar
      La gente olvida que TF2 fue uno de los primeros ejemplos de cajas de botín en juegos occidentales, mucho antes de que saliera Overwatch. En Portal 2 también las metieron innecesariamente en el modo cooperativo. Por eso dejaron de lanzar experiencias single-player. Incluso dejando Half-Life: Alyx como excepción
      CS:GO es lo peor. Hay sitios de terceros para apostar skins de armas, y apuntan abiertamente a niños. En la práctica, toda la escena profesional de CS:GO está patrocinada por esto
      Los sitios de apuestas con skins no están aprobados oficialmente por Valve, pero en la práctica no hacen casi ningún esfuerzo por detenerlos
  • Ahora me pregunto si empezarán a aceptar pull requests. Hay muchos bugs que me gustaría que arreglaran en el juego
    Llevo casi 10 años molesto con el problema de que el rayo de la Medigun no coincide con el modelo

    • Esto parece ser simplemente un volcado en GitHub y probablemente no tenga ninguna conexión con el repositorio interno
      Con el repositorio de Half-Life pasó lo mismo. Cuando se publicó el trabajo relacionado con el 25.º aniversario, también se subió como un único parche enorme
    • También llevan años ignorando casi todos los bugs del issue tracker de GoldSrc
    • Es muy, muy, muy poco probable que pase. Aun así, ojalá alguien lidere un fork comunitario del juego que funcione en Steam