2 puan yazan GN⁺ 2024-10-23 | 1 yorum | WhatsApp'ta paylaş
  • Counter-Strike: Football, iki futbol taraftarı takımının daha fazla round kazanmak için mücadele ettiği rekabetçi çok oyunculu bir FPS oyunudur
  • Takımlar Attackers ve Defenders olarak ayrılır; Defenders, Attackers’ın graffiti bomb ball ile fan base sanctuary’yi hedef almasını engellemelidir
  • Round kazanma koşulları oyuncuları eleme, bombayı kurma, etkisiz hale getirme ve süre sonunda hayatta kalmaya göre belirlenir; bomba kurulduğunda round geri sayımı 40 saniyeye ayarlanır
  • Çalıştırılabilir dosyalar en güncel sürümde işletim sistemine göre asset olarak indirilebilir; kaynaktan derlemek için Electron istemcisi ile PHP sunucusunu ayrı ayrı çalıştırmak gerekir
  • Proje, html/css/js/php bilen katkıcıların yanı sıra 3D modelleme, tekstürleme ve animasyon alanlarında katkı verecek kişileri de pull request ile bekliyor

Oyun özeti

  • Counter-Strike: Football, iki futbol taraftarı takımının rakibinden daha fazla round kazanmak amacıyla savaştığı rekabetçi çok oyunculu bir FPS oyunudur
  • Oyun indirme bağlantısı Download game sayfasında sunulmaktadır
  • README’nin üst kısmındaki rozetlere göre testler, Code coverage 100% ve Mutation score 100% gösterilmektedir

Takımlar ve round hedefleri

  • Takımlar Attackers ve Defenders olarak oluşur
  • Defenders’ın hedefi, her roundda Attackers’ın graffiti bomb ball ile fan base sanctuary’ye zarar vermesini engellemektir

Kazanma koşulları

  • Defenders şu koşullarda roundu kazanır
    • Bomba kurulmadan önce tüm Attackers oyuncularını etkisiz hale getirirse
    • Bomba patlamadan önce etkisiz hale getirirse
    • Round süresi bittiğinde en az 1 oyuncu hayattaysa ve bomba kurulmamışsa
  • Attackers şu koşullarda roundu kazanır
    • Round süresi dolmadan tüm Defenders oyuncularını etkisiz hale getirirse
    • Round süresi dolmadan bombayı kurup Defenders’ın etkisiz hale getirmesini engellerse
  • Attackers, round süresi bitmeden graffiti bomb’ı yerleştirirse round geri sayımı 40 saniyeye ayarlanır
    • Defenders’ın bombayı etkisiz hale getirmesi için 30 saniye gerekir
    • defuse kit kullanılması durumunda etkisiz hale getirme süresi 35 saniyedir

Kurulum ve çalıştırma

  • İşletim sistemine göre çalıştırılabilir dosyalar latest release sayfasından indirilebilir
  • İstemci, electron/ klasöründe npm komutlarıyla çalıştırılır
    cd electron/
    npm install
    npm run dev
    
  • Sunucu, Composer bağımlılıkları kurulduktan sonra PHP CLI ile çalıştırılır
    composer install -a --no-dev
    php cli/server.php 2 # will start server waiting for 2 players to connect
    

Katkı verme yöntemi

  • Proje, html/css/js/php bilen katkıcılar arıyor
  • 3D modelleme, tekstürleme ve animasyon becerilerine sahip kişiler de pull request ile oyunun geliştirilmesine katkıda bulunabilir

