"Server Matchmaking"

Olá! Eu sou um desenvolvedor do ROBLOX que não sei muito do universo da programação, e gostaria de adicionar o que chamam de “server matchmaking” no meu jogo, que é basicamente a criação de um servidor com certas pessoas.

Para entender melhor, no início do meu jogo, terá o que chamam de “Lobby” e no Lobby terá uma esfera preta do tamanho do chão, ou seja, bem rasa, para que os jogadores possam pisar nela. O que eu quero fazer é que, quando um jogador pisar nessa esfera preta, o jogador entre no servidor.

Não entre automaticamente no servidor após clicar na esfera preta, e sim esperar 4 jogadores antes do jogo começar.

Para quem não entendeu, quando o jogador pisar na esfera preta, ia aparecer uma “ScreenGui” em uma parede próxima, mostrando quem está no servidor. Caso apenas 1 jogador tenha pisado na esfera preta, apenas 1 jogador estará na ScreenGui. Eu gostaria de fazer com que, após 4 jogadores pisarem na esfera preta, a ScreenGui adicionasse uma contagem regressiva de 40 segundos, que iria servir para esperar caso mais jogadores quisessem entrar no servidor, caso contrário, o servidor iria apenas começar com 4 jogadores, mas esse na verdade é o mínimo de jogadores necessários para que o jogo teleporte eles para o servidor que o jogo realmente vai acontecer.

Qualquer dúvida é só perguntar aqui que eu irei responder o mais rápido possível.

Imagem de demonstração de um Server Matchmaking:

(Imagem retirada do jogo: Elimination Tower)

1 Curtida

@NicSD você já começou a montar o jogo? (se sim, manda aqui)

Isso que você mandou realmente é um nível mais complexo, queria entender em que nível você está agora, o que você sabe de LUA?

1 Curtida

@giam.simplicode Já comecei sim, mas não fiz muito progresso, já que não tenho muito conhecimento sobre a complexidade da programação ROBLOX.

Bom, eu sei o básico de LUA, aqui uma das coisas que sei fazer:

-Criar uma ScreenGui, uma Frame e adicionar elementos a Frame, como TextLabel, ImageLabel, etc.

-Sei como funciona as variáveis, que costumo chamar de “atalhos” que são o “local” que é basicamente você criar um atalho para se referir a alguma coisa, como por exemplo: local MeuBloco = game.Workspace.Part

-Sei como mudar as properties de algumas coisas, como por exemplo, mudar a cor de um bloco, mudar o texto de um TextLabel, etc

O que eu gostaria de aprender com a Simplicode é exatamente a complexidade da linguagem LUA, como por exemplo: for i,v pairs, values, events, etc.

Minha ideia de jogo é o seguinte: O jogo irá se chamar “Decision Duel” e terá uma competição no início, e o vencedor dessa competição poderá escolher 2 jogadores para lutar, um mapa para eles lutarem e armas para eles lutarem! Esse processo irá ocorrer em loop até o fim, que será quando terá o grande vencedor!

Planejo manter o que chamam de “gamebase” que é basicamente se as pessoas gostam de jogar seu jogo de novo ou não, fazendo uma loja de gamepasses, desbloqueando novos mapas para serem escolhidos a cada novo nível e etc, mas para criar esse jogo com tanta imaginação, preciso aprender a complexidade, e é isso que quero aprender:

-Como fazer o jogo escolher uma competição aleatória

-Como fazer uma competição funcional

-Como fazer o jogo detectar o vencedor

-Como fazer o vencedor escolher os jogadores, o mapa e as armas

-Como fazer para o jogo detectar o que o vencedor escolheu

-Como detectar o vencedor da batalha

-E muitas outras coisas que basicamente sejam o funcionamento completo do jogo.

Eu acho que é bastante coisa, mas felizmente não me sinto motivado a desistir por conta de achar essa comunidade brasileira que tem grande foco em programação ROBLOX, me dando uma chance maravilhosa de seguir meu sonho e acreditar que é possível sim demonstrar minha criatividade no ROBLOX.

Fala Nic, cara eu acho que você está focando primeiro nas features mais complexas, eu começaria pelas mais básicas para depois evoluir, pelo menos tenho feito isso no Tower Defense que estou criando. Mas respondendo a sua pergunta, dei uma pesquisada e o que você quer usar é um BillboardGui e não um ScreenGui. O ScreenGui é apenas para elementos na tela, o BillboardGui e SurfaceGui são para objetos.

image

1 Curtida

Exato! Estou tentando focar no básico também, já que o complexo estou deixando para depois, mas estou achando que o Server Matchmaking já é complexo, e infelizmente não há nenhum tutorial ensinando como fazer, então não faço a mínima ideia de como fazer ele.

Olá, não sei muito a programação do roblox mais já consigo fazer algumas coisas.

-Se você quiser fazer uma competição aleatória você poderia usar (math.random)
https://developer.roblox.com/en-us/api-reference/lua-docs/math

-Se quiser detectar o vencedor da batalha faça um script que quando começar o jogo cria uma propriedade dentro do jogador, e ao terminar cada competição ver qual jogador chegou no fim primeiro e adicionar 1 na propriedade do jogador. E quando acabar as competições fazer um script que detecta qual é o jogador que tem mais score.