Verse-Scripting für Einsteiger: Ihr erstes UEFN-Gerät
Was ist Verse?
Verse ist Epics Programmiersprache, die speziell für UEFN entwickelt wurde. Wenn Sie Python kennen, wird Ihnen Verse vertraut vorkommen — es verwendet einrückungsbasierte Syntax und liest sich fast wie natürliche Sprache. Es übernimmt aber auch Konzepte aus funktionalen Programmiersprachen wie Haskell, was es für Spiellogik besonders leistungsfähig macht.
Jedes benutzerdefinierte Verhalten in UEFN, das über die Basis-Creative-Geräte hinausgeht, erfordert Verse. Punktesysteme, benutzerdefinierte UI, Loadout-Manager, Rundenverwaltung, Ranglistenprogression — alles Verse.
Ihr erstes Verse-Gerät einrichten
Erstellen Sie in UEFN ein neues Verse-Gerät:
- Öffnen Sie Ihr Projekt in UEFN
- Gehen Sie zu Verse Menü → Create New Verse File
- Wählen Sie Creative Device als Vorlage
- Benennen Sie es
my_first_device
UEFN generiert eine Vorlagendatei, die so aussieht:
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
my_first_device := class(creative_device):
OnBegin<override>()<suspends>:void=
Print("Hello, Fortnite!")Lassen Sie uns das aufschlüsseln.
Die Grundlagen verstehen
`using`-Anweisungen — Diese importieren APIs. /Fortnite.com/Devices gibt Ihnen Zugriff auf Creative-Geräte. /Verse.org/Simulation stellt grundlegende Simulationsfeatures bereit. /UnrealEngine.com/Temporary/Diagnostics gibt Ihnen Print() zum Debuggen.
Klassendefinition — my_first_device := class(creative_device) erstellt eine neue Geräteklasse, die von creative_device erbt. Dies ist Ihr benutzerdefiniertes Gerät, das Sie in der Welt platzieren.
OnBegin — Diese Funktion wird beim Spielstart ausgeführt. Das <override>-Tag bedeutet, dass Sie das OnBegin der Elternklasse überschreiben. Das <suspends>-Tag bedeutet, dass diese Funktion asynchrone Operationen (wie Sleep()) verwenden kann.
Einen Kill-Zähler bauen
Bauen wir etwas Nützliches — ein Gerät, das Kills zählt und anzeigt. Zunächst benötigen Sie eine Referenz zu einem UI-Gerät in Ihrem Level:
using { /Fortnite.com/Devices }
using { /Fortnite.com/Characters }
using { /Verse.org/Simulation }
kill_counter := class(creative_device):
@editable
EndGameDevice : end_game_device = end_game_device{}
var KillCounts : [agent]int = map{}
OnBegin<override>()<suspends>:void=
# Subscribe to elimination events
GetPlayspace().PlayerAddedEvent().Subscribe(OnPlayerAdded)
OnPlayerAdded(Player : player):void=
if (FortCharacter := Player.GetFortCharacter[]):
FortCharacter.EliminatedEvent().Subscribe(OnEliminated)
OnEliminated(Result : elimination_result):void=
if (Eliminator := Result.EliminatingCharacter):
if (Player := player[Eliminator.GetAgent[]]):
if (set KillCounts[Player] += 1) {}Wichtige Verse-Konzepte
Fehlbare Ausdrücke — Verse verwendet if für Operationen, die fehlschlagen könnten. Player.GetFortCharacter[] könnte nichts zurückgeben, wenn der Spieler keinen Charakter hat. Die []-Klammern kennzeichnen einen fehlbaren Aufruf, und das Einbetten in if behandelt den Fehlerfall elegant.
Veränderbarkeit — Mit var deklarierte Variablen können geändert werden. Ohne var sind Werte standardmäßig unveränderlich. Dies verhindert versehentliche Zustandsänderungen.
Events und Subscriptions — Verse verwendet ein eventgesteuertes Muster. Sie abonnieren Events (PlayerAddedEvent, EliminatedEvent) und stellen Callback-Funktionen bereit. So reagieren Sie auf Gameplay ohne Polling.
Maps und Arrays — [agent]int ist ein Map-Typ (Dictionary), der Agents auf Integer abbildet. map{} erstellt eine leere Map.
Häufige Muster
Hier sind Muster, die Sie in fast jedem Verse-Gerät verwenden werden:
Timer/Verzögerung:
Sleep(5.0) # 5 Sekunden wartenSchleife:
loop:
DoSomething()
Sleep(1.0)Spieler-Iteration:
Players := GetPlayspace().GetPlayers()
for (Player : Players):
# Etwas mit jedem Spieler machenNächste Schritte
Dieser Leitfaden deckt die absoluten Grundlagen ab. Um tiefer einzusteigen:
- Lesen Sie Epics offizielle Verse-Dokumentation
- Studieren Sie Open-Source-Verse-Projekte auf GitHub
- Üben Sie, indem Sie bestehende Creative-Geräte in Verse nachbauen
- Treten Sie der UEFN Discord-Community bei, um Hilfe zu erhalten
Das Erstellen benutzerdefinierter Verse-Geräte unterscheidet professionelle UEFN-Entwickler von Hobbyisten. Wenn Sie komplexe benutzerdefinierte Mechaniken für Ihre Map benötigen, ist unser Team auf Verse-Scripting spezialisiert — von benutzerdefinierten Punktesystemen bis zu vollständigen Spielmodus-Frameworks.
Sehen Sie sich unser Portfolio an, um Verse in Aktion mit über 4,8 Milliarden Spielminuten zu erleben.
Kaio
UEFN Map-Entwickler bei Kaio Corporation
Professioneller Fortnite UEFN Map-Entwickler. Über 4,8 Mrd. gespielte Minuten. Mehr erfahren →
Sie brauchen eine eigene Map?
Kontakt aufnehmen →