RuiAlmeida20 Posted May 31, 2014 at 07:10 AM Report #557721 Posted May 31, 2014 at 07:10 AM (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 May 31, 2014 at 07:11 AM by RuiAlmeida20
bioshock Posted May 31, 2014 at 08:31 AM Report #557722 Posted May 31, 2014 at 08:31 AM 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. 1 Report
RuiAlmeida20 Posted May 31, 2014 at 10:42 AM Author Report #557724 Posted May 31, 2014 at 10:42 AM (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 May 31, 2014 at 10:44 AM by RuiAlmeida20
bioshock Posted June 1, 2014 at 05:34 PM Report #557821 Posted June 1, 2014 at 05:34 PM 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.
RuiAlmeida20 Posted June 1, 2014 at 08:15 PM Author Report #557832 Posted June 1, 2014 at 08:15 PM (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 June 1, 2014 at 08:21 PM by RuiAlmeida20
bioshock Posted June 1, 2014 at 09:13 PM Report #557838 Posted June 1, 2014 at 09:13 PM 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.
RuiAlmeida20 Posted June 1, 2014 at 09:54 PM Author Report #557851 Posted June 1, 2014 at 09:54 PM 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)
bioshock Posted June 2, 2014 at 08:17 AM Report #557871 Posted June 2, 2014 at 08:17 AM 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.
RuiAlmeida20 Posted June 2, 2014 at 09:42 AM Author Report #557878 Posted June 2, 2014 at 09:42 AM 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 ?
bioshock Posted June 2, 2014 at 09:54 AM Report #557883 Posted June 2, 2014 at 09:54 AM 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
RuiAlmeida20 Posted June 2, 2014 at 10:09 AM Author Report #557884 Posted June 2, 2014 at 10:09 AM 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...
bioshock Posted June 2, 2014 at 10:20 AM Report #557885 Posted June 2, 2014 at 10:20 AM Sim, falta. Mas no entanto o campo id_party não é obrigatório.
RuiAlmeida20 Posted June 2, 2014 at 10:23 AM Author Report #557889 Posted June 2, 2014 at 10:23 AM Claro, o campo id_party so será preenchido se o player entrar na party pelo link, se clicar logo em play o campo será nulo.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now