Valve publica el código del juego Team Fortress 2
(github.com/ValveSoftware)- El commit
Add Team Fortress 2 SDKdeValveSoftware/source-sdk-2013es 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.vpcygame_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 SDKdel repositorio públicoValveSoftware/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
- El título de la página de GitHub es
- En la raíz y en la parte de
gamese 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.mdyREADME game/binincluye binarios de Steam API comolinux64/libsteam_api.soyx64/steam_api64.dllgame/mod_tfcontiene recursos de configuración e interfaz comogameinfo.txt,steam.inf, el logo de TF2,resource/mod_tf_english.txtyMatchMakingDashboard.res
- A nivel raíz se ven archivos como
- Bajo
src/game/client/tfaparece 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
- Jugador y equipos:
- La lista de archivos también incluye ampliamente elementos de interfaz y de juego como servicio
- El directorio
econcontiene archivos de inventario, equipamiento, intercambios, mercado e interfaz de ítems econ/storecontiene 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
- El directorio
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,.vpcy.pl - Se repiten variantes por perfil de shader como
ps11,ps14,ps20,ps20b,ps30,vs11,vs20yvs30 - Incluye archivos relacionados con agua, posprocesamiento, bloom, motion blur, cloak, ojos, linterna, lightmapped generic, HDR y mapeo de tonos, y partículas
- Incluye diversos formatos como
- También se incluye el entorno de desarrollo y compilación
src/.vscode/tasks.json,src/buildallprojectscreateallprojects,creategameprojects- Configuraciones de Xcode, makefile POSIX y definiciones make de Source SDK en
src/devtools ShaderCompile2.exe,vpc.exe,vpc_linux,vpc_osxy scripts Perl/Python/PowerShell ensrc/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
.gitattributesaparece con 5 adiciones y 11 eliminaciones- Se elimina
README texty se agregaREADME.md text - Se agregan
*.dll binary,buildallprojects textyvpc binary - Se elimina
mod_*_english.txt binaryy se agrega*_english.txt binary - Algunas entradas como
creategameprojects,createallprojects,vpc_linuxyvpc_osxaparecen como eliminadas
- Se elimina
- 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
La verdad, Valve sí es genial.
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.
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.
¿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.
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.Parece que el juego cambió de nombre a Frog Fortress 2.
https://github.com/ValveSoftware/source-sdk-2013/blob/0759e2...
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.
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.
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.
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
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
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
Al menos parece que llegará en el sentido de que Apple Silicon soporta mejor x86-64 mediante Rosetta 2
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
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
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
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
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
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