Verse Scripting voor beginners: je eerste UEFN Device
Wat is Verse?
Verse is de programmeertaal van Epic Games, speciaal ontworpen voor UEFN. Als je Python hebt gebruikt, zal Verse vertrouwd aanvoelen — het gebruikt op inspringing gebaseerde syntax en leest bijna als Engels. Maar het leent ook ideeën van functionele programmeertalen zoals Haskell, waardoor het krachtig is voor gamelogica.
Elk aangepast gedrag in UEFN dat verder gaat dan basis Creative devices vereist Verse. Scoresystemen, aangepaste UI, loadout-managers, rondebeheer, ranked progressie — allemaal Verse.
Je eerste Verse Device opzetten
Maak in UEFN een nieuw Verse device aan:
- Open je project in UEFN
- Ga naar het Verse menu → Create New Verse File
- Kies Creative Device als template
- Noem het
my_first_device
UEFN genereert een boilerplate-bestand dat er zo uitziet:
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!")Laten we dit ontleden.
De basis begrijpen
`using` statements — Deze importeren API's. /Fortnite.com/Devices geeft je toegang tot Creative devices. /Verse.org/Simulation biedt kern simulatiefuncties. /UnrealEngine.com/Temporary/Diagnostics geeft je Print() voor debugging.
Klassedefinitie — my_first_device := class(creative_device) maakt een nieuwe device-klasse aan die overerft van creative_device. Dit is jouw aangepaste device dat je in de wereld plaatst.
OnBegin — Deze functie wordt uitgevoerd wanneer het spel start. De <override> tag betekent dat je de OnBegin van de bovenliggende klasse vervangt. De <suspends> tag betekent dat deze functie asynchrone operaties kan gebruiken (zoals Sleep()).
Een Kill Counter bouwen
Laten we iets nuttigs bouwen — een device dat kills bijhoudt en weergeeft. Eerst moet je verwijzen naar een UI device in je 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) {}Belangrijke Verse concepten
Feilbare expressies — Verse gebruikt if voor operaties die kunnen falen. Player.GetFortCharacter[] kan niets teruggeven als de speler geen personage heeft. De [] haakjes duiden een feilbare aanroep aan, en het inpakken in if vangt het faalscenario elegant op.
Mutabiliteit — Variabelen gedeclareerd met var kunnen worden gewijzigd. Zonder var zijn waarden standaard onveranderlijk. Dit voorkomt onbedoelde toestandsmutaties.
Events en subscriptions — Verse gebruikt een event-driven patroon. Je abonneert je op events (PlayerAddedEvent, EliminatedEvent) en geeft callback-functies mee. Zo reageer je op gameplay zonder polling.
Maps en arrays — [agent]int is een map-type (dictionary) dat agents aan gehele getallen koppelt. map{} maakt een lege aan.
Veelgebruikte patronen
Hier zijn patronen die je in bijna elk Verse device zult gebruiken:
Timer/vertraging:
Sleep(5.0) # Wacht 5 secondenLoop:
loop:
DoSomething()
Sleep(1.0)Speler-iteratie:
Players := GetPlayspace().GetPlayers()
for (Player : Players):
# Doe iets met elke spelerVolgende stappen
Deze gids behandelt de absolute basis. Om dieper te gaan:
- Lees Epic's officiële Verse documentatie
- Bestudeer open-source Verse projecten op GitHub
- Oefen door bestaande Creative devices na te bouwen in Verse
- Sluit je aan bij de UEFN Discord community voor hulp
Het bouwen van aangepaste Verse devices is wat professionele UEFN developers onderscheidt van hobbyisten. Als je complexe aangepaste mechanismen nodig hebt voor je map, ons team is gespecialiseerd in Verse scripting — van aangepaste scoresystemen tot complete game mode frameworks.
Bekijk ons portfolio om Verse in actie te zien in 10 gepubliceerde maps met meer dan 4,8 miljard gespeelde minuten.
Kaio
UEFN-mapontwikkelaar bij Kaio Corporation
Professionele Fortnite UEFN-mapontwikkelaar. 4,8B+ minuten gespeeld. Meer informatie →
Een aangepaste map nodig?
Neem contact op →