---
title: Verse：Verseとは何か？そして、私たちがVerseを作った理由 | Unreal Fest Tokyo 2026
tags:  #unreal fest #unreal fest tokyo 2026  
author: [エピック ゲームズ ジャパン](https://www.docswell.com/user/EpicGamesJapan)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/Y76MNYV6EV.jpg?width=480
description: 講演内容：Verseとは何か、そしてEpic Gamesがなぜ新しいプログラミング言語を開発しているのか。本セッションでは、Verseが解決する課題や、UE6およびScene Graphにもたらすものについて解説し、Verseの主な言語機能も紹介します。  本講演へのアンケートにご協力をお願い致します： https://docs.google.com/forms/d/e/1FAIpQLScI6FWrr04t65fePUmAE6s4RcAwETxXtOUQwk4M5skRkjaK-Q/viewform  講演者： Magnus Enebakk(Epic Games)  Unreal Fest Tokyo 2026公式サイト： https://www.unrealengine.com/events/unreal-fest-tokyo-2026
published: November 05, 26
canonical: https://www.docswell.com/s/EpicGamesJapan/5DMXQG-UE_UFT2026_Verse
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/Y76MNYV6EV.jpg)

U E6, VERS E AN D S CENE GRAPH
why we are building it


# Page. 2

![Page Image](https://bcdn.docswell.com/page/G75Z5GD5J4.jpg)

YOU R SPEA KE R
Verse Evangelist, Epic Games


# Page. 3

![Page Image](https://bcdn.docswell.com/page/9J2RNY8G7R.jpg)

A GE NDA
01
02
03
04
05


# Page. 4

![Page Image](https://bcdn.docswell.com/page/DEYDPG6GEM.jpg)



# Page. 5

![Page Image](https://bcdn.docswell.com/page/VJN65GZ8J8.jpg)

WH AT VE RSE I S
for gameplay code
Print(&quot;Hello, Unreal&quot;)
Count:int = 1.5
# error
var Score:int = 0
for, loop, class, interface
X := if (A) then 1 else 2
&lt;decides&gt;&lt;transacts&gt;


# Page. 6

![Page Image](https://bcdn.docswell.com/page/YE9LYWZX73.jpg)

WH Y V ERSE
one live world
CR EAT O R A
Damage(Amount:float):void
CR EAT O R B
Health.Damage(25.0)
CR EAT O R C
uses B&#039;s weapon


# Page. 7

![Page Image](https://bcdn.docswell.com/page/GE8X6N19JD.jpg)

WH Y V ERSE
one live world
CR EAT O R A
Damage(Amount:float):void
CR EAT O R B
Health.Damage(25.0)
Broken: the call has one argument
CR EAT O R C
uses B&#039;s weapon
Broken with the weapon


# Page. 8

![Page Image](https://bcdn.docswell.com/page/LEL89PQM7R.jpg)

WH Y V ERSE
one live world
CR EAT O R A
Damage(Amount:float):void
CR EAT O R B
Health.Damage(25.0)
Keeps working, unchanged
CR EAT O R C
uses B&#039;s weapon
Keeps working, unchanged


# Page. 9

![Page Image](https://bcdn.docswell.com/page/4JM6Z416EW.jpg)

WH Y V ERSE
designed to solve


# Page. 10

![Page Image](https://bcdn.docswell.com/page/PJRP6WLNE9.jpg)



# Page. 11

![Page Image](https://bcdn.docswell.com/page/PEX3MPW8JX.jpg)

EN GI N E TI ME LI N E
UE6
NO W
UE6
UEFN


# Page. 12

![Page Image](https://bcdn.docswell.com/page/3EKYGDVLJD.jpg)

TH E FUTU RE
UEFN + UE5
Engine
Platforms


# Page. 13

![Page Image](https://bcdn.docswell.com/page/L739NRM675.jpg)

V ERSE IN UE6
sits


# Page. 14

![Page Image](https://bcdn.docswell.com/page/87DGWY6M7G.jpg)

V ERSE IN UE6
Forward-looking
in UE6


# Page. 15

![Page Image](https://bcdn.docswell.com/page/VJP396YQE8.jpg)

FOR UN REA L D EV ELO PERS
maps over
entity
event, listenable
component
@editable
prefab (a class)
GetComponent[t]
OnBegin/EndSimulation
failure
OnSimulate()&lt;suspends&gt;
entity tags
Sleep(), Await()
[]t, [k]v


# Page. 16

![Page Image](https://bcdn.docswell.com/page/2EV4M3GPJQ.jpg)



# Page. 17

![Page Image](https://bcdn.docswell.com/page/57G1G38QEL.jpg)

TH E L AN GU AGE
at a glance
int
var
16
# constant
player_stats
&quot;Hello, Unreal&quot;
# type inferred
float
# mutable
var
10
AddScore
set
100.0
class
string
int
# required
0
25.0
string int
map &quot;Ana&quot;
int
void
set
player_stats
&quot;Ana&quot;
AddScore 10
Add
int
int
Add 5
int
# last expression is the result
10
# named, optional arguments
SpawnWave
SpawnWave 3
int
float
1.5
0.0
void
# types are snake_case, values are PascalCase


# Page. 18

![Page Image](https://bcdn.docswell.com/page/4EQDX59WJP.jpg)

TH E L AN GU AGE
expression
# if produces a value
if
50.0
then &quot;Healthy&quot; else &quot;Hurt&quot;
# for produces an array: array{2, 4, 6}
for
array 1
2
3
2
# case produces a value
case
move_mode
300.0
move_mode
600.0
# a function&#039;s value is its last expression
Square
int
int


# Page. 19

![Page Image](https://bcdn.docswell.com/page/KJ4Z69X171.jpg)

TH E L AN GU AGE
what code can do
&lt;computes&gt;
&lt;reads&gt;
&lt;transacts&gt;
&lt;decides&gt;
&lt;suspends&gt;
FindTarget
OpenDoor
turret &lt;decides&gt;&lt;reads&gt; agent
door &lt;suspends&gt; void
# can fail, only reads state
# takes time


# Page. 20

![Page Image](https://bcdn.docswell.com/page/LE1RVKN5EG.jpg)

FA IL URE
failure


# Page. 21

![Page Image](https://bcdn.docswell.com/page/GEW1LD4W72.jpg)

FA IL URE
nested null checks
VERSE
if
GetVehicle
GetComponent weapon_component
GetLoaded
then
Fire


# Page. 22

![Page Image](https://bcdn.docswell.com/page/47ZPMG22E3.jpg)

FA IL URE
filters
for
IsAlive
IsVisibleFrom
Distance
do
GrantGold 50


# Page. 23

![Page Image](https://bcdn.docswell.com/page/YJ6MNQ667V.jpg)

FA IL URE
everyday code
# was it a player that stepped on the plate?
if
# no score yet? start from 0
player
GrantPoints
Scores
or 0
10
# is there a current target?
# take the first spawn point under the arena
if
FindDescendantEntitiesWithTag spawn_tag
Fire
if
first
Respawn


# Page. 24

![Page Image](https://bcdn.docswell.com/page/GJ5Z5R65E4.jpg)

FA IL URE
failable
GetDamage
player
AllStats
int &lt;decides&gt;&lt;reads&gt; int
# no stats? fails


# Page. 25

![Page Image](https://bcdn.docswell.com/page/9E2RNDMGJR.jpg)

FA IL URE
failable
GetDamage
player
int &lt;decides&gt;&lt;reads&gt; int
AllStats
Weapons
# no stats? fails
# bad slot? fails


# Page. 26

![Page Image](https://bcdn.docswell.com/page/D7YDP2XG7M.jpg)

FA IL URE
failable
GetDamage
player
int &lt;decides&gt;&lt;reads&gt; int
AllStats
# no stats? fails
Weapons
# bad slot? fails
0
# not positive? fails


# Page. 27

![Page Image](https://bcdn.docswell.com/page/VEN65818E8.jpg)

FA IL URE
failable
GetDamage
player
int &lt;decides&gt;&lt;reads&gt; int
AllStats
# no stats? fails
Weapons
# bad slot? fails
0
# not positive? fails
# call it with [ ] in a failure context
if
GetDamage
ApplyDamage
0


# Page. 28

![Page Image](https://bcdn.docswell.com/page/Y79LYK5XJ3.jpg)

FA IL URE
undoes changes
TryBuy
shopper
Pay
if
# fails without enough gold
TakeOne
# fails when sold out
Add
# fails when the bag is full
TryBuy
Equip
item &lt;transacts&gt;&lt;decides&gt; void
not kept yet
not kept yet
fails


# Page. 29

![Page Image](https://bcdn.docswell.com/page/G78X6RY9ED.jpg)

FA IL URE
Planned
to know why
buy_error
Buy
enum
shopper
item &lt;transacts&gt; result item
Pay
or
TakeOne
or
return MakeError buy_error
Add
or
return MakeError buy_error
MakeSuccess
buy_error
return MakeError buy_error


# Page. 30

![Page Image](https://bcdn.docswell.com/page/L7L89K4MJR.jpg)

FA IL URE
Planned
to know why
buy_error
Buy
enum
shopper
item &lt;transacts&gt; result item
Pay
or
buy_error
return MakeError buy_error
TakeOne
or
return MakeError buy_error
Add
or
return MakeError buy_error
not kept yet
MakeSuccess
not kept yet
THE CAL LER
fails
speculate Buy
if
GetSuccess
The player sees BagFull, and nothing changed.
Equip
else if
ShowError
GetError


# Page. 31

![Page Image](https://bcdn.docswell.com/page/4EM6Z2K67W.jpg)

C ONC URRE NC Y
take time
VERSE
OpenVault
&lt;suspends&gt; void
Play
Sleep 2.0
# wait, without blocking
SlideOpen
# returns when it&#039;s open
Await
Stop
# wait for an event


# Page. 32

![Page Image](https://bcdn.docswell.com/page/PERP6MXN79.jpg)

C ONC URRE NC Y
Tick
Tick 1
VERSE TASK
void AVault
if
Tick float
OpenVault
EVaultState
1
&lt;suspends&gt; void
Play
Sleep 2.0
if
0
return
SlideOpen
StartOpening
Await
EVaultState
else if
if
Stop
EVaultState
IsOpen
EVaultState
return


# Page. 33

![Page Image](https://bcdn.docswell.com/page/P7X3MV68EX.jpg)

C ONC URRE NC Y
Tick
Ticks 2 to 60: the 2 second wait
VERSE TASK
void AVault
if
Tick float
OpenVault
EVaultState
1
&lt;suspends&gt; void
Play
Sleep 2.0
if
0
return
SlideOpen
StartOpening
Await
EVaultState
else if
if
Stop
EVaultState
IsOpen
EVaultState
return


# Page. 34

![Page Image](https://bcdn.docswell.com/page/37KYGQ1LED.jpg)

C ONC URRE NC Y
Tick
Tick 61: the wait is over
VERSE TASK
void AVault
if
Tick float
OpenVault
EVaultState
1
&lt;suspends&gt; void
Play
Sleep 2.0
if
0
return
2
SlideOpen
StartOpening
Await
EVaultState
else if
if
Stop
EVaultState
IsOpen
EVaultState
return


# Page. 35

![Page Image](https://bcdn.docswell.com/page/LJ39NPQ6J5.jpg)

C ONC URRE NC Y
Tick
Ticks 62 to 90: the door is opening
VERSE TASK
void AVault
if
Tick float
OpenVault
EVaultState
1
&lt;suspends&gt; void
Play
Sleep 2.0
if
0
return
2
SlideOpen
StartOpening
Await
EVaultState
else if
if
Stop
EVaultState
IsOpen
EVaultState
return


# Page. 36

![Page Image](https://bcdn.docswell.com/page/8JDGWL9MJG.jpg)

C ONC URRE NC Y
concurrency
sync
race
wins
rush
branch
wins


# Page. 37

![Page Image](https://bcdn.docswell.com/page/VEP392ZQ78.jpg)

C ONC URRE NC Y
as a race
VERSE
ChargedAttack
player_state &lt;suspends&gt; void
# charge up, unless we get hit first
race
block
Sleep
true
block
Await
false
if
FireProjectile
else
PlayStagger


# Page. 38

![Page Image](https://bcdn.docswell.com/page/27V4MDWPEQ.jpg)

PERSI ST ENC E
survives sessions
player_progress
class&lt;final&gt;&lt;persistable&gt;
int
1
int
0
# saved for each player, loaded when the player joins
var
weak_map player
AddCoins
player
Progress
int &lt;transacts&gt; void
or player_progress
player_progress
if
set Progress
ShowCoins
player_progress
map


# Page. 39

![Page Image](https://bcdn.docswell.com/page/5JG1GYDQ7L.jpg)



# Page. 40

![Page Image](https://bcdn.docswell.com/page/47QDXM1WEP.jpg)

SC ENE GRAPH
a tree of entities
vault_controller_component
door_component
pressure_plate_component
EP_Vault prefab
door_component
EP_Vault


# Page. 41

![Page Image](https://bcdn.docswell.com/page/KE4Z6VR1J1.jpg)

SC ENE GRAPH
a Verse class
hello_component&lt;public&gt;
class&lt;final_super&gt; component
@editable Message&lt;public&gt; string
OnBeginSimulation&lt;override&gt;
OnSimulate()&lt;suspends&gt;
super
&quot;Hello from Verse&quot;
void
OnBeginSimulation
Print
OnSimulate&lt;override&gt;
&lt;suspends&gt; void
loop
Sleep 5.0
Print &quot;Still running&quot;


# Page. 42

![Page Image](https://bcdn.docswell.com/page/L71RV3Q57G.jpg)

SC ENE GRAPH
in Verse
pressure_plate_component
pressure_plate_component&lt;public&gt;
@editable HoldTime&lt;public&gt; float
OnSimulate&lt;override&gt;
if
class&lt;final_super&gt; component
2.0
&lt;suspends&gt; void
GetComponent mesh_component


# Page. 43

![Page Image](https://bcdn.docswell.com/page/G7W1LPMWJ2.jpg)

SC ENE GRAPH
in Verse
pressure_plate_component
pressure_plate_component&lt;public&gt;
@editable HoldTime&lt;public&gt; float
OnSimulate&lt;override&gt;
class&lt;final_super&gt; component
2.0
&lt;suspends&gt; void
if
GetComponent mesh_component
loop
Await
race
block
Await
false
block
Sleep
true


# Page. 44

![Page Image](https://bcdn.docswell.com/page/4JZPMKQ273.jpg)

SC ENE GRAPH
in Verse
pressure_plate_component
pressure_plate_component&lt;public&gt;
@editable HoldTime&lt;public&gt; float
OnSimulate&lt;override&gt;
class&lt;final_super&gt; component
2.0
&lt;suspends&gt; void
if
GetComponent mesh_component
loop
Await
race
block
Await
false
block
Sleep
true
if
SendUp plate_activated_event


# Page. 45

![Page Image](https://bcdn.docswell.com/page/YE6MNQN6JV.jpg)

SC ENE GRAPH
through the tree
plate_activated_event&lt;public&gt;
vault_controller_component
class scene_event
# pressure_plate_component, on the plate
SendUp plate_activated_event
pressure_plate_component
door_component
door_component
SendUp


# Page. 46

![Page Image](https://bcdn.docswell.com/page/GE5Z5R5574.jpg)

SC ENE GRAPH
through the tree
plate_activated_event&lt;public&gt;
vault_controller_component
OnReceive
class scene_event
# pressure_plate_component, on the plate
SendUp plate_activated_event
pressure_plate_component
SendUp
# vault_controller_component, on the arena
OnReceive&lt;override&gt;
if
scene_event
logic
plate_activated_event
OpenAllDoors
true
door_component
else
false
door_component
# handled: stop here


# Page. 47

![Page Image](https://bcdn.docswell.com/page/972RNDNGER.jpg)

SC ENE GRAPH
through the tree
plate_activated_event&lt;public&gt;
vault_controller_component
OnReceive
class scene_event
# pressure_plate_component, on the plate
SendUp plate_activated_event
pressure_plate_component
SendUp
# vault_controller_component, on the arena
OnReceive&lt;override&gt;
if
scene_event
logic
plate_activated_event
OpenAllDoors
door_component
true
found
# handled: stop here
else
false
OpenAllDoors
door_component
void
FindDescendantComponents door_component
found
for
Open


# Page. 48

![Page Image](https://bcdn.docswell.com/page/DJYDP2PGJM.jpg)

SC ENE GRAPH
a Verse class
GENERATED IN ASSETS. DIGEST.VE RSE
EP_Vault
# simplified: access specifiers and import paths left out
class&lt;final&gt;&lt;concrete&gt; entity
door_component
class&lt;final&gt; mesh_component
@editable
var
material
external
I N YOUR CO DE
# the whole prefab
AddEntities array
# now in the scene


# Page. 49

![Page Image](https://bcdn.docswell.com/page/V7N6585878.jpg)

SC ENE GRAPH
In design
written in Verse
I N VERSE (SYNTAX NOT FINAL )
vault
prefab
class entity
Door&lt;entity_field&gt; entity
entity
Mesh&lt;component_field&gt;
door_component
Logic&lt;component_field&gt; door_component
Alarm&lt;entity_field&gt; entity
entity
Sound&lt;component_field&gt; sound_component
var
Loot&lt;entity_field&gt; entity
# only some vaults
optional


# Page. 50

![Page Image](https://bcdn.docswell.com/page/YJ9LYKYXE3.jpg)



# Page. 51

![Page Image](https://bcdn.docswell.com/page/GJ8X6R697D.jpg)

WH AT &#039; S NEXT
Vision
massive shared simulations
One shared Verse simulation


# Page. 52

![Page Image](https://bcdn.docswell.com/page/LJL89K9MER.jpg)

WH AT &#039; S NEXT
Unreleased
reactive code
L IVE VARI ABL ES
var
REACTI NG TO CHANGE
int
0
var live
int
set
5
var
1
int
100
# X now tracks Y
# X is now 6
upon
0
# once, when it first holds
Print &quot;Player died!&quot;
when
# every time it changes
SetHealthBar
await
100
# suspend until healed


# Page. 53

![Page Image](https://bcdn.docswell.com/page/47M6Z2Z6JW.jpg)

WH AT &#039; S NEXT
Unreleased
prediction
HandleJump
&lt;predicts&gt; void
StartJumpAnimation
# runs now, on the client
PlayJumpSound
PerformJump
# the server validates


# Page. 54

![Page Image](https://bcdn.docswell.com/page/P7RP6M6NJ9.jpg)

WH AT &#039; S NEXT
Forward-looking
coming
In progress
On the roadmap
Planned


# Page. 55

![Page Image](https://bcdn.docswell.com/page/PJX3MVM87X.jpg)

GO BUI L D
learn Verse
BO O K
DO CS
FO RUM S
CO M M UNI TY
API
AL L L I NK S


# Page. 56

![Page Image](https://bcdn.docswell.com/page/3JKYGQGL7D.jpg)

THAN K YO U


