В этом последнем шаге вы найдёте полный код Verse, используемый для создания проекта. Каждый приведённый ниже заголовок является именем файла в проекте, в котором присутствует код.
Попробуйте изменить код и найти способы добавить новые возможности в мини-игру. Вот несколько идей насчёт того, что можно добавить:
Добавьте новые уровни для персонажа.
Начните отслеживать, сколько времени уходит на решение головоломки или сколько ходов персонаж делает на каждом уровне.
Добавьте новые команды для персонажа, чтобы усложнить головоломку, например, подбор предметов и их размещение на доске.
submodules.verse
Файл проекта submodules.verse устанавливает уровень доступа для подмодулей и ресурсов в проекте, чтобы их можно было использовать в коде Verse. Подробности см. в шаге 5. Управление неигровым персонажем с помощью интерфейса и в разделе Доступ к ресурсам в Verse.
# This file sets the access levels for submodules in the project.
# Specifically, this file is making art assets accessible to the Verse files in the project
# so textures, meshes, and materials can be used in the UI and in the game.
# The submodule Textures.MiniGameUI below is the same as the folder
# Textures/MinigameUI that you can see in the project's Content Browser.
Textures := module:
MiniGameUI<public> := module{}
# The submodule VerseCommander below is the same as the folder
verse_starter_tags.verse
Файл проекта verse_starter_tags.verse содержит определение для тега игрового процесса verse_commander_minigame_tag, который сценарий NPC персонажа Verse Commander может использовать для поиска устройства Verse Commander Minigame и ожидания его событий. Подробности см. в шаге 1. Создание поведения неигрового персонажа.
# This file contains the Gameplay Tags for the project.
# You can use Gameplay Tags to tag an object in the island
# and be able to query all objects that have the tag during the game using Verse.
using { /Verse.org/Simulation/Tags }
# The verse_commander_minigame_tag is for the Verse Commander Character NPC script
# to be able to find the Verse Commander Minigame device and listen to its events.
verse_commander_minigame_tag := class(tag){}
commands.verse
Файл проекта commands.verse в подмодуле VerseCommander содержит представление всех команд в виде данных, которые может получать NPC. Подробности см. в шаге 4. Представление данных команд.
# This file contains the data representation of all the commands that the NPC can receive
# and utilities for the data to help with debugging and troubleshooting issues.
# Each type of command that the NPC can perform will be an instance of this class.
# The class has the unique specifier to make instances of the class comparable.
# The class has the computes specifier to be able to instantiate it at module-scope.
# The class has the abstract specifier so it cannot be instantiated directly, and
# requires subclasses to implement any non-initialized functions, like DebugString().
command := class<computes><unique><abstract>:
DebugString():string
gameboard.verse
Файл проекта gameboard.verse в подмодуле VerseCommander содержит данные игровых досок и поведение. Подробности см. в шаге 2. Определение игровых досок.
# This file contains the gameboard structure and how it works.
# The gameboard knows where the NPC is supposed to start on the board
# how many obstacles / barriers there are to getting to the end goal,
# and what the end goal is and when it has been reached.
using { /Fortnite.com/Devices }
using { /UnrealEngine.com/Temporary/SpatialMath }
using { /Verse.org/Simulation }
using { /Verse.org/Simulation/Tags }
# An obstacle on the gameboard, with an associated set of
ui_manager.Verse
Файл проекта ui_manager.verse в подмодуле VerseCommander содержит код для создания и изменения внешнего вида интерфейса. Подробности см. в шаге 5. Управление неигровым персонажем с помощью интерфейса.
# This file contains all the code to create and modify the UI
# in the Verse Commander minigame.
# The UI for the game contains:
# - Buttons that map to commands for the NPC: forward, turn left, turn right.
# - An execute button that tells the NPC to perform the queue of commands.
# - A remove button that removes the last command added.
# - A reset button that resets the current board and clears out the command queue.
# - A dynamic list of commands that grows wider when a player adds commands and shrinks when a player removes commands.
using { /Fortnite.com/Devices }
verse_commander_minigame.verse
Файл проекта verse_commander_minigame.verse в подмодуле VerseCommander содержит Verse-устройство, которое управляет мини-игрой. Подробности см. в шаге 6. Управление игровым циклом.
# This device is in charge of managing the minigame.
# In its Details panel in the editor, you can:
# - Define how many gameboards there are
# - The order you play the gameboards
# - All the details of the gameboard such as their obstacles.
using { /Fortnite.com/Devices }
using { /Fortnite.com/UI }
using { /UnrealEngine.com/Temporary }
using { /UnrealEngine.com/Temporary/Diagnostics }
verse_commander_character.verse
Файл проекта verse_commander_character.verse в подмодуле VerseCommander содержит логику NPC мини-игры. Подробности см. в шаге 1. Создание поведения неигрового персонажа.
# This file handles the logic for the gameboard NPC. The NPC waits for commands from
# verse_commander_minigame, then executes movement based on those commands using navigation targets.
# It also tracks the NPC's position using a visual arrow that updates after each command.
using { /Fortnite.com/AI }
using { /Fortnite.com/Characters }
using { /Fortnite.com/Devices }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /UnrealEngine.com/Temporary/SpatialMath }
using { /Verse.org/Assets }