2 pontos por GN⁺ 2024-10-23 | 1 comentários | Compartilhar no WhatsApp
  • Counter-Strike: Football é um jogo FPS multiplayer competitivo em que duas equipes de torcedores disputam quem vence mais rodadas
  • As equipes se dividem em Attackers e Defenders, e os Defenders precisam proteger o fan base sanctuary da graffiti bomb ball dos Attackers
  • As condições de vitória da rodada variam entre eliminações, plantio da bomba, desarme e sobrevivência até o fim do tempo; quando a bomba é plantada, a contagem regressiva da rodada é definida em 40 segundos
  • Os executáveis podem ser baixados como assets por sistema operacional na versão mais recente, e para compilar direto do código-fonte é preciso executar separadamente o cliente Electron e o servidor PHP
  • O projeto está aceitando pull requests de colaboradores com conhecimentos em html/css/js/php e também em modelagem 3D, texturização e animação

Visão geral do jogo

  • Counter-Strike: Football é um jogo FPS multiplayer competitivo em que duas equipes de torcedores lutam para vencer mais rodadas que o adversário
  • O download do jogo está disponível em Download game
  • De acordo com os badges no topo do README, aparecem teste, Code coverage 100% e Mutation score 100%

Equipes e objetivo das rodadas

  • As equipes são compostas por Attackers e Defenders
  • O objetivo dos Defenders em cada rodada é impedir que os Attackers vandalizem o fan base sanctuary com a graffiti bomb ball

Condições de vitória

  • Os Defenders vencem a rodada nas seguintes condições
    • Eliminam todos os jogadores dos Attackers antes de a bomba ser plantada
    • Desarmam a bomba antes que ela exploda
    • Pelo menos 1 jogador sobrevive quando o tempo da rodada acaba e a bomba não foi plantada
  • Os Attackers vencem a rodada nas seguintes condições
    • Eliminam todos os jogadores dos Defenders antes de o tempo da rodada acabar
    • Plantam a bomba antes de o tempo da rodada acabar e impedem que os Defenders a desarmem
  • Se os Attackers colocarem a graffiti bomb antes do fim do tempo da rodada, a contagem regressiva da rodada é definida em 40 segundos
    • Os Defenders precisam de 30 segundos para desarmar a bomba
    • Ao usar um defuse kit, o tempo de desarme é de 35 segundos

Instalação e execução

  • Os executáveis para cada sistema operacional podem ser baixados na latest release
  • O cliente é executado na pasta electron/ com comandos npm
    cd electron/
    npm install
    npm run dev
    
  • O servidor é executado com PHP CLI após instalar as dependências do Composer
    composer install -a --no-dev
    php cli/server.php 2 # will start server waiting for 2 players to connect
    

Como contribuir

  • O projeto está procurando colaboradores que conheçam html/css/js/php
  • Pessoas com habilidades em modelagem 3D, texturização e animação também podem participar da melhoria do jogo por meio de pull requests

