2 पॉइंट द्वारा GN⁺ 2025-02-19 | 2 टिप्पणियां | WhatsApp पर शेयर करें
  • ValveSoftware/source-sdk-2013 का Add Team Fortress 2 SDK commit एक बड़ा बदलाव है, जो Team Fortress 2 SDK को Source SDK 2013 repository में जोड़ता है, और इसमें game, client, तथा shader फ़ाइलें व्यापक रूप से शामिल हैं
  • फ़ाइल ट्री में game/mod_tf, src/game/client/tf, client_tf.vpc, game_shader_generic_*_tf.vpc जैसी TF-विशिष्ट configuration और project files दिखाई देती हैं
  • client code का दायरा HUD, weapons, projectiles, bot NPC, Halloween, Mann vs. Machine, PASS Time, replay, econ·shop UI जैसे game system units में व्यापक रूप से बँटा हुआ है
  • Steam API binaries, VS Code workspace settings, build scripts, VPC·Xcode·make settings, DirectX SDK utility DLLs, और shader build tools भी साथ शामिल हैं
  • सत्यापित की जा सकने वाली जानकारी का केंद्र GitHub के बड़े commit page की file list और कुछ diff हैं, इसलिए हर फ़ाइल में वास्तविक implementation changes या add/modify की स्थिति ज़्यादातर देख पाना मुश्किल है

TF2 SDK commit में शामिल दायरा

  • लक्ष्य ValveSoftware/source-sdk-2013 public repository का Add Team Fortress 2 SDK commit है
    • GitHub page का शीर्षक Add Team Fortress 2 SDK · ValveSoftware/source-sdk-2013@0759e2e · GitHub है
    • दिखाए गए repository metrics Fork 3k, Star 9.8k हैं
  • root और game हिस्से में SDK वितरण के लिए ज़रूरी base files और mod configuration शामिल हैं
    • root-level files के रूप में .gitattributes, .gitignore, CONTRIBUTING, LICENSE, README.md, README दिखाई देते हैं
    • game/bin में linux64/libsteam_api.so, x64/steam_api64.dll जैसी Steam API binaries शामिल हैं
    • game/mod_tf में gameinfo.txt, steam.inf, TF2 logo, resource/mod_tf_english.txt, MatchMakingDashboard.res जैसे configuration और UI resources शामिल हैं
  • src/game/client/tf के नीचे Team Fortress 2 client code जैसी दिखने वाली बड़ी संख्या में फ़ाइलें सूचीबद्ध हैं
    • player·team: c_tf_player.cpp/.h, c_tf_team.cpp/.h, c_tf_playerresource.cpp/.h
    • weapons·projectiles: c_tf_projectile_arrow, c_tf_projectile_rocket, c_tf_stickybolt, c_tf_weapon_builder
    • Engineer buildings: c_obj_dispenser, c_obj_sentrygun, c_obj_teleporter, c_obj_sapper
    • modes·events: PASS Time, Halloween, Mann vs. Machine, PvE से संबंधित फ़ाइलें शामिल हैं
  • UI और live-service game तत्व भी फ़ाइल सूची में व्यापक रूप से शामिल हैं
    • econ directory में inventory, equipment, trading, market, item UI files हैं
    • econ/store में shop screen से संबंधित फ़ाइलें हैं
    • HUD files account, achievements, alerts, ammo, chat, crosshair, damage indicators, boss health, Mann vs. Machine status आदि में विभाजित हैं

shader और build tools

  • shader-संबंधित changes की सूची बहुत बड़ी है
    • .fxc, .psh, .vsh, .inc, .cpp, .h, .bat, .vpc, .pl जैसे कई formats शामिल हैं
    • ps11, ps14, ps20, ps20b, ps30, vs11, vs20, vs30 जैसी shader profile-आधारित variants बार-बार दिखाई देती हैं
    • water, post-processing, bloom, motion blur, cloak, eye, flashlight, lightmapped generic, HDR·tonemapping, particle-संबंधित फ़ाइलें शामिल हैं
  • development और build environment भी साथ शामिल है
    • src/.vscode/tasks.json, src/buildallprojects
    • createallprojects, creategameprojects
    • src/devtools की Xcode settings, POSIX makefile, Source SDK make definitions
    • src/devtools/bin के ShaderCompile2.exe, vpc.exe, vpc_linux, vpc_osx, Perl/Python/PowerShell scripts

