Цей документ містить інструкції для налаштування та запуску ігрового прототипу "Big Data Flow Planner", створеного за допомогою C# скриптів.
Це прототип гри-головоломки, де гравець виступає в ролі дата-інженера. Мета — будувати конвеєри (pipelines) для обробки великих даних, з'єднуючи різні типи вузлів (джерела, трансформації, приймачі) для досягнення цілей рівня, враховуючи обмеження бюджету та часу.
- Unity 2022.3 (LTS) або новіше (включно з Unity 6).
- Базове розуміння інтерфейсу Unity.
- Відкрийте Unity Hub.
- Натисніть New project.
- Оберіть шаблон 2D (Core) або 2D (URP).
- Введіть назву проекту та натисніть Create project.
- Після створення проекту, відкрийте папку проекту у вашому файловому менеджері.
- Скопіюйте всю папку
Scripts
з цього репозиторію до папкиAssets
вашого нового проекту Unity. - Поверніться до Unity. Редактор автоматично скомпілює всі нові скрипти.
Вам потрібно створити префаби для кожного типу вузла (DataSource
, DataSink
, Filter
, Aggregate
). Ось приклад для DataSourceNode
:
- В ієрархії сцени, натисніть правою кнопкою миші -> 2D Object -> Sprites -> Circle. Це створить
GameObject
з компонентомSpriteRenderer
. - Налаштуйте
SpriteRenderer
, обравши бажаний спрайт та колір. - Натисніть Add Component в інспекторі та додайте:
Circle Collider 2D
(щоб на вузол можна було клікати).DataSourceNode
(ваш скрипт).NodeAnimator
(ваш скрипт).
- Перетягніть цей
GameObject
з ієрархії у вікно Project, щоб створити префаб. - Повторіть цей процес для інших типів вузлів, додаючи відповідний скрипт (
FilterNode
,AggregateNode
,DataSinkNode
).
- В ієрархії, створіть пустий
GameObject
і назвіть йогоLinePrefab
. - Додайте до нього компонент Line Renderer. Налаштуйте його вигляд (ширину, матеріал). Можна використати вбудований
Sprites-Default
матеріал. - Додайте до
LinePrefab
скрипт DataFlowAnimator. - Створіть дочірній об'єкт для
LinePrefab
(натисніть правою кнопкою наLinePrefab
-> Create Empty). Назвіть йогоParticle
. Цей об'єкт буде рухатись вздовж лінії. - Збережіть
LinePrefab
як префаб, перетягнувши його у вікно Project.
- Створіть у сцені пустий
GameObject
та назвіть йогоGameController
. - Додайте на
GameController
наступні скрипти:PipelineManager
LevelManager
PlayerInputController
EventController
- Створіть ще один пустий
GameObject
та назвіть йогоVisuals
. - Додайте на
Visuals
наступні скрипти:PipelineVisualizer
LineDrawer
- У вікні Project, натисніть правою кнопкою миші -> Create -> Big Data Flow -> Level Data. Це створить новий ассет даних.
- Назвіть його
Level_01_Data
. - Натисніть на цей ассет, щоб відкрити його в інспекторі.
- Налаштуйте параметри рівня:
- Встановіть
Time Limit
,Target Flow
,Initial Budget
. - У списку
Initial Node Placements
, встановіть розмір (наприклад, 3). - Для кожного елемента списку:
- Перетягніть відповідний префаб вузла у поле
Node Prefab
. - Встановіть
Position
та унікальнийNode Id
.
- Перетягніть відповідний префаб вузла у поле
- Встановіть
Тепер потрібно з'єднати всі компоненти в інспекторі.
- Оберіть
GameController
у сцені.- У компоненті
Level Manager
, перетягніть ваш ассетLevel_01_Data
у полеCurrent Level Data
. - Перетягніть
GameObject
GameController
(на якому єPipelineManager
) у полеPipeline Manager
. - У компоненті
Player Input Controller
, перетягнітьGameController
у полеPipeline Manager
таVisuals
(на якому єLineDrawer
) у полеLine Drawer
.
- У компоненті
- Оберіть
Visuals
у сцені.- У компоненті
Pipeline Visualizer
, перетягніть ваш префаб лінії у полеLine Prefab
.
- У компоненті
Натисніть кнопку Play у редакторі Unity. Якщо все налаштовано правильно, на сцені з'являться початкові вузли, і ви зможете з'єднувати їх, перетягуючи мишкою.
- Core Logic:
NodeBase
,NodeModule
,DataSourceNode
,DataSinkNode
,FilterNode
,AggregateNode
. - Managers:
PipelineManager
,LevelManager
,EventController
. - Player Input:
PlayerInputController
. - Visuals:
PipelineVisualizer
,LineDrawer
,NodeAnimator
,DataFlowAnimator
. - Data:
LevelData
.
- Розширити логіку
EventController
для генерації випадкових подій. - Додати більше типів вузлів (Join, Split).
- Створити UI для відображення перемоги/поразки.
- Розробити візуальне налаштування параметрів вузлів (наприклад, відсоток фільтрації).