Internships
Register
Copyright © 2000—2025 JetBrains s.r.o.

Утилита для де/сериализации Blueprint'ов на базе Unreal Engine

Description

Blueprint'ы - средство визуального программирования в Unreal Engine. По сути, они являются оберткой на С++ классами и хранятся в бинарном формате. Rider уже умеет получать информацию из Blueprint'ов и отображать ее в окне редактора (пример - список Blueprint классов, отнаследованных от С++ класса).

Текущая реализация использует язык C#, встроена в Rider и никак не связана с реализацией в Unreal Engine. Это приводит к 2 проблемам:

  • Epic Games могут в любой момент изменить формат (еще не случалось)
  • Пользователи Unreal Engine могут модифицировать формат де/сериализации BP по своему усмотрению (уже есть прецеденты
    Это приводит к тому, что одна из главных функциональностей Rider перестает работать.

Для того, чтобы это обойти, мы хотим:

  • Написать утилиту средствами Unreal Engine, которая бы на вход принимала путь до Blueprint файла, десериализует его, и обратно сериализует в промежуточный формат, над которым Rider имеет контроль;
  • Упаковать исходники утилиты вместе с IDE Rider
  • При открытии Unreal Engine проекта распаковывать утилиту на машине пользователя и собирать ее локальными toolchain'ом и Unreal Engine'ом
  • Использовать утилиту для получения информации о BP вместо встроенного парсера на C#

Requirements

Admission

Разработчики: Лето 2021

Mentor

Alexander Pirogov

Mentor's location

Remote

Product/Team

Rider

Tags

C#
C++
Kotlin