सत्यापन की सीमाएँ और diff memo

  • वर्तमान इनपुट commit page की file tree और कुछ diff information का सारांश है, और इसका अधिकांश हिस्सा वास्तविक code content नहीं बल्कि changed files की सूची है
  • यह GitHub का बड़ा commit page है, इसलिए कुछ सामग्री default रूप से छिपी हुई है, और छिपी सामग्री खोजने के लिए search box इस्तेमाल करने का निर्देश दिया गया है
  • page पर “There was an error while loading. Please reload this page.” error message भी दिखता है
  • .gitattributes diff में 5 additions और 11 deletions दिखाए गए हैं
    • README text हटाया गया है और README.md text जोड़ा गया है
    • *.dll binary, buildallprojects text, vpc binary जोड़े गए हैं
    • mod_*_english.txt binary हटाया गया है और *_english.txt binary जोड़ा गया है
    • creategameprojects, createallprojects, vpc_linux, vpc_osx जैसे कुछ entries हटाए गए रूप में दिखते हैं
  • commit comments की संख्या 0 दिखाई गई है

शामिल न किया गया दायरा

  • इनपुट notes के अनुसार मूल सामग्री के कुछ chunks लंबाई·लागत सीमाओं के कारण छोड़ दिए गए हैं
  • इसलिए यह सारांश केवल दिए गए source notes की सीमा तक commit file list और कुछ diff को दर्शाता है, और पूरे commit की सभी files और changes को शामिल नहीं करता

2 टिप्पणियां

 
honglu 2025-02-19

