2 puan yazan GN⁺ 2025-02-19 | 2 yorum | WhatsApp'ta paylaş
  • ValveSoftware/source-sdk-2013 içindeki Add Team Fortress 2 SDK commit’i, Team Fortress 2 SDK’yi Source SDK 2013 deposuna ekleyen büyük bir değişiklik; oyun, istemci ve shader dosyalarını geniş kapsamda içeriyor
  • Dosya ağacında game/mod_tf, src/game/client/tf, client_tf.vpc, game_shader_generic_*_tf.vpc gibi TF’ye özel yapılandırma ve proje dosyaları görünüyor
  • İstemci kodu kapsamı HUD, silahlar, mermiler/projektiler, bot NPC’ler, Halloween, Mann vs. Machine, PASS Time, replay, econ ve mağaza arayüzü gibi oyun sistemi birimleri halinde genişçe ayrılmış
  • Steam API ikilileri, VS Code görev ayarları, build script’leri, VPC/Xcode/make ayarları, DirectX SDK yardımcı DLL’leri ve shader build araçları da birlikte yer alıyor
  • Doğrulanabilen içerik esas olarak GitHub’daki büyük commit sayfasının dosya listesi ve bazı diff’leri olduğundan, her dosyadaki gerçek uygulama değişikliklerini veya ekleme/düzenleme olup olmadığını çoğunlukla doğrulamak zor

TF2 SDK commit’inin kapsadığı alan

  • Hedef, ValveSoftware/source-sdk-2013 açık deposundaki Add Team Fortress 2 SDK commit’i
    • GitHub sayfa başlığı Add Team Fortress 2 SDK · ValveSoftware/source-sdk-2013@0759e2e · GitHub
    • Gösterilen depo metrikleri Fork 3k, Star 9.8k
  • Kök dizin ve game tarafında SDK dağıtımı için gereken temel dosyalar ve mod yapılandırması bulunuyor
    • Kök düzey dosyalar olarak .gitattributes, .gitignore, CONTRIBUTING, LICENSE, README.md, README görünüyor
    • game/bin altında linux64/libsteam_api.so, x64/steam_api64.dll gibi Steam API ikilileri yer alıyor
    • game/mod_tf içinde gameinfo.txt, steam.inf, TF2 logosu, resource/mod_tf_english.txt, MatchMakingDashboard.res gibi yapılandırma ve UI kaynakları bulunuyor
  • src/game/client/tf altında Team Fortress 2 istemci kodu gibi görünen çok sayıda dosya listeleniyor
    • Oyuncu ve takım: c_tf_player.cpp/.h, c_tf_team.cpp/.h, c_tf_playerresource.cpp/.h
    • Silahlar ve projektiler: c_tf_projectile_arrow, c_tf_projectile_rocket, c_tf_stickybolt, c_tf_weapon_builder
    • Engineer yapıları: c_obj_dispenser, c_obj_sentrygun, c_obj_teleporter, c_obj_sapper
    • Modlar ve etkinlikler: PASS Time, Halloween, Mann vs. Machine, PvE ile ilgili dosyalar dahil
  • UI ve canlı servis oyun unsurları da dosya listesinde geniş kapsamda yer alıyor
    • econ dizininde envanter, ekipman, takas, pazar ve eşya UI dosyaları var
    • econ/store içinde mağaza ekranıyla ilgili dosyalar bulunuyor
    • HUD dosyaları hesap, başarımlar, bildirimler, cephane, sohbet, nişangâh, hasar göstergesi, boss canı, Mann vs. Machine durumu gibi başlıklara ayrılmış

Shader’lar ve build araçları

  • Shader ile ilgili değişiklik listesi çok büyük
    • .fxc, .psh, .vsh, .inc, .cpp, .h, .bat, .vpc, .pl gibi çeşitli biçimler içeriyor
    • ps11, ps14, ps20, ps20b, ps30, vs11, vs20, vs30 gibi shader profillerine göre varyantlar tekrar ediyor
    • Su, post-processing, bloom, motion blur, cloak, eye, flashlight, lightmapped generic, HDR/ton eşleme ve particle ile ilgili dosyalar bulunuyor
  • Geliştirme ve build ortamı da birlikte eklenmiş
    • src/.vscode/tasks.json, src/buildallprojects
    • createallprojects, creategameprojects
    • src/devtools altında Xcode ayarları, POSIX makefile’ları, Source SDK make tanımları
    • src/devtools/bin altında ShaderCompile2.exe, vpc.exe, vpc_linux, vpc_osx, Perl/Python/PowerShell script’leri

