Valve ने Team Fortress 2 गेम कोड सार्वजनिक किया
(github.com/ValveSoftware)ValveSoftware/source-sdk-2013काAdd Team Fortress 2 SDKcommit एक बड़ा बदलाव है, जो 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-2013public repository काAdd Team Fortress 2 SDKcommit है- GitHub page का शीर्षक
Add Team Fortress 2 SDK · ValveSoftware/source-sdk-2013@0759e2e · GitHubहै - दिखाए गए repository metrics Fork 3k, Star 9.8k हैं
- GitHub page का शीर्षक
- 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 शामिल हैं
- root-level files के रूप में
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 से संबंधित फ़ाइलें शामिल हैं
- player·team:
- UI और live-service game तत्व भी फ़ाइल सूची में व्यापक रूप से शामिल हैं
econdirectory में 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/buildallprojectscreateallprojects,creategameprojectssrc/devtoolsकी Xcode settings, POSIX makefile, Source SDK make definitionssrc/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 भी दिखता है
.gitattributesdiff में 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 टिप्पणियां
सच में, Valve काफ़ी शानदार है।
Hacker News की राय
मोडिंग के लिए यह अच्छी खबर है, लेकिन यह बात न भूलें कि यह अब भी निजी रखे गए Source इंजन के ऊपर रखा गया TF2-विशेष code है
यानी, उदाहरण के लिए, इससे TF2 को किसी नए platform पर port नहीं किया जा सकता; ऐसा तभी हो पाएगा जब आप कम-से-कम Source को reimplement करें या leaked Source codebase में से किसी एक के साथ जबरन match कराएं और फिर कानूनी fallout झेलने को तैयार रहें
Source workflow की कमियों को अच्छी तरह जानने वाली एक active community है, इसलिए Carmack ने id tech के साथ जैसा किया था, वैसा GPL में release करने से indie creators के projects में विस्फोटक बढ़ोतरी हो सकती है। उन्हें अब opaque contracts में बंधे रहने की ज़रूरत नहीं होगी
क्या वे कभी इसे release करेंगे? हो सकता है कुछ licensing issues हों जिनकी वजह से वे इसे आसानी से open source न कर सकें क्योंकि पूरे rights उनके पास नहीं हैं, या फिर अभी भी बचाकर रखने लायक काफी secret technology हो सकती है
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 को
previous2021beta branch पर switch करना होगा, जहां पुराने SDK files बचे हुए हैंऐसा लगता है game का नाम बदलकर Frog Fortress 2 हो गया है
https://github.com/ValveSoftware/source-sdk-2013/blob/0759e2...
मेंढक और 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 हुए हैं, लेकिन यह बहुत बड़ी खबर है
TF2 team अब शायद ज्यादा-से-ज्यादा कुछ दर्जन लोगों की होगी, और game भी करीब 18 साल पुराना हो चुका है, इसलिए ongoing development external community को सौंपने का समय आ गया है
Valve अब 25 साल से ज़्यादा पुरानी परंपरा को आगे बढ़ा रहा है। लोग आज भी नए Doom maps बनाते और खेलते हैं। अगर इतिहास को पैमाना मानें तो 2050s के बाद भी किसी न किसी रूप में TF2 खेला जा रहा हो सकता है
64-bit Mac के लिए दोबारा compile करने से पहले ही उन्होंने यह कर दिया, यह बात बहुत कुछ बताती है। Valve साफ तौर पर Apple को business करने के लिए अच्छा partner नहीं मानता लगता है
Apple जिस तरह game developers को App Store में बंद करके रखना चाहता है, उसे देखते हुए यह समझ आता है
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 फिर कई बार बदल चुका होगा, इसलिए ऐसा करने की खास वजह नहीं बचती
लोग Balmer के “devs devs devs” का मजाक उड़ाते हैं, लेकिन वह काफी हद तक सही था। Microsoft ने developers को आकर्षित करने पर बहुत पैसा खर्च किया, और नतीजे में PC gaming में monopoly जैसी position पा ली
कम से कम इस मायने में आने वाला लगता है कि Apple Silicon Rosetta 2 के साथ x86-64 को बेहतर support करता है
सोचा था उससे ज्यादा हैं, लेकिन compatible games न हों तो Steam install करने की वजह भी बहुत कम है। Apple ने gaming-friendly होना भी हाल में ही शुरू किया है, इसलिए 20 साल पुराने game को port करने की कोशिश हो रही हो तो हैरानी नहीं
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 खो देना दुर्लभ नहीं है
फिर भी Steam की वजह से Linux पर Windows games बिना दर्द के चला पाता हूं और personal life में Microsoft से फिर deal नहीं करना पड़ता, इसके लिए हमेशा आभारी रहूंगा। Game distributor के तौर पर यह बेहतरीन है, और Valve सबसे अच्छा काम game distribution ही करता है
Valve का release cycle लगभग रुक चुका है, और वह cash cows पर निर्भर है। Gabe 62 साल के हैं और Neuralink competitor वाली दिशा में ज्यादा interested लगते हैं
लोग भूल जाते हैं कि 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 साल से चिढ़ रहा हूं
Half-Life repository के साथ भी ऐसा ही था। 25वीं वर्षगांठ से जुड़े काम सार्वजनिक हुए तब भी उसे एक बड़े patch के रूप में push किया गया था