Похожие презентации:
Презентация Уфимцев
1.
Институт информационных технологийКафедра информационных технологий и экономической информатики
ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА
Разработка фреймворка для движка Unity на базе архитектурного паттерна
Entity Component System для ООО "Омега"
Выполнил студент Уфимцев Андрей
Константинович
Группы ИТЗ-501
заочной формы обучения
направления подготовки
02.03.02 Фундаментальная информатика и
информационные технологии
Научный руководитель
Скрипов Сергей Александрович
Должность: И.О. заведующего кафедрой
ИТиЭИ
Ученая степень: кандидат
физико-математических наук
Ученое звание:
Научный консультант
ФИО
Должность:
2.
Департамент образования, науки иинноваций
Systema:
Анатомический атлас
Кулибин
3.
Проблематика– Отсутствие единой архитектурной
платформы
– Ограниченные возможности
масштабирования и повторного
использования кода
– Повышенные затраты на тестирование и
отладку
– Сложность внедрения сетевого решения в
существующие программные продукты
4.
РешениеРазработка общего для проектов
департамента фреймворка, который
призван:
– Унифицировать архитектуру
– Избавиться от излишней связанности
– Оптимизировать процесс тестирования
– Упростить внедрение сетевого решения
5.
Требования– Архитектурная независимость
модулей
– Разделение данных и логики
– Высокая производительность
– Интеграция с Unity
– Поддержка клиент-серверного
взаимодействия
6.
Entity-Component-System7.
Технологический стек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 млн рублей
– Решение в будущем оптимизирует
затраты на внедрение нового
функционала