1 yorum

 
GN⁺ 2024-10-23
Hacker News yorumları
  • PHP sunucuya Electron istemcisi gerçekten harika. Düzgün namespace’lerin bile olmadığı dönemlerden beri PHP’ye uzun zamandır dokunmamıştım; bu gerçekten şaşırtıcı
    Muazzam bir emek ve boş zamanımda bu projeye yardım etmek istiyorum. Böyle çılgın projelerden daha çok olmalı

    • Eğlenceli biçimde yapılabilecek bir oyun yapın sözünü hatırlatıyor
    • Ben de benzer hissediyorum. PHP ile yazılmış gerçek zamanlı oyun sunucusu gerçekten ilginç
      Eski PHP’yi ve bazı CMS’lerdeki PHP’yi biliyordum ama gerçek zamanlı bir proje aklıma gelmezdi; şaşırtıcı
    • Electron ise ben yokum
    • Aslında 15 yıl önce de yapılabilirdi. Çocukken sadece PHP ve biraz Visual Basic bildiğim için PHP ile CLI sunucuları yapardım
      socket_select() kullanınca asenkron sunucu yapılabiliyordu; bu fonksiyon PHP 4.1’de eklenmişti
      https://www.php.net/manual/en/function.socket-select.php
      15 yıl önce PHP’ye thread ekleyen üçüncü taraf bir eklenti de vardı ama çok hatalıydı
  • Bilgi olarak, istemci tarafı www/assets altında. https://github.com/solcloud/Counter-Strike/tree/master/www/a...
    threejs dışında bağımlılığı yok, TypeScript ya da build pipeline da yok. Kodu okumak başlı başına keyifli

  • GitHub dil istatistiklerine bakınca %82 PHP, %15 JS ve biraz HTML/CSS görünüyor; gerçek istemcinin neyle yapıldığını merak ediyorum
    Başka bir depoda mı, yoksa her şey PHP ile mi uygulanmış? Öyleyse etkileyici
    “Düşük şiddetli oyun” açıklaması; yüzlere ateş edilen, bomba kurulup imha edilen ve vurulurken hayatta kalmaya çalışılan bir oyun için komik
    Ayrıca OP’nin hiç futbol sahası görüp görmediğini de merak ediyorum. Artı işareti ve pek uymayan çizgiler epey göze çarpıyor ama futbol asıl konu olmadığı için çok önemli değildir herhalde

    • Mutlaka ateş etmek zorundasın diye bir şey yok. Karizma rotasına gidip teröristleri bombayı kurmaktan vazgeçmeye ikna edebilirsin
    • Şiddet içeren video oyunlarına ahlaki olarak karşı değilim ama büyük bütçeli oyunlarda daha fazla yaratıcılık olmasını isterdim
      Toplumun sahip olduğu en etkileşimli mecralardan biri ama her yıl milyarlarca dolar yine başka bir “silahlı adamın ateş etmesi: silahlar edisyonu”na gidiyor
      Biraz konu dışına çıktım ama bu proje yine de son derece etkileyici ve CS’yi binlerce saat oynadığım için böyle bir şeyi görmek harika
    • İstemci kodunu www altında görebilirsiniz: https://github.com/solcloud/Counter-Strike/tree/master/www
      İstemci ağırlıklı olarak JavaScript ve grafikler için Three.js kullanıyor
    • Evet, tüm kod bu tek depoda
      Hayvan yok etme açıklamasına biraz fazla kapıldım
      Artı işaretiyle ilgili eleştiri hoşuma gitti. Mizah anlayışım biraz tuhaf olabilir ya da Avrupa’da büyürken kasklı Amerikan futbolu oyuncularının çıktığı Amerikan filmlerini izlememden kaynaklanıyor olabilir
      Şakayı daha da ileri götürürsek PHP CLI arayüzü de var (https://github.com/solcloud/Counter-Strike/blob/master/cli/c...)
      Ancak terminal emülatörünüzde havalı Matrix tarzı bir yazı tipi yoksa sahada yatan kırmızı elbiseli kadını görememe ihtimaliniz yüksek
  • Çok güzel. Yan not olarak, en azından ekran görüntüleri bana 90’ların PC oyunu Extreme Paintbrawl’u çok hatırlattı
    Çocukken gerçekten severdim; birkaç yıl sonra “tüm zamanların en kötü video oyunlarından biri” olarak değerlendirildiğini öğrendim
    https://en.wikipedia.org/wiki/Extreme_PaintBrawl

    • Bir arkadaşımda bu oyun vardı ve birlikte gerçekten çok eğlenmiştik
    • Sevgi çok kişisel bir duygu; o birincilik yeri için her zaman kavga edebilirim
  • Açık kaynak kod iyi ama oyunların gerçekten ihtiyaç duyduğu şey açık sanat varlıkları. Çoğu açık kaynak oyun görünüm ve his konusunda zorlanıyor

    • Katılıyorum. Ama hem programlamada hem sanatta iyi olmak epey nadir bir beceri; üstüne ses ve animasyon alanları da ayrı
  • Lisans dosyası ekleyebilir misiniz?

    • Ekleyebilirim ama avukat değilim ve Gaben ile avukatlarıyla randevuya çıkmak istemiyorum
      Gabe, gooseman, Jess ile randevu olur. Öneriniz varsa paylaşırsanız iyi olur
  • Birkaç kişi lisans eklenmesini söyleyeli saatler geçmesine rağmen hâlâ açık kaynak değil
    Açık kaynak olmayan bir şeye açık kaynak demek gerçekten doğru değil ve özgür/açık kaynak yazılıma zarar veriyor

    • Açık kaynak, evet. Kaynak depoda herkesin okuyabileceği şekilde duruyor
      Özgür yazılım olmasa da açık kaynak olabilir; lisans olmasa da açık kaynak olabilir. Sahibi kodu dünyaya açıp okunabilir hale getirdiyse açık kaynaktır
    • O zaman ne demeliyiz? Kaynağı açık?
    • https://github.com/solcloud/Counter-Strike/blob/master/LICEN...
    • “Geliştirici, açık yazılım için uygun bir lisans önemlidir. Aksi halde hukuki sorunlar çıkabilir” demek yeterli
    • Tamam tamam, açık kaynağa zarar veriyorum demek. Açık kaynaktan özür dilerim
  • Bunu açık kaynak olarak yayımlamak harika. 3D oyun geliştirme denemek isteyenler için mükemmel bir başlangıç noktası

  • Açık kaynak varlıklara sahip bir Counter-Strike 1.6 sürümü olsa güzel olurdu
    Quake’in OpenArena’sına benzer ama CS 1.6 için olan bir şey gibi
    https://github.com/Velaron/cs16-client üzerine de yapılabilir gibi

  • Gerçekten etkileyici açık kaynak oyunlar var. Oyun seven arkadaş grubum sayesinde geçen yıl BAR’ı (Beyond All Reason) öğrendim; derinlik, grafikler ve optimizasyon açısından gerçekten etkileyici
    Böyle bir gelecek hoşuma gidiyor

    • Birkaç hafta önce BAR’ı öğrendim; artık pek oyuncu da sayılmam ve gerçek zamanlı strateji oyunlarını hiç sevmemiştim ama şimdiden oyun içi sürem 50 saati geçti
      Detay düzeyi ve özenli uygulama beni çok etkiledi. Kontrol seviyesi ve otomasyon imkânı yüksek olduğu için teknik eğilimli insanlara oldukça iyi uyacak gibi
      Birlikte oynamak isterseniz oyun içi kullanıcı adım [ZWD]_jaan. Arkadaş eklerseniz temel kavramları tanıtabilirim; ben de hâlâ acemiyim ama co-op oyun oynayabilir ya da acemi lobisi bulabiliriz
    • BAR gerçekten harika. Total Annihilation/Supreme Commander tarzı oyunları seviyorsanız kesinlikle bakmaya değer
      Lua ile oyunu kolayca değiştirebiliyorsunuz ve özgür/açık kaynak bir oyuna göre topluluğu da epey büyük görünüyor