सच में, Valve काफ़ी शानदार है।

 
GN⁺ 2025-02-19
Hacker News की राय
  • मोडिंग के लिए यह अच्छी खबर है, लेकिन यह बात न भूलें कि यह अब भी निजी रखे गए Source इंजन के ऊपर रखा गया TF2-विशेष code है
    यानी, उदाहरण के लिए, इससे TF2 को किसी नए platform पर port नहीं किया जा सकता; ऐसा तभी हो पाएगा जब आप कम-से-कम Source को reimplement करें या leaked Source codebase में से किसी एक के साथ जबरन match कराएं और फिर कानूनी fallout झेलने को तैयार रहें

    • Valve का Source को closed रखने का रुख समझना मुश्किल है। आज काम करने के लिए यह कोई खास आकर्षक engine भी नहीं है, और O3DE, Godot, Wicked जैसे कम-से-कम तीन बड़े open source alternatives पहले से हैं जो कहीं ज़्यादा powerful और आसान हैं
      Source workflow की कमियों को अच्छी तरह जानने वाली एक active community है, इसलिए Carmack ने id tech के साथ जैसा किया था, वैसा GPL में release करने से indie creators के projects में विस्फोटक बढ़ोतरी हो सकती है। उन्हें अब opaque contracts में बंधे रहने की ज़रूरत नहीं होगी
    • Leak भी हो चुका है, Source 1 इस्तेमाल करने वाला आखिरी बड़ा game आए 10 साल से ज़्यादा हो गए हैं, और Source 2 में game graphics की नई प्रगति के हिसाब से rendering code का ज़्यादातर हिस्सा शायद दोबारा लिखा गया होगा; ऐसे में सोचता हूं कि इसे अब भी private रखने की वजह क्या है
      क्या वे कभी इसे release करेंगे? हो सकता है कुछ licensing issues हों जिनकी वजह से वे इसे आसानी से open source न कर सकें क्योंकि पूरे rights उनके पास नहीं हैं, या फिर अभी भी बचाकर रखने लायक काफी secret technology हो सकती है
    • मुझे उम्मीद थी कि इससे TF2 Mac पर वापस आ जाएगा, अफसोस। Apple के 32-bit support हटाने के बाद से office में ढंग की LAN party नहीं कर पाए हैं
    • Valve को Source 2 पर गए 10 साल से ज़्यादा हो गए, फिर भी Source private क्यों है यह अब भी confusing है। हो सकता है कुछ core elements overlap करते हों, लेकिन लगता है वे game source release करने को ठीक मानते हैं
    • अच्छी खबर! किसी ने TF2 के लिए Source engine को काफी हद तक reverse engineer करने में पहले ही सफलता पा ली है
      https://www.youtube.com/watch?v=09CvpQrnTEY
  • server-side TF2 mods बनाने वाले के तौर पर यह सचमुच शानदार है। IDA में binaries analyze करने में मैंने अनगिनत घंटे लगाए हैं, अब बस GitHub खोलना होगा
    community नए features और bug fixes कहीं ज़्यादा तेजी से बना पाएगी। सच कहें तो यह बहुत पहले हो जाना चाहिए था; TF2 source code पहले ही दो बार leak हो चुका है, और एक group ने तो engine के पुराने version पर game clone तक बना लिया था। इस game के लिए community support अब भी जबरदस्त है

  • उम्मीद है यह TF2 Classic के लिए अच्छी खबर हो
    TF2C Discord announcement के मुताबिक, बड़े SDK update और Team Fortress 2 code release की वजह से कुछ समय तक TF2 Classic चलाना संभव नहीं हो सकता। वे पहले ही porting work और संभावित Steam release की तैयारी कर रहे हैं, और कहते हैं कि अब इसे कानूनी रूप से आगे बढ़ाया जा सकता है। फिलहाल खेलते रहना हो तो Source SDK Base 2013 Multiplayer को previous2021 beta branch पर switch करना होगा, जहां पुराने SDK files बचे हुए हैं

    • मूल game के derivative works ठीक हैं, और ऐसी चीजों को Steam पर नए game के रूप में release किया जा सकता है, यह साफ-साफ कहा गया है; यानी TF2 Classic का रास्ता खुल गया है
    • TF2 Classic क्या है?
  • ऐसा लगता है game का नाम बदलकर Frog Fortress 2 हो गया है
    https://github.com/ValveSoftware/source-sdk-2013/blob/0759e2...

    • लगता है code build करके install करने पर अगर नाम न बदलें तो official TF2 से अलग पहचान के लिए ऐसा किया गया है
    • किसी तरह का internal joke लगता है। committer कौन है, देखिए
      मेंढक और graphics programming अच्छे दोस्त हैं
  • official blog post: https://www.teamfortress.com/post.php?id=238809
    इसमें हाल की दूसरी Source engine game updates के links भी शामिल हैं

  • वाह… वाह, wow. HN पर यह देखने को मिलेगा, सोचा नहीं था। लंबे समय से इसकी उम्मीद थी, लेकिन अगर मैं Valve होता तो बहुत पहले ही एक “last” commemorative content update निकालता, game को Vulkan पर port करता, item servers जैसी चीज़ों को Valve servers से बांधे रखता और codebase को open source कर देता
    यह TF2 के अंत की शुरुआत है या शुरुआत का अंत, पता नहीं। पहले भी leaks हुए हैं, लेकिन यह बहुत बड़ी खबर है

    • अंत की शुरुआत कहना ठीक नहीं, यह तो कई साल से खत्म जैसा ही था। अब इसे community को सौंपा जा रहा है, और यही सही है
      TF2 team अब शायद ज्यादा-से-ज्यादा कुछ दर्जन लोगों की होगी, और game भी करीब 18 साल पुराना हो चुका है, इसलिए ongoing development external community को सौंपने का समय आ गया है
    • 90s में id ने Doom से कुछ साल पैसे कमाए और source code release कर दिया, Quake के साथ भी यही किया। Valve जैसी company आज मौजूद है, इसकी एक वजह यह भी है कि शुरुआती games Doom और Quake के modified engines पर बने थे
      Valve अब 25 साल से ज़्यादा पुरानी परंपरा को आगे बढ़ा रहा है। लोग आज भी नए Doom maps बनाते और खेलते हैं। अगर इतिहास को पैमाना मानें तो 2050s के बाद भी किसी न किसी रूप में TF2 खेला जा रहा हो सकता है
    • “Woah... woah WOAH” से क्या इशारा है, समझ गया
    • जिज्ञासा है कि आपको HN पर यह देखने की उम्मीद क्यों नहीं थी
  • 64-bit Mac के लिए दोबारा compile करने से पहले ही उन्होंने यह कर दिया, यह बात बहुत कुछ बताती है। Valve साफ तौर पर Apple को business करने के लिए अच्छा partner नहीं मानता लगता है
    Apple जिस तरह game developers को App Store में बंद करके रखना चाहता है, उसे देखते हुए यह समझ आता है

    • Mac के लिए games बनाना बड़ी चुनौती जैसा दिखता है। इसमें अपेक्षाकृत non-standard CPU architecture, proprietary graphics API, कम devices, जरूरत से ज्यादा high-resolution built-in screens, और ज्यादा से ज्यादा “काफी ठीक” स्तर का GPU—सबका मेल है
      Apple ने mid-range स्तर के Tomb Raider 2 graphics को गर्व से announce किया, इससे उन game developers को ज्यादा उम्मीद नहीं मिलती जिन्हें Apple के PR campaign का support नहीं मिलता। ऊपर से player count के हिसाब से यह Linux से भी छोटा platform है
      जब तक decent player base बनने का भरोसा न हो, किसी game company के लिए Mac पर optimize करना business के लिहाज से खास मायने नहीं रखता। जो users Mac खरीद सकते हैं, वे शायद console भी खरीद सकते हैं
      Linux पर gaming के लिए इस्तेमाल होने वाले wrappers और workarounds से games को किसी तरह चलाया जा सकता है, लेकिन Mac पर tools कम mature हैं, इसलिए direct optimization करनी पड़ती है। Linux gaming में भी DRM/anti-cheat compatibility की काफी समस्याएं हैं, और कम mature tools इस्तेमाल करने से यह और खराब ही होगा
      Apple को backward compatibility में भी खास दिलचस्पी नहीं लगती। “compatibility बनाए रखना नहीं चाहते” के अलावा कोई साफ वजह दिए बिना 32-bit हटा दिया, और अभी के replacement APIs को कितने समय तक maintain रखेगा, यह भी पता नहीं। Linux में भी मिलती-जुलती समस्या है, इसलिए Linux पर gaming का default तरीका emulated Windows environment में चलाना है
      लगता है game companies Mac से पहले Snapdragon के लिए games दोबारा compile करेंगी। जब तक वे 32-bit x86 libraries को emulation के बिना ARM पर चलाने लायक बनाएंगी, Apple शायद APIs और requirements फिर कई बार बदल चुका होगा, इसलिए ऐसा करने की खास वजह नहीं बचती
    • Game industry interviews देखें तो Apple historically game companies के साथ collaborate करने में काफी hostile रहा है, और iPhone App Store के बाद थोड़ा नरम पड़ा लगता है
      लोग Balmer के “devs devs devs” का मजाक उड़ाते हैं, लेकिन वह काफी हद तक सही था। Microsoft ने developers को आकर्षित करने पर बहुत पैसा खर्च किया, और नतीजे में PC gaming में monopoly जैसी position पा ली
    • मूल लेख के मुताबिक यह official TF2 website पर announce हुआ था, और https://www.teamfortress.com/post.php?id=238809 में लिखा है कि TF2, DoD:S, HL2:DM, CS:S, HLDM:S जैसे multiplayer Source engine के पुराने titles में 64-bit binary support, scalable HUD/UI, prediction fixes आदि कई improvements जोड़े जा रहे हैं
      कम से कम इस मायने में आने वाला लगता है कि Apple Silicon Rosetta 2 के साथ x86-64 को बेहतर support करता है
    • Mac users 1.4% हैं, यानी Linux से 25% कम
      सोचा था उससे ज्यादा हैं, लेकिन compatible games न हों तो Steam install करने की वजह भी बहुत कम है। Apple ने gaming-friendly होना भी हाल में ही शुरू किया है, इसलिए 20 साल पुराने game को port करने की कोशिश हो रही हो तो हैरानी नहीं
    • एक video था जिसमें बताया गया था कि Valve games Macintosh पर port क्यों नहीं हुए, लेकिन मिल नहीं रहा। मुख्य बात यह थी कि Apple नहीं चाहता था कि उसके devices gaming के लिए इस्तेमाल हों, और porting work बेकार करने के बाद game publish करने से इनकार कर दिया था
      2007 में Gabe की टिप्पणी कुछ-कुछ ऐसी ही थी। उन्होंने कहा था कि Apple से मिलने पर वहां के लोग कहते हैं “games सच में important हैं, हमें कुछ करना चाहिए,” फिर Valve कहता है “तो ये तीन चीजें करेंगे तो बेहतर होगा,” वे कहते हैं ठीक है, और फिर कभी दिखाई नहीं देते। बाद में Apple के अंदर कोई व्यक्ति बदलता है तो वही cycle फिर शुरू हो जाती है
  • diff history में छोटे HL3 files भी हैं: https://github.com/ValveSoftware/source-sdk-2013/commit/0759...

  • Valve लगातार जीत रहा है
    जिस दिन Gaben मरेंगे या पद छोड़ेंगे, उससे डर लगता है। उम्मीद है Valve कोई अच्छा successor ढूंढ ले, लेकिन founder generation के जाने के बाद companies का direction खो देना दुर्लभ नहीं है

    • यह सच में शानदार काम है, और Valve की बहुत-सी चीजें भी ऐसी ही हैं, लेकिन Valve gambling और minors की gambling से काफी revenue कमाता है, इसलिए उसे पूरी तरह बेहतरीन company मानना मुश्किल है
    • मेरे लिए Valve एक game developer के तौर पर बहुत पहले रास्ता भटक चुका है। हाल में क्या निकाला? 2023 का CS 2? वह IP भी 25 साल पहले खरीदे गए mod से आया था, और Half-Life के बाद release हुए दूसरे games भी ऐसे ही हैं। Pipeline में केवल “new” चीज एक MOBA FPS है
      फिर भी Steam की वजह से Linux पर Windows games बिना दर्द के चला पाता हूं और personal life में Microsoft से फिर deal नहीं करना पड़ता, इसके लिए हमेशा आभारी रहूंगा। Game distributor के तौर पर यह बेहतरीन है, और Valve सबसे अच्छा काम game distribution ही करता है
    • बल्कि मुझे लगता है Gabe को retire हो जाना चाहिए। हो सके तो Robin Walker उन्हें replace करें
      Valve का release cycle लगभग रुक चुका है, और वह cash cows पर निर्भर है। Gabe 62 साल के हैं और Neuralink competitor वाली दिशा में ज्यादा interested लगते हैं
    • समझ नहीं आता लोग क्यों मानते हैं कि Gabe का सबसे बड़ा प्रभाव है। Half-Life बनाने वाली original team के ज्यादातर लोग जा चुके हैं, और लोगों ने products Steam की वजह से नहीं, games की वजह से खरीदे थे
    • मुझे लगता है Valve पहले ही रास्ता भटक चुका है। बस उनकी enshittification gambling के करीब loot boxes के रूप में थी
      लोग भूल जाते हैं कि TF2 ने Overwatch आने से बहुत पहले Western games में loot boxes लाने के शुरुआती examples में जगह बनाई थी। Portal 2 में भी उन्होंने बेवजह co-op mode में इसे ठूंस दिया। इसलिए उन्होंने single-player experiences release करना बंद कर दिया। Half-Life: Alyx को exception मान भी लें तो
      CS:GO सबसे खराब है। Third-party sites हैं जहां gun skins पर gambling होती है, और वे बच्चों को खुले तौर पर target करती हैं। असल में CS:GO pro scene का लगभग पूरा हिस्सा इन्हीं से sponsored है
      Skin gambling sites को Valve ने officially approve नहीं किया है, लेकिन उन्हें रोकने की कोशिश भी practically नहीं करता
  • अब उत्सुकता है कि क्या वे pull requests लेना शुरू करेंगे। गेम में बहुत सारे bugs हैं जिन्हें ठीक होते देखना चाहूंगा
    Medigun की beam मॉडल से मैच न होने वाली समस्या से लगभग 10 साल से चिढ़ रहा हूं

    • यह शायद बस GitHub पर dump किया गया है और internal repository से बिल्कुल भी जुड़ा नहीं होगा
      Half-Life repository के साथ भी ऐसा ही था। 25वीं वर्षगांठ से जुड़े काम सार्वजनिक हुए तब भी उसे एक बड़े patch के रूप में push किया गया था
    • GoldSrc issue tracker के bugs को भी कई सालों से लगभग पूरी तरह ignore किया जा रहा है
    • सच में, सच में, सच में इसकी संभावना बहुत कम है। फिर भी अच्छा होगा अगर कोई Steam पर चलने वाले गेम का community fork आगे बढ़ाए