1 comentários

 
GN⁺ 2024-10-23
Comentários do Hacker News
  • Cliente em Electron com servidor em PHP é impressionante. Faz muito tempo que não mexo de verdade com PHP, desde a época em que ele nem tinha namespaces decentes, então isso realmente me surpreende
    É um esforço enorme e me dá vontade de ajudar esse projeto no tempo livre. Precisamos de mais projetos malucos assim

    • Isso me faz pensar naquele conselho de fazer um jogo que seja divertido de criar
    • Tive uma sensação parecida. Um servidor de jogo em tempo real escrito em PHP é realmente interessante
      Eu só conhecia o PHP antigo e o PHP usado em alguns CMS, então nunca tinha pensado em projetos em tempo real; é surpreendente
    • Se é Electron, eu tô fora
    • Na verdade, isso já podia ser feito há 15 anos. Quando eu era mais novo, como só conhecia PHP e um pouco de Visual Basic, eu fazia servidores CLI em PHP
      Com socket_select() dava para criar servidores assíncronos, e essa função foi adicionada no PHP 4.1
      https://www.php.net/manual/en/function.socket-select.php
      Também existiam extensões de terceiros para adicionar threads ao PHP 15 anos atrás, mas tinham muitos bugs
  • Só para referência, o lado do cliente fica em www/assets. https://github.com/solcloud/Counter-Strike/tree/master/www/a...
    Não há dependências além de threejs, e também não tem TypeScript nem pipeline de build. É divertido simplesmente ler o código

  • Pelas estatísticas de linguagem do GitHub, é 82% PHP, 15% JS e um pouco de HTML/CSS, então fiquei curioso sobre do que exatamente o cliente é feito
    Está em outro repositório ou foi tudo implementado em PHP? Se foi, é impressionante
    A descrição de “jogo de baixa violência” é engraçada para um jogo em que você atira na cara das pessoas, planta/desarma bombas e tenta sobreviver levando tiros
    Além disso, fico curioso se o OP já viu um campo de futebol; há várias linhas que não combinam com a marcação em cruz, mas como futebol não é o foco, isso provavelmente não importa tanto

    • Ninguém disse que você precisa atirar. Você pode seguir a rota do carisma e convencer os terroristas a desistirem de plantar a bomba
    • Não sou moralmente contra videogames violentos em si, mas queria ver mais criatividade nos jogos de grande orçamento
      É um dos meios mais interativos que a sociedade tem, e ainda assim bilhões de dólares por ano vão para mais um “homem atirando com arma: edição armas”
      Mas enfim, me desviei um pouco; o projeto continua sendo muito impressionante, e como joguei CS por milhares de horas, é muito legal ver isso
    • O código do cliente pode ser visto em www: https://github.com/solcloud/Counter-Strike/tree/master/www
      O cliente é em grande parte JavaScript, e os gráficos usam Three.js
    • Sim, todo o código está nesse único repositório
      Eu realmente me empolguei um pouco com a descrição sobre destruir animais
      Gostei da observação sobre a marca em cruz. Talvez eu tenha um senso de humor meio estranho, ou talvez seja por ter crescido na Europa vendo filmes americanos com jogadores de futebol americano de capacete
      Indo ainda mais para o lado da piada, também existe uma interface PHP CLI (https://github.com/solcloud/Counter-Strike/blob/master/cli/c...)
      Só que, se o seu emulador de terminal não tiver uma fonte estilosa no estilo Matrix, você provavelmente não vai conseguir ver a mulher de vestido vermelho deitada no campo
  • Muito legal. Como curiosidade paralela, pelo menos as capturas de tela me lembram bastante o jogo de PC dos anos 90 Extreme Paintbrawl
    Eu adorava quando era criança, e só anos depois descobri que ele é considerado “um dos piores videogames de todos os tempos”
    https://en.wikipedia.org/wiki/Extreme_PaintBrawl

    • Um amigo meu tinha esse jogo, e nós nos divertíamos muito jogando juntos
    • Amor é um sentimento muito específico; eu toparia discutir a qualquer momento quem merece o primeiro lugar nessa lista
  • Código de código aberto é ótimo, mas o que os jogos realmente precisam é de arte aberta. A maioria dos jogos de código aberto sofre na aparência e na sensação

    • Concordo. Mas ser bom tanto em programação quanto em arte já é uma habilidade bem rara, e ainda por cima existem as áreas separadas de áudio e animação
  • Dá para adicionar um arquivo de licença?

    • Até dá, mas eu não sou advogado e não quero sair com Gaben e os advogados dele
      Sair com Gabe, gooseman e Jess tudo bem. Se alguém tiver uma sugestão, seria ótimo compartilhar
  • Já se passaram várias horas desde que várias pessoas pediram para colocar uma licença, e ainda não é open source
    Chamar algo que não é open source de open source realmente não é legal, e prejudica o software livre e de código aberto

    • É open source sim. O código-fonte está ali no repositório para qualquer um ler
      Pode não ser software livre e ainda assim ser open source, e pode ser open source mesmo sem licença. Se o dono abriu o código para o mundo ler, então é open source
    • Então como isso deveria ser chamado? Código-fonte disponível?
    • https://github.com/solcloud/Counter-Strike/blob/master/LICEN...
    • Basta dizer: “Criador, uma licença apropriada é importante para software aberto. Sem ela, você pode acabar com problemas legais”
    • Tá, tá, então eu estou prejudicando o open source. Peço desculpas ao open source
  • Foi legal disponibilizar isso como open source. É um ótimo ponto de partida para quem quer experimentar desenvolvimento de jogos 3D

  • Seria ótimo ter uma versão de Counter-Strike 1.6 com assets abertos
    Algo parecido com o que OpenArena é para Quake, mas para CS 1.6
    Talvez até pudesse ser feito em cima de https://github.com/Velaron/cs16-client

  • Existem vários jogos open source realmente impressionantes. Graças a um grupo de amigos que gosta de jogos, conheci BAR (Beyond All Reason) no ano passado, e fiquei muito impressionado com a profundidade, os gráficos e a otimização
    Gosto desse futuro

    • Conheci BAR algumas semanas atrás, e agora já passei de 50 horas de jogo, mesmo nem sendo muito gamer e nunca tendo sido fã de RTS
      Fiquei muito impressionado com o nível de detalhe e o cuidado da implementação. O nível de controle e as possibilidades de automação são altos, então parece combinar bastante com pessoas mais orientadas à tecnologia
      Se alguém quiser jogar junto, meu nome de usuário no jogo é [ZWD]_jaan. Se me adicionar como amigo, posso apresentar os conceitos básicos e, embora eu ainda seja iniciante, dá para jogar cooperativo ou procurar lobbies para novatos
    • BAR é realmente excelente. Se você gosta de jogos como Total Annihilation/Supreme Commander, vale muito a pena conferir
      É fácil modificar o jogo com Lua, e a comunidade também parece bem grande para um jogo livre e open source