Parabéns! Você acabou de criar um battle royale multiplayer! Nesta série, você tem:
- Criou scripts modulares que lidavam com diferentes funções do jogo, como teletransportar jogadores.
- Aprendi a codificar eventos personalizados para o início e fim de partidas
- Matrizes usadas para gerenciar jogadores quando eles entram, ganham ou saem de jogos.
Mas, seu jogo está quase pronto para que outros jogar. Atraia jogadores para o seu jogo tornando sua arena única e criando uma miniatura atraente.
Melhorias Opcionais
Abaixo estão algumas maneiras de melhorar sua experiência.
Melhore os visuais do mapa
Ter um mapa visualmente interessante cria uma forte primeira impressão para o seu jogo, encorajando as pessoas a começarem a jogar. Tire um tempo para transformar seu nível de caixa cinza em um mapa real.
Lembra de escrever uma descrição da configuração do seu jogo no início desta série? Ao compilação / versão / build, certifique-se de que seu mapa tenha uma configuração clara. Para inspiração, abaixo estão alguns mapas de exemplo construídos pelos desenvolvedores do Roblox.
Você pode construir no Studio ou usar ativos pré-fabricados. Abaixo estão alguns ativos sugeridos carregados pelo Roblox que podem ser usados para construir um ambiente. Cada pacote inclui modelos de alta qualidade e totalmente texturizados.
Mudando o Campo de Força
Durante um jogo, você pode ter notado um campo de força quando os jogadores reaparecem. Altere quanto tempo o campo de força dura nas propriedades do SpawnLocation.
- Clique na Localização de Spawn relevante.
- Em Propriedades > Campo de Força, altere o valor da Duração.
Teste e Confirme Variáveis
Jogos bem-sucedidos no Roblox são testados com frequência para garantir que a jogabilidade seja divertida e justa.
Teste seu jogo com colegas e verifique se tem o seguindo:
- A duração de uma partida parece boa? As partidas terminam muito rápido sem um jogador vencedor, ou demoram muito?
- O tamanho do mapa parece certo? Existem áreas que parecem muito vazias? Será que vai demorar muito para encontrar outro jogador?
Teste, avalie e modifique variáveis para melhorar a jogabilidade. Alguns exemplos:
- Altere GameSettings.matchDuration para fazer partidas mais longas em um mapa maior.
- Prolongue a duração do intervalo se os jogadores acharem que é muito repentino.
Tornar o Lobby Social
Jogos populares no Roblox geralmente adicionam mini-jogos para incentivar os jogadores a se divertir e serem sociais enquanto esperam por um intervalo. Isso pode incluir colocar partes de esfera com física para que os jogadores possam jogar ou até mesmo mini-corridas de obstáculos.
Desafios Opcionais
Muitas experiências do Roblox continuam recebendo atualizações mesmo após o lançamento. Abaixo estão alguns desafios opcionais que podem adicionar novas funcionalidades ao seu projeto.
Armadilhas
Torne os mapas mais desafiadores adicionando armadilhas ou obstáculos que danificam os jogadores. Aprenda mais em Criando Armadilhas .
Pontuação de Rastreamento
Crie uma tabela de classificação que rastreie quantas vezes alguém ganha uma rodada. Codifique uma usando este artigo em Leaderboards .
Potenciadores
Crie peças programadas que façam mudanças como modificar a velocidade de um jogador ou o poder de ataque de uma ferramenta. Lembre-se, após o final de uma conferir, use o resetMatch() para recriar o conjunto de powerups. Para referência, saiba mais no TutorialPowerups.
Adicionar Mais Arenas
Construa mais arenas com configurações diferentes e codifique uma seleção de mapa aleatório. Sempre que os jogadores iniciarem uma conferir, um script de módulo chamado MapManager escolherá um mapa aleatório e, em seguida, atribuirá jogadores a esses locais de spawn conforme necessário. Verifique a caixa de código abaixo se precisar de dicas ou para ver uma implementação.
--[[
Setup Notes:
1. In Workspace, create a folder named Maps. Store all parts of a map in individual folders.
2. For each individual map, include a folder named SpawnLocations
3. When starting a match, use pickNewMap() to get a random map. When assigning player spawn points, use
GetSpawnLocations() to get a table with all locations.
]]
local MapManager = {}
local mapsFolder = workspace.Maps
-- Armazena todos os mapas que podem ser rodados entre
local availableMaps = mapsFolder:GetChildren()
-- Armazena o mapa atual em jogar
local activeMap
-- Usado para obter mapas aleatórios.
local randomGenerator = Random.new()
-- Obtém um mapa aleatório da tabela de mapas disponíveis
function MapManager.pickNewMap()
local whichMapKey = randomGenerator:NextInteger(1,#availableMaps)
activeMap = availableMaps[whichMapKey]
print("New map: " .. activeMap.Name)
end
-- retorna uma tabela com os pontos de spawn atuais dos mapas
function MapManager.getSpawnLocations()
local spawnPoints = activeMap:FindFirstChild("SpawnLocations")
local availableSpawnPoints = spawnPoints:GetChildren()
return availableSpawnPoints
end
return MapManager