Każde miejsce jest reprezentowane przez model danych, hierarchię obiektów, które opisują wszystko o tym miejscu. Model danych zawiera wszystkie obiekty, które tworzą 3D świat, takie jak części, teren, oświetlenie i inne elementy środowiskowe. Zawiera również obiekty, które mogą kontrolować zachowanie w czasie wykonywania, takie jak skrypty, które modyfikują właściwości, wywołują metody i funkcje oraz reagują na wydarzenia, które umożliwiają dynamiczne zachowanie i interaktywność.
Silnik Roblox używa modelu danych jako źródła prawdy dla stanu miejsca, aby mógł go symulować i renderować na urządzeniach klienckich. Aby uzyskać więcej informacji o tym, jak silnik Roblox interpretuje model danych, zobacz Klient-Serwer Czas wykonywania.
Obiekty
Umieszczasz i organizujesz obiekty w modelu danych, aby opisać miejsce w Roblox. Każdy obiekt w Roblox dziedziczy po klasie Instance, która definiuje ogólne właściwości, metody i zdarzenia, które są wspólne dla wszystkich obiektów. Obiekty również definiują swoje własne cechy w zależności od funkcjonalności, jaką zapewniają. Istnieje wiele kategorii obiektów o szerokim zakresie zastosowań, ale najczęściej będziesz pracować z obiektami BasePart i LuaSourceContainer, powszechnie określanymi jako części i skrypty.
Aby uzyskać pełną listę wszystkich funkcji silnika Roblox, zobacz dokumentację odniesienia.
3D bloki budowlane
BasePart jest podstawową klasą dla fizycznie symulowanych 3D bloków budowlanych w świecie. Definiuje właściwości i metody wspólne dla wszystkich obiektów fizycznych, z takimi właściwościami jak pozycja, rozmiar i orientacja.
| Obiekt | Opis |
|---|---|
| Part | Prymitywna część, która może mieć kształt bloku, kuli, cylindra, w pozycji lub kącie. |
| MeshPart | Importowany siatka z oprogramowania do modelowania 3D, takiego jak Maya lub Blender. |
| TrussPart | Belka rusztowania, po której postacie mogą wspinać się jak po drabinie. |
Chociaż teoretycznie można stworzyć w pełni funkcjonalną grę Roblox używając tylko prostych części, prawdopodobnie zaimportujesz siatki i połączysz prymitywne części w bardziej złożone obiekty i struktury poprzez modelowanie solidne.
Skrypty
Możesz dodać interaktywność i zachowanie do 3D świata Twojego miejsca oraz zdefiniować logikę za pomocą skryptów. Piszesz skrypty w języku programowania Luau, aby wykonywać takie czynności jak poruszanie częściami, wywoływanie innych skryptów i reagowanie na zdarzenia. Ponieważ Roblox działa w modelu klient-serwer, możesz uruchamiać skrypty na serwerze, kliencie lub pozwolić im komunikować się przez granicę sieciową.
- Obiekt Script reprezentuje skrypt, który może działać tylko na serwerze.
- Obiekt LocalScript reprezentuje skrypt, który może działać tylko na kliencie.
- Obiekt ModuleScript reprezentuje wielokrotnego użytku skrypt, który możesz require() zarówno z skryptów serwera, jak i klienckich.
Aby skrypty działały poprawnie, musisz umieścić je w odpowiednich kontenerach w modelu danych. Aby uzyskać więcej informacji, zobacz sekcje Serwer i Klient.
Organizacja obiektów
Chociaż masz dużą elastyczność w organizacji swojego modelu danych, silnik Roblox oczekuje, że niektóre obiekty będą znajdować się w określonych usługach kontenerowych, które są obiektami z konkretnym zachowaniem i mogą wpływać na zachowanie obiektów, które zawierają. Główne kategorie usług kontenerowych obejmują:
- Workspace — Workspace przechowuje wszystkie obiekty, które renderują w 3D świecie.
- Środowisko — Kontenery, takie jak Lighting i SoundService, które zawierają obiekty do ustawień i elementów środowiskowych.
- Replikacja — Kontenery dla treści i logiki, które replikują się między serwerem a klientem, takie jak ReplicatedStorage i ReplicatedFirst.
- Serwer — Kontenery dla treści i logiki działającej tylko po stronie serwera, takie jak ServerScriptService i ServerStorage.
- Klient — Kontenery dla treści i logiki działającej tylko po stronie klienta, takie jak StarterPlayer i StarterGui.
- Czat — Kontenery dla obiektów, które umożliwiają funkcje czatu, takie jak VoiceChatService i TextChatService.
Ponadto możesz dalej organizować swoje obiekty za pomocą następujących obiektów:
- Foldery — Folder służy do celów organizacyjnych i nie definiuje żadnego zachowania. Na przykład możesz używać folderów do grupowania podobnych obiektów, takich jak zestaw skryptów w pamięci serwera.
- Modele — Model jest przeznaczony głównie do geometrycznych grup części, takich jak grupowanie zestawów biurowych, które zawierają krzesło, stół i lampę. Aby zorganizować bardziej złożone zestawy, możesz nawet zagnieżdżać modele w modelach.
Workspace
Workspace zawiera wszystkie obiekty, które tworzą 3D świat miejsca. Możesz dodać obiekty do workspace, aby dostosować swój 3D świat, takie jak części bazowe, części siatkowe i modele. Klienci renderują wszystko, co pojawia się w tym kontenerze, a nic poza nim, więc możesz kontrolować, co użytkownicy widzą i z czym mogą wchodzić w interakcje w Twoim miejscu. Chociaż nie są faktycznie renderowane, możesz również dodać skrypty, które są powiązane z częściami i modelami, z którymi są związane. Domyślnie, workspace jest wstępnie wypełniony obiektami Terrain i Camera.
Kamera
Camera określa, jak klient widzi 3D świat. Domyślnie w workspace znajduje się jedna kamera, ale możesz dodać wiele obiektów kamerowych, aby stworzyć różne perspektywy i widoki. Każdy klient bierze te ustawienia i tworzy własny widok kamery, który serwer nie może bezpośrednio modyfikować.
Na przykład możesz ustawić kamerę, aby podążała za ruchami użytkownika lub pozostała w określonej lokalizacji. Możesz także dostosować kąt widzenia, odległość i kąt, aby stworzyć różne efekty wizualne, jak użytkownicy widzą Twój 3D świat.
Aby uzyskać więcej informacji, zobacz dostosuj kamerę.
Teren
Terrain pozwala Ci tworzyć krajobrazy dla Twojego miejsca. Możesz zastosować materiał do terenu, aby symulować pożądane naturalne środowiska, takie jak trawa, woda, piasek lub materiał niestandardowy. Choć możesz mieć tylko jeden obiekt terenu w swoim 3D świecie i zastosować jeden materiał do tego terenu, możesz użyć Edytora Terenu, aby edytować regiony swojego terenu.
Aby uzyskać więcej informacji, zobacz teren środowiskowy.
Środowisko
Dostosowane oświetlenie może uczynić Twój 3D świat znacznie bardziej wciągającym i realistycznym. Usługa Lighting zawiera obiekty, które kontrolują globalne ustawienia oświetlenia Twojego miejsca, takie jak Atmosphere do symulowania efektów atmosferycznych lub Sky, aby zmieniać słońce, księżyc i gwiazdy w Twoich środowiskach. Ponadto, możesz użyć źródeł światła, aby emitować światło z konkretnych obiektów.
Dodawanie dźwięku do Twoich gier jest również kluczowe dla podniesienia poziomu Twoich gier na nowe wyżyny. Poprzez strategiczne używanie dźwięku pozycyjnego i niepozycyjnego, możesz zanurzyć graczy w swoich światach, dostarczyć im przydatnych informacji o ich działaniach i skierować ich uwagę na to, co muszą zrobić, aby odnieść sukces w swoich celach.
Replikacja
Replikacja to proces synchronizacji stanu Twojego miejsca z wszystkimi podłączonymi klientami przez serwer. Silnik Roblox inteligentnie i automatycznie replikuje dane, fizykę i wiadomości czatu między serwerem a klientem w wielu przypadkach, ale możesz także określić niektóre obiekty do replikacji, umieszczając je w określonych kontenerach.
ReplicatedFirst
ReplicatedFirst zawiera obiekty, które chcesz zreplikować do klienta w momencie dołączenia do Twojego miejsca. Zwykle zawiera obiekty, które są niezbędne do zainicjowania gracza, takie jak lokalne obiekty skryptowe LocalScript oraz obiekty powiązane z tymi skryptami. Cała zawartość w tym kontenerze jest replikowana z serwera do klienta tylko raz.
ReplicatedStorage
ReplicatedStorage zawiera obiekty, które są dostępne zarówno dla serwera, jak i podłączonych klientów. Jakiekolwiek zmiany, które zachodzą po stronie klienta, pozostają, ale nie będą replikowane na serwer. Serwer może nadpisać zmiany na kliencie, aby zachować spójność. Ten kontener jest zazwyczaj używany dla obiektów ModuleScript, które muszą być współdzielone i dostępne zarówno dla obiektów Script (po stronie serwera), jak i LocalScript (po stronie klienta). Ponadto, możesz użyć tego kontenera do replikacji dowolnych obiektów, które nie muszą istnieć w 3D świecie do momentu, gdy będą potrzebne, takich jak ParticleEmitter, który można klonować i parentować do wszystkich nadchodzących modeli postaci.
Aby uzyskać więcej informacji o tym, jak działa replikacja, zobacz czas wykonywania klient-serwer.
Serwer
Model danych definiuje dedykowane kontenery dla obiektów działających tylko po stronie serwera, które nigdy nie są replikuje do klienta. Umożliwia to serwerowi wpływanie na zachowanie klientów i stan bez ujawniania obiektów i logiki serwera klientowi.
ServerScriptService
ServerScriptService zawiera obiekty Script, obiekty ModuleScript, które są wymagane przez skrypty serwera i inne obiekty związane z skryptowaniem, które są przeznaczone wyłącznie do użytku na serwerze. Jeśli Twoje skrypty wymagają innych obiektów, które nie są związane z programowaniem, musisz umieścić je w ServerStorage. Skrypty w tym kontenerze nigdy nie są replikowane do klientów, co pozwala na posiadanie bezpiecznej logiki po stronie serwera.
ServerStorage
ServerStorage zawiera obiekty, które są przeznaczone wyłącznie do użytku na serwerze. Możesz użyć tego kontenera do przechowywania obiektów, które chcesz klonować i parentować do workspace lub innych kontenerów w czasie wykonywania. Na przykład, możesz przechowywać duże obiekty, takie jak mapy, w tym kontenerze, aż będą potrzebne, a następnie przenieść je do workspace tylko wtedy, gdy będzie to wymagane. Pozwala to zmniejszyć ruch sieciowy klientów przy początkowym dołączeniu.
Klient
Usługi kontenerowe klienta są przeznaczone dla obiektów, które są replikowane do każdego podłączonego klienta. Ta kategoria kontenerów replikuje się do każdego podłączonego klienta i zazwyczaj zawiera obiekty 3D oraz powiązane obiekty LocalScript. Wszystkie obiekty przechowywane w tych kontenerach nie są trwałe w czasie sesji i resetują się za każdym razem, gdy klient ponownie dołącza. Możesz umieszczać obiekty w tych kontenerach, takie jak GUI gracza, skrypty klienckie i inne obiekty, które są istotne tylko dla klienta.
Gdy klient łączy się z serwerem, usługa kontenerowa Players nasłuchuje użytkowników dołączających do Twojego miejsca i tworzy obiekt Player dla każdego klienta. Serwer kopiuje obiekty z kontenerów klienta w modelu danych edycyjnym do odpowiedniej lokalizacji w modelu danych w czasie wykonywania w obiekcie Players. Następująca tabela opisuje oryginalny kontener, w którym się znajduje, oraz docelowy kontener, do którego jest kopiowany na kliencie:
| Edycyjny model danych | Model danych w czasie wykonywania | Uwagi |
|---|---|---|
| StarterPack | Player.Backpack | Skrypty, które konfigurują inwentarz gracza i zwykle zawierają obiekty Tool, ale często także skrypty lokalne. |
| StarterGui | Player.PlayerGui | Skrypty, które mogą zarządzać lokalnym GUI gracza. Gdy gracz ponownie się odradza, zawartość PlayerGui jest opróżniana. Serwer kopiuje obiekty znajdujące się w StarterGui do PlayerGui. |
| StarterPlayerScripts | Player.PlayerScripts | Ogólne skrypty dla klienta. Na przykład, jeśli chcesz stworzyć efekty specjalne na kliencie, gdy spełnione są określone warunki, możesz umieścić skrypt lokalny w tym kontenerze, aby to zrobić. Serwer nie ma dostępu do tego kontenera. |
| StarterCharacterScripts | Player.Character | Skrypty, które są kopiowane do klienta, gdy się rodzą. Te skrypty nie są trwałe, gdy gracz się odradza. |
| ReplicatedFirst | Zawartość tego kontenera jest replikowana do wszystkich klientów (ale nie z powrotem do serwera) na początku, zanim cokolwiek innego. |
Czat
TextChatService
TextChatService reprezentuje usługę, która obsługuje różne zadania czatu tekstowego w grze, takie jak zarządzanie kanałami, dekorowanie wiadomości, filtrowanie tekstu, tworzenie komend i rozwijanie niestandardowych interfejsów czatu.
Aby uzyskać więcej informacji, zobacz przegląd czatu tekstowego.
VoiceChatService
VoiceChatService reprezentuje funkcję czatu głosowego opartą na lokalizacji, która symuluje realistyczną komunikację w zależności od tego, jak blisko jesteś innych użytkowników. Możesz użyć tej usługi do włączenia lub wyłączenia tej funkcji.
Aby uzyskać więcej informacji, zobacz czat głosowy.
Foldery i modele
Istnieją dwa główne sposoby grupowania obiektów w modelu danych: foldery i modele. Oba są kontenerami dla obiektów, ale mają różne przeznaczenie.
- Foldery najlepiej nadają się do przechowywania sekcji środowiska, takich jak lobby czy arena walki.
- Modele są używane do zestawów obiektów, takich jak zestaw biurowy, który zawiera krzesło, stół i lampę. Aby zorganizować bardziej złożone zestawy, zagnieżdżaj modele wewnątrz modeli.
Zawsze powinieneś nazywać swoje obiekty w sposób opisowy. Ułatwia to późniejsze znalezienie i modyfikację obiektów, jeśli zajdzie taka potrzeba.

