Roblox für Unreal-Entwickler

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Diese Seite enthält Informationen, die erfahrenen Unreal Engine-Entwicklern helfen, mit Roblox zu beginnen, einschließlich grundlegender Orientierung, einem konzeptionellen Vergleich und wichtige Unterschiede zwischen den beiden Plattformen.

Sich orientieren

Die Benutzeroberfläche des Unreal Editors mit Markierungen, um die verschiedenen Fenster und Panels anzuzeigen. Die Benutzeroberfläche von Roblox Studio mit Markierungen, um die verschiedenen Fenster und Panels anzuzeigen.

Unreals Outliner und das Explorer von Roblox Studio sind die Hauptfenster zum Organisieren von Elementen in 3D-Räumen. Beide zeigen eine Hierarchie von Objekten und Ordnern an. Der Outliner hat jedoch eine flachere, weniger definierte Struktur und zeigt nur Actors. Das Explorer-Fenster hat eine tief geschachtelte, strenge Struktur und zeigt alle Objekte als Teil der Hierarchie an, selbst Objekte, die in Unreal als Komponenten betrachtet werden würden.

Der Asset Manager von Roblox Studio und die Toolbox überschneiden sich mit dem Unreal Content Browser. Der Asset Manager ermöglicht es Ihnen, alle Assets innerhalb Ihres Spiels zu verwalten, während die Toolbox Ihnen Zugriff auf alle veröffentlichten Assets bietet. Die Toolbox ermöglicht es Ihnen auch, im Creator Store nach Assets von Roblox oder der Community zu suchen, ähnlich wie der Unreal Engine Marketplace, aber direkt aus der Benutzeroberfläche des Studios zugänglich.

Philosophische Unterschiede

Roblox ist eine "Simulations-Engine" und kein traditioneller Spiel-Engine. Unreal Actors und Roblox Parts dienen beide als grundlegende Bausteine, sind in der Praxis jedoch ziemlich unterschiedlich:

  • Darstellung: Actors in Unreal sind ein höheres Konzept für jedes Objekt in einem Level, während Parts in Roblox dazu entwickelt wurden, physische Objekte wie Holzblöcke und Kunststoffkugeln darzustellen.
  • Physik: Um Physik-Simulationen in Unreal durchzuführen, aktivieren Sie die Physik innerhalb bestimmter Komponenten (wie dem StaticMeshComponent) oder fügen Komponenten zu Actors hinzu, wie z. B. physikalischen Einschränkungen. In Roblox sind Physik direkt im Datentyp Parts eingebaut; die Engine behandelt Interaktionen automatisch.

Sie können den Unterschied sofort erkennen, wenn Sie einen Actor und einen Part erstellen. Der Actor hat nicht viel mehr als eine Position, Rotation und Skalierung. Der Part hat dieselben Informationen, plus ein Material und eine Farbe, Werte für Reflexion und Transparenz, Masse und Form und vieles mehr. Die beiden beginnen erst ähnliche Eigenschaften zu teilen, wenn Sie einen StaticMeshActor in Unreal mit einem MeshPart in Roblox vergleichen.

Ein Beispiel für einen Unreal-Actor im Details-Panel.
Unreal Editor Details-Panel
Ein Beispiel für einen Roblox-Part im Eigenschaftenfenster.
Roblox Studio Eigenschaftenfenster

Ein weiterer nützlicher Vergleich ist der Unreal Actor zu dem Roblox Model. Modelle fungieren als Container für eine Sammlung von miteinander verbundenen Teilen, ähnlich wie Actors in Unreal Container für Komponenten sind. Sie geben eines der Teile des Modells als sein Primärteil an, um den Drehpunkt zu definieren. Modelle können auch Skripte, Animationen, Soundeffekte, Eingabeaufforderungen, Einschränkungen, Partikelemitter und mehr enthalten.

Ein Unreal Actor könnte beispielsweise eine NiagaraComponent haben, die mehrere Emitter verwendet, um den gewünschten visuellen Effekt zu erzielen, ein Mesh für die Form, eine physikalische Einschränkung, um Federung hinzuzufügen, und ein Skript für die Interaktivität des Spielers. Im Outliner sehen Sie einen einzelnen Actor, der SpringyFireball heißt.

In Roblox könnte ein vergleichbares SpringyFireball-Modell im Explorer-Fenster etwa so aussehen:


Model
|- ParticleEmitter
|- MeshPart
|- SpringConstraint
|- ClickDetector
| |- Script

Roblox' Philosophie der Standard-Physik erstreckt sich auf den Prozess des Bauens von 3D-Modellen. In Roblox ist das Schweißen mehrerer Teile zu einer Baugruppe eine hervorragende Möglichkeit, Dinge schnell zu erstellen, da Roblox die geschweißten Teile als einen einzigen starren Körper behandelt. Dieser Ansatz ist in Unreal nicht praktikabel.

Statt standardmäßiger metrischer Einheiten für Länge und Masse verwendet Roblox hypothetische Einheiten namens Studs und Roblox-Massen-Einheiten (RMUs). Für ungefähre metrische Umrechnungen und Empfehlungen zu deren Verwendung siehe Einheiten.

