Jump to content

Recommended Posts

Posted (edited)

Boas,

Já ando de volta disto á muito tempo e não encontro qualquer informação/explicação de como fazer...

Eu queria fazer algo do género da ESL (http://www.esl.eu/pt/).

Mas apenas para 1 jogo, GTA San Andreas Multiplayer (http://sa-mp.com/).

O que prentendo ?

O Player pelo Website clicava num link do género "Criar party", ele ao carregar nesse link, gerava um link para outros players entrarem nessa party (Com um limite de 5 players a contar com o criador da party). Depois quando ele já tivesse chamado todos os amigos, ele clicava em "Play Game", e automaticamente iriam para um sistema de busca de outros players para jogarem contra os mesmo.

É possivel o player clicar logo em "play game" sem criar a "party". (Ele iria logo para o sistema de busca.)

Minhas dúvidas ?

  • Criar essas devidas partys com os links e com o limite de 5 players.
  • Criar esse sistema de busca dos players

Exemplo:

https://www.youtube.com/embed/n-9ZVGdXi1Y?feature=oembed

Cumprimentos.

Edited by RuiAlmeida20
Posted

Não é difícil, o que é que já idealizaste em termos de código/base de dados?

O URL não é mais do que um token (uma cadeia de caracteres) e depois podes utilizar sistemas como o tinyUrl para gerar um url mais curto.

  • Vote 1
Posted (edited)

A parte do URL já eu resolvi usando o bit.ly e o um API...

Eu para o sistema (registo/login) vou usar o SMF , então é o único código que tenho pois não sie bem as funções que terei de usar para criar essa tal "party"...

Agora tu vais pensar ele quer é o código pronto.. Não eu apenas quero uma lista de funções que poderei usar e assim formar o meu código, e esclarecer aqui dúvidas que eu tenha ao longo do tempo de desenvolver o projecto...

Já agora, mais uma dúvida:

É possível controlar uma VPS linux (debian) com PHP ?

Edited by RuiAlmeida20
Posted

Para que cries um sistema de procura de outros jogadores, precisas, sempre que há interesse em criar um match, gravar esse mesmo pedido na base de dados.

Depois é só fazer uma procura à base de dados pelos jogos que estão pendentes na base de dados.

A única coisa que tenho dúvidas será em relação ao IP, quem é que trata dos servidores? Para que haja um match tem, obrigatoriamente, de haver um servidor...tens sponsors? Se tiveres será necessário também gravar o ip do servidor na base de dados para posterior executar o match naquele mesmo ip e atribuir a parte dos admin rights a alguém.

Posted (edited)

Parte dos servidores eu vou ter umas quantas VPS's para ter uns quantos servidores para não dar lag nos mesmos.

E sim ja tinha essa ideia que os tinha de colocar na db cada servidor que eu tenha, para depois ter uma boolean de true ( se o servidor ja estiver a ser usado nesse momento ) ou o contrario...

A parte dos admins, não é necessário o "GameMode" que eu vou fazer para o servidor vai ser automático, detectar se perde vidas nas quedas etc... E executar as bases.. Entre outros...

A minha duvida será mesmo o sistema de busca de matchs...

Como terei de ter a db ?

Terei de usar javascript para atualizar se encontrou em tempo real ?

Edited by RuiAlmeida20
Posted

Sim, precisarás nomeadamente de Ajax que corra de X em X segundos que faça uma query à base de dados e que verifice se, a procura que o jogador actual fez, se enquadra nas procuras que estão actualmente em curso.

Não sei se conheces o jogo League of Legends (?), mas o sistema deles é simples. Enquanto estiveres à procura de match é colocado um indicador (com os parâmetros que bem entenderes) na base de dados. Se por ventura desistires esse mesmo indicador é removido.

Posted

sim,não so conheço como jogo. XD

Estas a dizer, por exemplo eu ter uma boolean na row do user que me indique se ele esta à procura de math caso esteja e se encontrar mais 9 players ao acaso, faço um start math ?

E na parte de fazer a party ?

(Para fazer o género de uma equipa)

Ja agora, ajax nunca usei, não me deixas em um guide ? (tutorial, explicação de como usar)

Posted

Tens de definir os parâmetros dos jogos, que podem ser vários. Logo à cabeça tens o tipo de jogo (1vs1, 2vs2, 3vs3, 4vs4, 5vs5), logo, quando um jogador definir esse tipo de jogo, só vais procurar na base de dados pelo tipo de jogo que ele está à procura.

Sempre que haja alguém interessado no mesmo tipo de jogo e assim que esse tipo de jogo estiver completo a nível de jogadores, deves transferir os mesmos para uma outra tabela de forma a criar uma party só com aqueles jogadores.

O ideal será não começares já com Ajax porque até nem vale a pena enquanto não tiveres o que te acabei de dizer a funcionar em pleno.

Posted

Atualmente so pretendo ter mesmo o modo de 5x5, o melhor para eu começar deve ser criar as tabelas na db.. (De espera, das partys e das match)

Mas depois como fazer se por exemplo, so se juntarem 3 players à party, completala com mais dois membros aleatorios q estejam à espera de match ?

Posted

Terás uma tabela secundária cujo objectivo é atribuir a cada match os devidos jogadores. A única coisa que tens de fazer antes de criar um match é verificar se já existe em curso algum, pois caso não haja terás de o criar.

Se queres um exemplo básico da construção da tabelas necessárias:

Tabela Match

id        -> int,
type      -> int/varchar (5vs5, 4vs4, etc),
data      -> datetime,
status    -> int (0 = pending; 1 = success; 2 = denied) -> meramente estatístico no fim

Tabela Match_Players

id        -> int,
id_match  -> int,
id_player -> int
Posted

Não tinha pensado numa estrutura assim tão simples... Mas é a melhor maneira.

Na tabela match_players terei de ter a coluna "id_party...

Quando chegar a casa começo a trabalhar, que ainda é um bocado para alcançar o que pretendo para o projecto...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.