Show HN: 'Rebels in the Sky', um jogo de terminal sobre piratas espaciais
(github.com/ricott1)- Rebels in the Sky é um jogo de terminal ambientado em 2101, quando corporações dominaram o mundo, no qual o jogador monta uma tripulação de piratas espaciais e vagueia pela galáxia em busca de adversários de basquete
- O jogo está em desenvolvimento ativo, então mudanças incompatíveis são frequentes; se arquivos de save antigos forem invalidados, é preciso começar um novo jogo ou verificar em uma issue se é possível migrar o save
- Para experimentar imediatamente, você pode acessar o frittura-hub com
ssh frittura.orgou selecionarrebelsno hub web - A execução é feita rodando
./rebelsno terminal; o tamanho mínimo recomendado do terminal é 160x48 e alguns terminais podem não representar bem as cores - Por padrão, times de bots locais são gerados, e isso pode ser desativado com a flag
-f; no futuro, quando houver mais jogadores, o padrão deve mudar para apenas times online
Configuração do jogo e estado atual
- Rebels in the Sky se passa em 2101
- as corporações dominaram o mundo
- a forma de se libertar é entrar para uma tripulação pirata e saquear a galáxia
- o meio de sobrevivência é o basquete
- O jogador cria sua própria tripulação e passa a vagar pela galáxia em busca de adversários de basquete que valham a pena
- O jogo está em estado de heavy development, com mudanças incompatíveis sendo introduzidas com frequência
- arquivos de save antigos podem ser invalidados, impedindo a continuação da partida
- nesse caso, é preciso começar um novo jogo ou abrir uma issue para verificar se o save pode ser migrado
- São fornecidos um Trailer on youtube e uma Wiki
Experimente agora
- É possível experimentar o jogo acessando o frittura-hub via SSH
- comando:
ssh frittura.org
- comando:
- Também é possível acessar o hub pela web e depois selecionar
rebels- endereço:
https://hub.frittura.org
- endereço:
Instalação e build
- Para fazer o build manualmente, são necessárias dependências específicas por plataforma
- Linux:
libasound2-dev,cmake - MacOs:
cmake - Windows: cmake
- Linux:
- É necessário o Rust toolchain; depois de clonar o repositório, faça o build com o seguinte comando
cargo build --release
- Também é possível instalar com
cargocargo install rebels
- Outra opção é instalar baixando os assets da release mais recente
- os assets de release podem ser baixados em
https://rebels.frittura.orgconforme a sua plataforma - dê permissão de execução ao binário com
chmod +x rebels
- os assets de release podem ser baixados em
- Pacotes para distribuições também são fornecidos
- Arch Linux:
pacman -S rebels-in-the-skyem official repositories - MacPorts:
sudo port install rebels-in-the-skyem available ports
- Arch Linux:
Ambiente de execução e condições de jogo
- O jogo roda como um aplicativo de terminal
- comando de execução:
./rebels
- comando de execução:
- O tamanho mínimo recomendado do terminal é 160x48
- Nem todo terminal oferece bom suporte às cores do jogo, então pode ser necessário testar outro terminal
- Os seguintes terminais foram testados
- No momento, para tornar o jogo mais divertido, times de bots locais são criados por padrão
- você pode desativar esse comportamento passando a flag
-fao executável - no futuro, quando houver mais jogadores, o padrão deve mudar para apenas times online
- você pode desativar esse comportamento passando a flag
Música e dados
- A música é transmitida por rádio via internet
- Para adicionar mais estações de rádio, basta incluí-las em
assets/data/stream_data.json
Contribuição e relato de bugs
- O jogo ainda não tem um roadmap fixo
- Quem quiser participar com ideias pode entrar no discord
- É muito provável que você encontre bugs durante a jornada
- se um bug ocorrer, abra uma issue e descreva o que aconteceu
- Desenvolvedores podem contribuir abrindo pull requests
Nó relayer e servidor SSH
- Executar um relayer node ajuda a manter a descentralização do jogo
- comando:
rebels -n - outros jogadores podem se conectar a esse relayer na inicialização com
rebels -i <RELAYER-NODE-IP4-OR-IP6> - se você operar um relayer, pode considerar abrir um PR para adicionar o endereço à lista de relayers conhecidos
- comando:
- Para executar o relayer, é preciso fazer o build com a feature
relayerativadacargo build --release --features "relayer"
- Também é possível executar um servidor SSH
- comando:
rebels -j - outros jogadores podem se conectar com
ssh <USERNAME>@<SERVER-IP4-OR-IP6> -p 3788
- comando:
- Para executar o servidor SSH, é preciso fazer o build com a feature
sshativadacargo build --release --features "ssh"
Licença
- Este software é distribuído sob a licença GPLv3
1 comentários
Comentários no Hacker News
Meu servidor não está dando conta de todo o tráfego, mas acho que isso acaba sendo uma oportunidade para mostrar que este jogo não precisa de uma autoridade central para continuar funcionando.
Criei outro nó de retransmissão e um nó SSH em 85.214.130.204, e dá para conectar com
ssh 85.214.130.204 -p 3788. Porém, a retransmissão pode não funcionar, porque tenta se conectar ao servidor antigo.Ou você pode executar o cliente local com a flag
rebels -i 85.214.130.204para especificar o endereço IP de um nó de retransmissão alternativo.Se o link do trailer não funcionar, há outro link: https://rebels.frittura.org/demo_v1.0.18.mp4
https://github.com/user-attachments/assets/aaa02f04-06db-4da...
E a música thug boy me lembrou tanto Fist of the North Star que quase quebrei o pescoço. Excelente escolha.
A animação dos planetas/satélites é muito legal.
Tenho um amigo que jogava FTL, e eu sempre achei que fosse só um jogo de terminal maneiro.
Muito divertido! Também roda bem no Windows Terminal. Mouse, teclado e cores, tudo sem problema.
Parece bem original, mas um pouco intimidador para se acostumar. Pretendo experimentar depois.
Como feedback, há tantos temas misturados que, mesmo vendo o vídeo, fica difícil entender como é o gameplay. Por exemplo, não fica muito claro quando se realiza uma ação e quando se move a tela.
A ideia de ser um jogo totalmente P2P é interessante. Que tipo de interação os usuários podem ter entre si?
Como essas interações precisam garantir um estado consistente ao terminar, são tratadas de modo parecido com um handshake TCP. Por exemplo, uma troca de jogadores precisa ser refletida de forma consistente nos dois lados.
Por isso, interações em tempo real não são fáceis. Mesmo quando um desafia o outro, os jogadores só concordam com as condições iniciais da partida; depois disso, o jogo é simulado de forma independente e determinística nos clientes dos dois lados.
O vídeo no README parece não funcionar em todos os navegadores. No meu caso, não funcionou no Firefox.
Este jogo foi feito com Godot? Parece usar o asset pixel planet generator do itch.
https://deep-fold.itch.io/pixel-planet-generator