2.17M

Презентация Уфимцев

1.

Институт информационных технологий
Кафедра информационных технологий и экономической информатики
ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА
Разработка фреймворка для движка Unity на базе архитектурного паттерна
Entity Component System для ООО "Омега"
Выполнил студент Уфимцев Андрей
Константинович
Группы ИТЗ-501
заочной формы обучения
направления подготовки
02.03.02 Фундаментальная информатика и
информационные технологии
Научный руководитель
Скрипов Сергей Александрович
Должность: И.О. заведующего кафедрой
ИТиЭИ
Ученая степень: кандидат
физико-математических наук
Ученое звание:
Научный консультант
ФИО
Должность:

2.

Департамент образования, науки и
инноваций
Systema:
Анатомический атлас
Кулибин

3.

Проблематика
– Отсутствие единой архитектурной
платформы
– Ограниченные возможности
масштабирования и повторного
использования кода
– Повышенные затраты на тестирование и
отладку
– Сложность внедрения сетевого решения в
существующие программные продукты

4.

Решение
Разработка общего для проектов
департамента фреймворка, который
призван:
– Унифицировать архитектуру
– Избавиться от излишней связанности
– Оптимизировать процесс тестирования
– Упростить внедрение сетевого решения

5.

Требования
– Архитектурная независимость
модулей
– Разделение данных и логики
– Высокая производительность
– Интеграция с Unity
– Поддержка клиент-серверного
взаимодействия

6.

Entity-Component-System

7.

Технологический стек
Unity – движок, среда выполнения
C# – язык программирования
JetBrains Rider – IDE
Git – система контроля версий

8.

Существующие решения
– Unity DOTS
– Entitas
– Leopotam ECS
– Morpeh

9.

Реализация фрймворка
– Контекст – управление жизненным
циклом систем и сущностей
– Теги - большие битовые маски
– Хранилище компонентов – разряженный
массив
– Оптимизация чтения и записи – unsafe
доступ к компонентам напрямую

10.

Реализация сетевого взаимодействия

11.

Бенчмарк
Тест / Фреймворк
LeoECS
Entitas
Разрабатываемый
фреймворк
Создание сущностей с
одним компонентом
19.749 мс
13684.05 КБ
92.512 мс
56677.68 КБ
11.290 мс
8170.29 КБ
Создание сущностей с
двумя компонентами
31.291 мс
14709.32 КБ
99.232 мс
59021.43 КБ
18.763 мс
10219.15 КБ
Создание сущностей с
тремя компонентами
27.863 мс
15734.73 КБ
103.717 мс
61365.18 КБ
26.626 мс
12268.1 КБ
Изменение сущностей
с одним компонентом
144.98 нс
0 байт
5100.00 нс
109 байт
1841.54 нс
5 байт
Изменение сущностей
с двумя компонентами
237.02 нс
0 байт
4494.22 нс
109 байт
3636.00 нс
0 байт
Изменение сущностей
с тремя компонентами
788.61 нс
1 байт
4341.06 нс
109 байт
4533.31 нс
11 байт

12.

Тестирование и внедрение
– Ручное тестирование
– Автоматические тесты
– Внедрение в существующий продукт

13.

Экономика
– Общие затраты на разработку составили
559 608 рублей
– Внедрение фреймворка уже принесло
экономию более 2,8 млн рублей
– Решение в будущем оптимизирует
затраты на внедрение нового
функционала

14.

Спасибо за внимание!
English     Русский Правила