Parabéns! Você acabou de criar um battle royale multiplayer! Nesta série, você tem:
- Criou scripts modulares que lidavam com diferentes funções de jogo, como teletransportar jogadores.
- Aprendeu a codificar eventos personalizados para o início e o fim das partidas
- Usou arrays para gerenciar jogadores ao entrarem, vencerem ou saírem dos jogos.
Mas, o seu jogo está quase pronto para outros jogarem. Atraia jogadores para o seu jogo tornando sua arena única e criando uma miniatura chamativa.
Melhorias opcionais
Abaixo estão algumas maneiras de melhorar sua experiência.

Melhorar visuais de mapa
Ter um mapa visualmente interessante define uma primeira impressão forte para o seu jogo, encorajando as pessoas a começar a jogar.Dê algum tempo para transformar o nível da sua caixa cinza em um mapa real.
Lembra de escrever uma descrição da configuração para o seu jogo no início desta série? Ao compilação / versão / build, garanta que seu mapa tenha uma configuração clara.Para inspiração, abaixo estão alguns exemplos de mapas construídos por desenvolvedores do Roblox.


Você pode construir no Studio ou usar recursos pré-feitos.Abaixo estão alguns recursos sugeridos carregados pelo Roblox que podem ser usados para construir um ambiente.Cada pacote inclui modelos de alta qualidade, totalmente texturizados.
Mudando o Campo de Força
Durante um jogo, você pode ter notado um campo de força quando os jogadores reaparecem. Mude o tempo que o campo de força dura nas propriedades SpawnLocation.
- Clique na localização de spawn relevante.
- Em Propriedades > Campo de Força, altere o valor de Duração.
Testar e confirmar variáveis
Jogos bem-sucedidos no Roblox são testados frequentemente para garantir que o jogo seja divertido e justo.
Teste o seu jogo com pares e verifique o seguindo:
- A duração de uma partida se sente correta? As partidas terminam muito rapidamente sem um jogador vencedor ou demoram demais?
- O tamanho do mapa parece certo? Existem algumas áreas que se sentem muito vazias? Levará muito tempo para correr em outro jogador?
Teste, avalie e modifique variáveis para melhorar jogabilidade. Alguns exemplos:
- Altere GameSettings.matchDuration para tornar as partidas mais longas em um mapa maior.
- Faça a duração da intermissão mais longa se os jogadores sentirem que é muito repentina.
Torne o salão social
Jogos populares no Roblox frequentemente adicionam minijogos para incentivar os jogadores a se divertirem e se socializarem enquanto esperam por uma intermissão.Isso pode incluir colocar partes esféricas com física para que os jogadores possam jogar, ou até mesmo mini-cursos de obstáculos.
Desafios facultativos
Muitas experiências do Roblox continuam a receber atualizações mesmo depois de serem liberadas.Abaixo estão alguns desafios opcionais que podem adicionar novos recursos ao seu projeto.
Armadilhas
Torne os mapas mais desafiadores adicionando armadilhas ou obstáculos que danifiquem os jogadores. Saiba mais em Criar 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 Tabelas de classificação.
Poderes
Crie partes scriptadas que façam alterações como modificar a velocidade de um jogador ou o poder de ataque de uma ferramenta.Lembre-se, após o fim de uma conferir, use o resetMatch() para recriar o conjunto de powerups.Para referência, aprenda mais no TutorialPowerups.
Adicione mais arenas
Construa mais arenas com diferentes configurações e código e selecione um mapa aleatório.Sempre que os jogadores iniciam uma conferir, um script de módulo chamado MapManager escolherá um mapa aleatório e, em seguida, atribuirá os jogadores a esses locais de spawn necessários.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 girados 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