Der Standort ist wichtig

Roblox-Spiele sind standardmäßig Mehrspieler, daher enthält Roblox Studio viele verschiedene Speicherorte mit spezifischen Verhaltensweisen. Weitere Informationen finden Sie im Client-Server-Runtime und in der Objektorganisation.

LocationDescription
WorkspaceStellt die 3D-Welt des Spiels dar. Dieser Ort eignet sich gut für Server-Skripte, die direkt an Objekte angehängt werden und deren Verhalten steuern.
ReplicatedFirstEnthält Objekte, die zuerst an den Client repliziert werden. Dieser Ort ist ideal für die absolut minimale Menge an Objekten und Client-Skripten, die erforderlich sind, um einen Ladebildschirm anzuzeigen.
ReplicatedStorageEnthält Objekte, die sowohl an den Client als auch an den Server repliziert werden. Dieser Ort ist ideal für ModuleScripts, die sowohl auf dem Server als auch auf dem Client verwendet werden sollen. LocalScripts werden von diesem Ort aus nicht ausgeführt, aber Scripts mit einem RunContext von Client tun dies.
ServerScriptServiceEnthält Server-Skripte. Dieser Ort ist ideal für Skripte, die auf serverseitige Funktionen oder Objekte zugreifen müssen, wie Spiel-Logik und Cloud-Speicherung.
ServerStorageEnthält serverseitige Objekte. Dieser Ort ist ideal für große Objekte, die nicht sofort an Clients repliziert werden müssen, wenn sie einem Spiel beitreten. Skripte werden von diesem Ort aus nicht ausgeführt, aber Sie können serverseitige ModuleScripts hier speichern.
StarterPlayerStarterCharacterScriptsEnthält LocalScripts, die ausgeführt werden, wenn der Charakter erscheint.
StarterPlayerStarterPlayerScriptsEnthält allgemeine LocalScripts, die ausgeführt werden, wenn der Spieler dem Spiel beitritt.
StarterGuiEnthält GUI-Elemente, die der Client anzeigt, wenn er das Spiel lädt. LocalScripts können von diesem Ort aus ausgeführt werden. Dieser Ort ist ideal für Skripte, die die Benutzeroberfläche des Spiels ändern, wie das Hinzufügen von Schaltflächen, Menüs und Pop-ups.
StarterPackEnthält in der Regel nur Tools, kann aber auch LocalScripts für die Einrichtung von Spieler-Rucksäcken beinhalten.

Skripting

Roblox-Spiele unterstützen drei verschiedene Arten von Luau-Skripten:

  • Client-Skripte

    Diese Skripte werden auf dem Client ausgeführt, und der Server hat keine Sichtbarkeit in ihr Verhalten. Aus historischen Gründen können diese Skripte die Form von LocalScripts oder Scripts mit einem RunContext-Wert von Client annehmen. Client-Skripte befinden sich typischerweise in ReplicatedStorage, StarterPlayerScripts oder StarterCharacterScripts.

  • Server-Skripte

    Diese Skripte werden auf dem Server ausgeführt, und der Client hat keine Sichtbarkeit in ihr Verhalten. Server-Skripte haben einen RunContext-Wert von Server und befinden sich typischerweise in ServerScriptService, deren Inhalte nicht an den Client übertragen werden.

  • Modul-Skripte

    Diese Skripte sind wiederverwendbare Codeabschnitte, die genau einen Wert zurückgeben, typischerweise eine Funktion oder Tabelle (oder eine Tabelle von Funktionen). Anstatt Code in Client- und Server-Skripten zu duplizieren, verwenden Sie Modul-Skripte, um Code und Daten zwischen den beiden zu teilen. Modul-Skripte befinden sich oft in ReplicatedStorage, können aber auch an anderen Orten leben, wenn Sie Code zwischen Skripten auf der gleichen Seite der Client-Server-Grenze teilen möchten.

Unreal hat nicht das Konzept unterschiedlicher Skripttypen. Wenn Sie ein Mehrspieler-Spiel erstellen möchten, schreiben Sie zusätzlichen Code, um den Spielzustand zwischen dem Server und den Clients zu synchronisieren.

In Unreal ist ein Großteil der Engine-Funktionalität verfügbar, indem Sie integrierte Klassen wie UObject, ACharacters, ULevel und UWorld in C++ oder Blueprint erweitern. Unreal unterstützt benutzerdefinierte Ereignisse, aber viele Klassen enthalten Ereignisse, die die Engine automatisch als Teil des natürlichen Lebenszyklus des Levels aufruft.

Im Vergleich zum "Ticking"-System von Unreal sind Roblox-Skripte viel ereignisgesteuerter. Sie greifen auf ähnliche Engine-Funktionen zu, indem Sie sich bei Diensten anmelden und auf Updates hören.

C++ und Luau

Für das Skripting verwendet Unreal C++. Roblox verwendet Luau, eine Skriptsprache, die von Lua 5.1 abgeleitet ist.