Doğrulanabilen sınırlar ve diff notları

  • Mevcut girdi, commit sayfasındaki dosya ağacı ve bazı diff bilgilerini özetliyor; çoğunlukla gerçek kod içeriği değil, değişen dosyaların listesi
  • GitHub’daki büyük commit sayfası olduğu için bazı içerikler varsayılan olarak gizlenmiş ve gizli içeriği bulmak için arama kutusunun kullanılabileceğine dair bir yönlendirme yer alıyor
  • Sayfada “There was an error while loading. Please reload this page.” hata mesajı da gösteriliyor
  • .gitattributes diff’i 5 ekleme ve 11 silme olarak görünüyor
    • README text kaldırılmış, README.md text eklenmiş
    • *.dll binary, buildallprojects text, vpc binary eklenmiş
    • mod_*_english.txt binary kaldırılmış, *_english.txt binary eklenmiş
    • creategameprojects, createallprojects, vpc_linux, vpc_osx gibi bazı girdiler kaldırılmış olarak görünüyor
  • Commit yorumu 0 olarak gösteriliyor

Kapsama alınmayan alan

  • Girdi notlarına göre, orijinal metnin bazı parçaları uzunluk ve maliyet sınırları nedeniyle atlanmış
  • Bu nedenle bu özet, yalnızca sağlanan kaynak notlar kapsamındaki commit dosya listesini ve bazı diff’leri yansıtıyor; commit’in tüm dosyalarını ve değişikliklerini kapsamaz

2 yorum

 
honglu 2025-02-19

