HN destaca: jogo open source semelhante a Counter-Strike
(github.com/solcloud)- 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 npmcd 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
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
Eu só conhecia o PHP antigo e o PHP usado em alguns CMS, então nunca tinha pensado em projetos em tempo real; é surpreendente
Com
socket_select()dava para criar servidores assíncronos, e essa função foi adicionada no PHP 4.1https://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
start.js(https://github.com/solcloud/Counter-Strike/blob/master/www/a...)O ponto de entrada do servidor é
server.php(https://github.com/solcloud/Counter-Strike/blob/master/cli/s...)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
É 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
www: https://github.com/solcloud/Counter-Strike/tree/master/wwwO cliente é em grande parte JavaScript, e os gráficos usam Three.js
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
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
Dá para adicionar um arquivo de licença?
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
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
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
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É fácil modificar o jogo com Lua, e a comunidade também parece bem grande para um jogo livre e open source