Gratulacje! Właśnie stworzyłeś wieloosobową bitwę royale! W tym cyklu masz:
- Stworzono modularne skrypty, które obsługiwały różne funkcje gry, takie jak teleportowanie graczy.
- Naucz się kodować niestandardowe wydarzenia na początek i koniec meczów
- Użyto tablic do zarządzania graczami, gdy dołączają, wygrywają lub opuszczają gry.
Ale twoja gra jest prawie gotowa do graćprzez innych. Przyciągnij graczy do swojej gry, tworząc unikalną arenę i tworząc miniatura.
Opcjonalne ulepszenia
Poniżej są kilka sposobów na poprawę swojego doświadczenia.

Popraw wizualizację mapy
Posiadanie wizualnie interesującej mapy ustawia silne pierwsze wrażenie dla twojej gra, zachęcając ludzi do rozpoczęcia gry.Poświęć trochę czasu na przekształcenie poziomu swojej szarej skrzynki w prawdziwą mapę.
Pamiętasz pisanie opisu ustawienia dla twojej gry na początku tej serii? Podczas budowania upewnij się, że twoja mapa ma wyraźne ustawienie.Na inspirację poniżej znajdują się niektóre przykładowe mapy zbudowane przez programistów Roblox.


Możesz albo budować w Studio, albo korzystać z gotowych zasobów.Poniżej znajdują się niektóre sugerowane zasoby przesłane przez Roblox, które można wykorzystać do budowy środowisko.Każdy pakiet zawiera wysokiej jakości, w pełni teksturowane modele.
Zmiana pola siłowego
Podczas gry możesz zauważyć pole siłowe, gdy gracze odrodzą się. Zmień czas trwania pola siłowego w właściwościach SpawnLocation.
- Kliknij odpowiednią lokalizację Spawnu.
- W właściwościach > Pole siłowe zmień wartość czasu trwania.
Testuj i potwierdzaj zmienne
Pomyślne gry na Roblox są często testowane, aby zapewnić, że rozgrywka jest zabawna i sprawiedliwa.
Przetestuj swoją grę z rówieśnikami i sprawdź obserwujekwestie:
- Czy czas trwania meczu czuje się prawidłowo? Czy mecze kończą się zbyt szybko bez wygrywającego gracza lub zajmują zbyt dużo czasu?
- Czy rozmiar mapy wydaje się odpowiedni? Czy istnieją obszary, które wydają się zbyt puste? Czy zajmie dużo czasu, aby wpaść w innego gracza?
Testuj, oceniaj i modyfikuj zmienne, aby poprawić rozgrywka. Kilka przykładów:
- Zmień GameSettings.matchDuration, aby mecze były dłuższe na większej mapie.
- Zrób przerwę dłuższą, jeśli gracze czują, że jest zbyt gwałtowna.
Zrób lobby społecznym
Popularne gry w Roblox często dodają mini-gry, aby zachęcić graczy do zabawy i bycia społecznymi, czekając na przerwę.Może to obejmować wstawianie części kulowych z fizyką, aby gracze mogli grać, a nawet mini-kursy przeszkód.
Opcjonalne wyzwania
Wiele doświadczeń Roblox nadal otrzymuje aktualizacje nawet po ich wydaniu.Poniżej znajdują się niektóre opcjonalne wyzwania, które mogą dodać nowe funkcje do twojego projektu.
Pułapki
Spraw, aby mapy były bardziej wymagające, dodając pułapki lub przeszkody, które zadają obrażenia graczom. Dowiedz się więcej w tworzeniu pułapek.
Wynik śledzenia
Stwórz tabelę liderów, która śledzi, ile razy ktoś wygrywa rundę. Napisz kod jeden za pomocą tego artykułu na temat tablic liderów.
Ulepszenia
Twórz zaprogramowane części, które wprowadzają zmiany, takie jak modyfikacja prędkości gracza lub mocy ataku narzędzia.Pamiętaj, po zakończeniu dopasowywać, użyj resetMatch(), aby odtworzyć zestaw ulepszeń.Na potrzeby odniesienia dowiedz się więcej w samouczku Wzmocnienia.
Dodaj więcej aren
Zbuduj więcej aren z różnymi ustawieniami i skoduj losowe wybory mapy.Za każdym razem, gdy gracze rozpoczynają dopasowywać, skrypt modułu o nazwie MapManager wybierze losową mapę, a następnie przypisze graczom do tych lokalizacji odrodzenia, jak to jest potrzebne.Sprawdź pudełko kodu poniżej, jeśli potrzebujesz wskazówek lub chcesz zobaczyć jedną implementację.
--[[
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
-- Przechowuje wszystkie mapy, które można obrócić między
local availableMaps = mapsFolder:GetChildren()
-- Przechowuje obecną mapę w grać
local activeMap
-- Używany do uzyskiwania losowych map.
local randomGenerator = Random.new()
-- Zdobywa losową mapę z tabeli dostępnych map
function MapManager.pickNewMap()
local whichMapKey = randomGenerator:NextInteger(1, #availableMaps)
activeMap = availableMaps[whichMapKey]
print("New map: " .. activeMap.Name)
end
-- wraca tabela z punktami spawnowania map obecnych
function MapManager.getSpawnLocations()
local spawnPoints = activeMap:FindFirstChild("SpawnLocations")
local availableSpawnPoints = spawnPoints:GetChildren()
return availableSpawnPoints
end
return MapManager