Gerçekten Valve harika görünüyor.

 
GN⁺ 2025-02-19
Hacker News yorumları
  • Modlama için iyi haber ama bunun hâlâ kapalı kaynak olan Source motoru üzerine oturan TF2’ye özel kod olduğunu karıştırmamak gerek.
    Örneğin bununla TF2’yi yeni platformlara port edemezsiniz; en azından Source’u yeniden uygulamanız ya da sızdırılmış Source kod tabanlarından biriyle zorla uyumlu hâle getirip hukuki sonuçları göze almanız gerekir.

    • Valve’ın Source’u kapalı kaynak tutma tutumunu anlamak zor. Bugün üzerinde çalışmak için özellikle cazip bir motor da değil; O3DE, Godot, Wicked gibi çok daha güçlü ve kullanımı kolay en az üç büyük açık kaynak alternatifi zaten var.
      Source iş akışının eksilerini iyi bilen aktif bir topluluk var; Carmack’in id tech için yaptığı gibi GPL ile yayımlanırsa, bağımsız geliştiricilerin yaratıcı projelerinde patlama yaşanabilir. Artık belirsiz sözleşmelere bağlı kalmaları da gerekmez.
    • Sızıntılar da oldu; Source 1 kullanan son büyük oyunun çıkmasının üzerinden 10 yıldan fazla geçti ve Source 2’de oyun grafiklerindeki yeni gelişmelere uyum sağlamak için render kodunun büyük bölümü muhtemelen yeniden yazılmıştır. Bu yüzden hâlâ kapalı tutmak için bir neden var mı merak ediyorum.
      Bir gün yayımlarlar mı? Tüm haklara sahip olmadıkları için kolayca açık kaynak yapamadıkları lisans sorunları olabilir; ya da hâlâ saklamaya değer çok fazla gizli teknoloji kalmış olabilir.
    • Bunun TF2’yi Mac’e geri getirmesini umuyordum, yazık oldu. Apple 32 bit desteğini kaldırdığından beri ofiste doğru düzgün LAN partisi yapamadık.
    • Valve 10 yıldan uzun süre önce Source 2’ye geçmiş olmasına rağmen Source’un neden kapalı kaynak kaldığını hâlâ tam anlayamıyorum. Temel bileşenlerin bir kısmı örtüşüyor olabilir ama oyun kaynak kodunu açmakta sakınca görmüyor gibiler.
    • Güzel haber! Zaten biri TF2 için Source motorunu bir ölçüde tersine mühendislik etmeyi başarmış.
      https://www.youtube.com/watch?v=09CvpQrnTEY
  • Sunucu tarafı TF2 modları yapan biri olarak bu gerçekten harika. IDA ile ikilileri analiz etmeye sayısız saat harcadım; artık sadece GitHub’ı açmak yeterli.
    Topluluk yeni özellikleri ve hata düzeltmelerini çok daha hızlı geliştirebilecek. Aslında bunun çoktan yapılması gerekirdi; TF2 kaynak kodu zaten iki kez sızdırılmıştı ve bir grup daha eski bir motor sürümüyle oyunun klonunu bile yapmıştı. Bu oyuna yönelik topluluk desteği hâlâ muazzam.

  • Bunun TF2 Classic için iyi haber olmasını umarım.
    TF2C Discord duyurusuna göre, büyük SDK güncellemesi ve Team Fortress 2 kodunun yayımlanması nedeniyle bir süre TF2 Classic’i çalıştıramayabilirsiniz. Portlama çalışmasına ve olası bir Steam çıkışına şimdiden hazırlanıyorlarmış ve bunu yasal olarak ilerletebilir hâle geldiklerini söylüyorlar. Şimdilik oynamaya devam etmek için Source SDK Base 2013 Multiplayer’ı eski SDK dosyalarının bulunduğu previous2021 beta dalına geçirmeniz gerekiyor.

    • Orijinal oyunun türev çalışmalarının sorun olmadığı ve bu tür çalışmaların Steam’de yeni oyun olarak yayımlanabileceği açıkça belirtildiğine göre TF2 Classic’in önü açılmış sayılır.
    • TF2 Classic ne?
  • Oyunun adı Frog Fortress 2 olarak değişmiş gibi görünüyor.
    https://github.com/ValveSoftware/source-sdk-2013/blob/0759e2...

    • Kodu derleyip kurduğunuzda adını değiştirmezseniz resmî TF2’den ayırt edilsin diye yapılmış gibi.
    • Bir tür şirket içi şaka gibi duruyor. Commit’i kimin attığına bakmak yeterli.
      Kurbağalar ve grafik programlama iyi dosttur.
  • Resmî blog yazısı: https://www.teamfortress.com/post.php?id=238809
    Yakın tarihli diğer Source motoru oyun güncellemelerinin bağlantıları da var.

  • Vay… vay, vay be. Bunu HN’de göreceğimi hiç düşünmezdim. Uzun zamandır bekliyordum ama Valve’ın yerinde olsam çok daha önce “son” bir anma içerik güncellemesi çıkarır, oyunu Vulkan’a port eder ve eşya sunucusu gibi şeyleri Valve sunucularına bağlı tutarak kod tabanını açık kaynak yapardım.
    Bu TF2 için sonun başlangıcı mı, yoksa başlangıcın sonu mu bilmiyorum. Geçmişte sızıntılar olmuştu ama bu çok büyük haber.

    • Sonun başlangıcı demek zor; zaten yıllardır bitmiş hâldeydi. Şimdi topluluğa devrediliyor ve doğrusu da bu.
      TF2 ekibi artık olsa olsa on küsur kişi civarındadır; oyun da neredeyse 18 yaşında olduğuna göre, devam eden geliştirmeyi dış topluluğa bırakmanın zamanı geldi.
    • 90’larda id, Doom’dan birkaç yıl para kazandıktan sonra kaynak kodunu yayımladı; Quake için de aynısını yaptı. Valve gibi şirketlerin bugün var olmasının nedenlerinden biri de ilk oyunlarının Doom ve Quake’in değiştirilmiş motorlarını kullanmasıydı.
      Valve şimdi 25 yılı aşkın süredir devam eden bir geleneği sürdürüyor. İnsanlar hâlâ yeni Doom haritaları yapıp oynuyor. Tarih ölçütse, 2050’lerden sonra bile TF2’yi bir şekilde oynuyor olabiliriz.
    • “Woah... woah WOAH” demiş; neye gönderme yaptığını anladım.
    • Bunu HN’de görmeyi neden beklemediğini merak ettim.
  • 64 bit Mac için yeniden derlemeden önce bunu yapmış olmaları çok şey anlatıyor. Valve belli ki Apple’ı iş yapmak için iyi bir ortak olarak görmüyor
    Apple’ın oyun geliştiricilerini App Store’a hapsetmeye çalıştığını düşününce anlaşılır

    • Mac için oyun yapmak büyük bir meydan okuma gibi görünüyor. Görece standart dışı bir CPU mimarisi, tescilli bir grafik API’si, az sayıda cihaz, aşırı yüksek çözünürlüklü yerleşik ekranlar ve en iyi ihtimalle “yeterli” seviyede GPU’nun birleşimi söz konusu
      Apple’ın orta seviye Tomb Raider 2 grafiklerini gururla duyurması da, Apple’ın pazarlama kampanyası desteğini almayan oyun geliştiricilerine pek umut vermiyor. Üstelik oyuncu sayısına göre Linux’tan bile daha küçük bir platform
      Kayda değer bir oyuncu tabanı oluşacağından emin olmadıkça, bir oyun şirketinin Mac için optimizasyon yapması ticari açıdan pek anlamlı görünmüyor. Mac alabilen kullanıcıların konsol da alabilme olasılığı yüksek
      Linux’ta oyun oynarken kullanılan wrapper’lar ve dolambaçlı çözümlerle oyunları zorla çalıştırabilirsiniz, ama Mac’te araçlar daha az olgun olduğu için doğrudan optimizasyon yapmak gerekiyor. Linux oyunlarında bile DRM/anti-cheat uyumluluğu sorunu çokken, daha az olgun araçlar kullanmak bunu sadece daha da kötüleştirir
      Apple’ın geriye dönük uyumluluğa da pek ilgi duymadığı görülüyor. “Uyumluluğu korumak istemiyorum” dışında belirgin bir neden olmadan 32 bit’i kaldırdı; mevcut yedek API’leri ne kadar süre koruyacağını da bilmiyoruz. Linux’ta da benzer bir sorun var; bu yüzden Linux’ta oyun oynamanın temel yolu, oyunu emüle edilmiş bir Windows ortamında çalıştırmak
      Oyun şirketleri oyunlarını Mac’ten önce Snapdragon için yeniden derleyecek gibi görünüyor. 32 bit x86 kütüphanelerini emülasyon olmadan ARM’de çalışır hale getirdiklerinde Apple muhtemelen API’leri ve gereksinimleri birkaç kez daha değiştirmiş olacak; bu yüzden uğraşmaya değmez
    • Oyun sektörü röportajlarına bakınca Apple’ın tarihsel olarak oyun şirketleriyle iş birliği yapmaya epey düşmanca yaklaştığı, iPhone App Store’dan sonra biraz yumuşamış göründüğü anlaşılıyor
      Balmer’ın “devs devs devs” sözleriyle dalga geçiliyor ama oldukça haklıydı. Microsoft geliştiricileri çekmek için büyük para harcadı ve bunun sonucunda PC oyunlarında tekel sayılabilecek bir konum elde etti
    • Orijinal metne göre duyuru resmi TF2 web sitesinde yapılmış ve https://www.teamfortress.com/post.php?id=238809 adresinde TF2, DoD:S, HL2:DM, CS:S, HLDM:S gibi çok oyunculu eski Source engine oyunlarına 64 bit binary desteği, ölçeklenebilir HUD/UI, tahmin düzeltmeleri ve daha birçok iyileştirme ekleneceği yazıyor
      En azından Apple Silicon’ın Rosetta 2 ile daha iyi desteklediği x86-64 anlamında gelecek gibi görünüyor
    • Mac kullanıcıları %1,4; Linux’tan %25 daha az
      Düşündüğümden fazla, ama uyumlu oyun yoksa Steam kurmak için de pek sebep yok. Apple’ın oyun dostu olmaya başlaması da yeni sayılır; bu yüzden 20 yıllık bir oyunu port etmeye çalışmaları şaşırtıcı değil
    • Valve oyunlarının neden Macintosh’a port edilmediğini açıklayan bir video vardı ama bulamıyorum. Özü, Apple’ın kendi cihazlarının oyun için kullanılmasını istemediği, portlama emeğini boşa çıkarıp ardından oyunun yayımlanmasını reddettiğiydi
      2007’de Gabe’in söyledikleri buna en yakın olanı. Apple’la görüştüklerinde oradakilerin “oyunlar gerçekten önemli, bir şey yapmalıyız” dediğini; Valve “o zaman şu üç şeyi yaparsanız daha iyi olur” dediğinde tamam dediklerini ve sonra bir daha ortada görünmediklerini anlatmıştı. Daha sonra Apple içinde biri değişince aynı döngü yeniden başlıyormuş
  • Değişiklik geçmişinde küçük HL3 dosyaları da var: https://github.com/ValveSoftware/source-sdk-2013/commit/0759...

  • Valve kazanmaya devam ediyor
    Gaben’in öldüğü ya da görevden ayrıldığı günden korkuyorum. Valve’ın harika bir halef bulmasını umuyorum ama kurucu nesil ortadan kaybolduktan sonra şirketlerin yönünü kaybetmesi nadir değil

    • Bu gerçekten harika bir şey ve Valve’ın yaptığı birçok şey de öyle; ama Valve kumar ve reşit olmayanların kumar oynamasından ciddi gelir elde ettiği için onu tamamen mükemmel bir şirket olarak görmek zor
    • Benim için Valve bir oyun geliştiricisi olarak uzun zaman önce yolunu kaybetti. Yakın zamanda ne çıkardı? 2023’te CS 2 mi? O IP de 25 yıl önce satın alınan bir moddan geliyor; Half-Life’tan sonra çıkardığı diğer oyunlar da aynı şekilde. Hattında “yeni” sayılabilecek tek şey bir MOBA FPS
      Yine de Steam sayesinde Linux’ta Windows oyunlarını zahmetsizce çalıştırabildiğim ve kişisel hayatımda Microsoft’la tekrar uğraşmak zorunda kalmadığım için sonsuza kadar minnettarım. Oyun dağıtımcısı olarak harika; Valve’ın en iyi yaptığı iş de oyun dağıtımı
    • Bence tam tersine Gabe’in emekli olması gerekiyor. Mümkünse Robin Walker’ın devralması iyi olur
      Valve’ın yayın döngüsü neredeyse durmuş durumda ve nakit ineğine yaslanıyor. Gabe 62 yaşında ve Neuralink rakibi tarafla daha çok ilgileniyor gibi görünüyor
    • Gabe’in en büyük etkiyi yarattığını düşünmenizin nedenini anlamıyorum. Half-Life’ı yapan ilk ekibin çoğu ayrıldı ve insanlar ürünleri Steam yüzünden değil, oyunlar yüzünden satın aldı
    • Bence Valve zaten yolunu kaybetti. Sadece onların enshittification’ı kumara yakın loot box biçimindeydi
      İnsanlar TF2’nin, Overwatch çıkmadan çok önce Batı oyunları arasında loot box’ı erken benimseyen örneklerden biri olduğunu unutuyor. Portal 2’de bile bunu gereksiz yere co-op moda sıkıştırdılar. Bu yüzden tek oyunculu deneyimler yayımlamayı bıraktılar. Half-Life: Alyx’i istisna saysak bile
      CS:GO en kötüsü. Silah skin’leri üzerine kumar oynatan üçüncü taraf siteler var ve açıkça çocukları hedefliyorlar. Fiilen CS:GO profesyonel sahnesinin tamamı bunlar tarafından sponsor ediliyor
      Skin kumar siteleri Valve tarafından resmen onaylanmış değil, ama Valve bunları engellemek için de esasen hiçbir çaba göstermiyor
  • Artık pull request kabul etmeye başlayıp başlamayacaklarını merak ediyorum. Oyunda düzeltilmesini istediğim çok sayıda bug var
    Medigun ışınının modelle hizalanmaması sorunu neredeyse 10 yıldır canımı sıkıyor

    • Bence bu sadece GitHub'a dökülmüş bir şey; iç depoyla hiç bağlantılı değildir
      Half-Life deposunda da durum aynıydı. 25. yıl dönümüyle ilgili çalışmalar yayımlandığında bile tek bir devasa yama olarak push edilmişti
    • GoldSrc issue tracker'ındaki bug'ların da neredeyse tamamı yıllardır görmezden geliniyor
    • Gerçekten, gerçekten, gerçekten pek olası değil. Yine de birinin Steam'de çalışan oyunun topluluk fork'unu yönetmesini isterdim