Descrição do Projeto:
Ideia:
Matchmaking (estilo GC, porém como a fila PRO, onde os jogadores entram em uma fila e, ao somar 10, um jogo é formado).
Funcionalidades:
- Login/Registro
- Mensalidade (para liberar acesso à fila de jogos, precisamos de um sistema de gateway de pagamento, que pode ser Mercado Pago, apenas para pagamentos via PIX)
- Fila de jogos (ao somar 10 jogadores na fila, o jogo é iniciado, onde o sistema precisa definir 5 jogadores em cada lado. Para garantir que nenhum deles esteja AFK, todos os 10 precisam clicar no botão "pronto" para que o jogo comece de fato. Caso contrário, todos são retirados da fila e podem clicar novamente. Nesse ambiente, onde o jogador pode iniciar a fila, precisamos que seja mostrado quantos jogos estão em andamento e quantas pessoas já estão na fila, com essa informação atualizada em tempo real, tanto quando entram quanto quando saem da fila).
- Sistema de escolha de mapa (ao definir os times e todos os jogadores terem clicado em "pronto", inicia a votação para escolha de mapa).
- Lobby (ao finalizar a votação de mapa, os jogadores serão redirecionados para uma tela de "lobby", onde todas as informações estarão disponíveis, desde os 10 jogadores em seus respectivos times (time GR e time BL), onde encontrarão as informações do mapa escolhido e também a key do anticheater. Se possível, os nomes dos jogadores em cada time devem aparecer seguidos dos pontos totais que cada um tem até o momento).
- Sistema de keys de anticheater (o anticheater do Crossfire precisa de uma key e uma senha para o jogador logar. Precisamos de uma forma para o administrador abastecer essas keys, que serão enviadas no lobby e, assim que enviadas, podem ser deletadas do sistema, já que serão de uso único. O abastecimento de keys pode ser feito pelo banco de dados; nesse caso, precisaríamos da explicação de como fazer essa correção).
- Sistema de salas de Teamspeak (temos 2 opções aqui, mas para deixar claro, essa informação também precisa estar no lobby, para que os jogadores cliquem e vão para suas respectivas salas do Teamspeak, que é o sistema usado para comunicação entre eles. A primeira opção é a utilização da API para criar salas aleatórias, uma para cada time, sempre que for gerada uma partida nas filas. A segunda opção é já ter essas salas criadas e com o link gerado para serem enviadas da mesma forma que o anticheater).
- Sistema de ranking (os jogadores iniciarão com uma quantidade definida de pontos e, ao jogar uma partida, em caso de vitória, receberão 3 pontos; em caso de derrota, receberão -2 pontos).
- Sistema de edição/correção de pontos (o administrador precisa poder editar ou corrigir dados de jogadores individualmente. Pode ser direto pelo banco de dados; nesse caso, precisaríamos da explicação de como fazer essa correção).
- Sistema de definição do vencedor (ao finalizar o jogo, 75% dos jogadores precisam votar no time vencedor para que seja definido quem venceu. O botão "Time GR vencedor" ou "Time BL vencedor" ficará no "lobby" e os jogadores serão enviados para a página da fila ao finalizar a partida, com a notificação do time que foi vencedor. Caso o time em que o jogador esteja tenha sido vencedor, a notificação mostrará a quantidade de pontos que ele ganhou e, no caso contrário, a mesma coisa, porém com os pontos que ele perdeu).
Estrutura do site:
> Página de login/registro (dados necessários para registro serão passados)
> Página de perfil, onde o usuário poderá ver seus próprios dados e seu ranking
> Landing page inicial com informações relacionadas a como jogar, preços e ranking geral de jogadores
> Página de jogos, onde ficarão os tipos de jogos (inicialmente teremos apenas o PUG, que são as filas)
> Página da fila, quando o usuário clicar para jogar
> Página de confirmação de presença, onde o usuário precisa clicar em "pronto" para confirmar sua presença
> Página de votação de mapa
> Página de "Lobby", onde todos os jogadores presentes terão as informações vitais para iniciar o jogo, como o time em que caíram, mapa que foi selecionado na votação, key para o anticheater e botão para entrar na sua respectiva sala do Teamspeak 3.
Referência: https://youtu.be/OFzhMgWFmk8?si=Byu5-RHeBWcXt_Kf