Im Vergleich zu Luau hat C++ einen allgemeinen Leistungs-Vorteil, der für die Art von Spielen, die Sie erstellen möchten, relevant oder nicht relevant sein kann. Luau ist schrittweise typisiert und hat eine weniger ausführliche Syntax. In größeren Projekten kann jedoch eine schrittweise Typisierung Kategorien von Fehlern einführen, die stark typisierte Sprachen wie C++ vermeiden, daher sollten Sie in Roblox-Skripten strenge Typprüfung aktivieren.

Unreal umfasst auch ein visuelles Skripting-System namens Blueprints. Roblox hat Drittanbieter-Plugins, die ähnliche Funktionen bieten, aber kein vergleichbares System ist integriert.

Luau-Codebeispiel

The following Luau code sample demonstrates how to, after a player equips a fishing pole, listen for user input (in this case, the E key) and call additional functions:


local ContextActionService = game:GetService("ContextActionService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Get a module script from ReplicatedStorage that returns a single function
local performSomeAction = require(ReplicatedStorage.performSomeAction)
-- Assumes that this script is a child of the fishing pole
local fishingPole = script.Parent
local ACTION_CAST = "Cast"
-- Check that the key is down, then call another function
local function castLine(_actionName, inputState, _inputObject)
if inputState == Enum.UserInputState.Begin then
performSomeAction()
end
end
-- Only enable the action when the player equips the fishing pole
fishingPole.Equipped:Connect(function()
ContextActionService:BindAction(ACTION_CAST, castLine, true, Enum.KeyCode.E)
end)
-- Disable the action when the player unequips the fishing pole
fishingPole.Unequipped:Connect(function()
ContextActionService:UnbindAction(ACTION_CAST)
end)

Das Roblox-Skript kann relativ prägnant sein, da Roblox viele integrierte Annahmen hat: ein Player mit einem Humanoid-Charakter, der mit dem Server verbunden ist und Tools ausrüsten kann. Diese Annahmen existieren in Unreal nicht, sodass die Implementierung sehr unterschiedlich wäre.

Assets

Unreal und Roblox unterstützen beide den Import benutzerdefinierter Meshes und Modelle im .fbx-Format. Bestimmte Arten von Assets erfordern möglicherweise spezifische Konfigurationen und Exporteinstellungen von Ihrer Drittanbieter-Modellierungssoftware. Weitere Informationen finden Sie auf den folgenden Seiten:

In Unreal werden Assets in Ihr Content-Verzeichnis importiert, das im Content Browser sichtbar ist. In Roblox werden Assets in Ihren Arbeitsbereich und in die Toolbox oder den Asset Manager importiert.

Roblox bietet auch ein Open-Source Blender-Plugin, um den Importprozess zu erleichtern, ähnlich wie die Funktion Send to Unreal von Blender Tools.

Transformationen

Unreal Engine’s Transformation und Roblox's CFrames dienen ähnlichen Zwecken beim Darstellen von 3D-Transformationen von Objekten:

  • Sowohl Transformationen als auch CFrames repräsentieren die Position und Rotation eines Objekts im 3D-Raum. Transformationen beinhalten Skala, während Roblox eine BasePart.Size-Eigenschaft verwendet, die nicht Teil des CFrame ist.
  • Beide unterstützen die Multiplikation für komplexe Transformationen und haben integrierte Methoden für andere Manipulationen.

Zusammenarbeit

In Unreal arbeiten Sie mit Versionskontrollsystemen wie Perforce oder SVN, normalerweise über die integrierte Benutzeroberfläche von Unreal. Diese Versionskontrollsysteme verwenden das zentrale "Checkout"-Modell, das Dateien sperrt, während eine Person daran arbeitet.

Roblox-Dateien leben in der Cloud (obwohl Sie Kopien exportieren können), daher bietet Roblox Studio integrierte Arbeitsabläufe zur Zusammenarbeit für gleichzeitiges Bearbeiten, Gruppenmanagement, Berechtigungen, Skripterstellung und mehr. Siehe Zusammenarbeit.

Plugins

Ähnlich wie Unreal unterstützt Roblox Studio Plugins, die verschiedene Aspekte des Entwicklungsprozesses vereinfachen oder Ihnen mehr Kontrolle geben können. Plugins sind im Creator Store verfügbar, genau wie Assets, viele kostenlos.

Glossar

UnrealRobloxAnmerkungen
LevelPlace
ActorPart oder ModelSiehe Philosophische Unterschiede.
Blueprint ClassPackage
TransformCFrameCFrame enthält keine Skalierungsinformationen. Siehe Transformationen.
OutlinerExplorer
Details panelProperties
Level Viewport3D-Viewport
Content BrowserAsset Manager oder Toolbox
Landscape ModeTerrain-Editor
PlayerStartSpawnLocation
Output LogOutput
MarketplaceCreator Store
Menu barToolbar
PluginPlugin
©2026 Roblox Corporation. Roblox, das Roblox-Logo und "Powering Imagination" gehören zu unseren eingetragenen und nicht eingetragenen Markenzeichen in den USA und anderen Ländern.