Однако переход на новую парадигму является очень затратным процессом как для компании, так и для самого разработчика отчасти из-за того, что парадигма подразумевает под собой запрет на определенные действия внутри кода [8]. Также необходимо учесть, что переход к функциональной парадигме может потребовать интеграции с уже существующим кодом, написанным в императивном стиле, что может вызвать сложности в совместимости и взаимодействии между разными частями проекта и архитектуры [9]. Следовательно, необходимо разработать такой подход использования ФП, который исключит вышеназванные минусы и будет оптимальным для использования.
Постановка задачи
Итак, проект был ориентирован на создание универсального подхода для интеграции функциональной парадигмы в разработку на игровых движках
Целью работы является разработка расширения для редактора кода, которое позволит интегрировать функциональное программирование в текущие проекты, оптимизируя затраты ресурсов.
Были выделены следующие задачи:
сбор информации о уже существующих подходах;
разбор потенциальных проблем при использовании ФП в разработке игр;
поиск вариантов решения или обхода проблем;
создание расширения для редактора кода, которое предлагает готовый паттерн в функциональном стиле.
Объект нашего исследования - применение функционального подхода к разработке игр.
Результатом работы представляется расширение для редактора кода, который предлагает готовый паттерн в функциональном стиле.
Введение .................................................................................................... 4
Актуальность ........................................................................................ 4
Постановка задачи ............................................................................... 6
Глава 1. Анализ предметной области ...................................................... 8
1.1. Сравнение альтернативных решений ........................................ 10
1.2. Сбор информации о существующих подходах ......................... 12
1.3. Разбор потенциальных проблем использовании подходов функционального программирования в разработке игр .................................................... 13
1.4. Поиск вариантов решения или обхода проблем ....................... 14
Глава 2. Теоретический раздел .............................................................. 16
2.1. Паттерн заполнения ................................................................... 16
2.2. Паттерн привязки клавиш ......................................................... 17
2.3. Паттерн непрерывного процесса ............................................... 19
2.4. Паттерн выборочного агрегирования ...................................... 20
Глава 3. Технический раздел ................................................................... 22
3.1. Главный командный файл .......................................................... 24
3.2. Паттерн заполнения ................................................................... 25
3.3. Паттерн привязки клавиш .......................................................... 26
3.4. Паттерн непрерывного процесса ................................................ 27
3.5. Паттерн выборочного агрегирования ....................................... 28
3.6. Оптимизация ............................................................................... 30
Заключение ............................................................................................. 31
Список используемых источников ......................................................... 32
Глоссарий ................................................................................................ 34
Приложение............................................................................................. 36
Приложение А. Код работы расширения ......................................... 36
А.1 Код запуска расширения .......................................................... 36
А.2 Код сопоставления выделенной области ................................ 36
Приложение Б. Классы преобразования паттернов ......................... 38
Б.1 Паттерн заполнения.................................................................... 38
Б.2 Паттерн привязки клавиш ........................................................ 39
Б.3 Паттерн непрерывного процесса ............................................. 40
Б.4 Паттерн выборочного агрегирования ..................................... 40
1. Top 25 Coding Languages for Games in 2022 // pinglestudio - 02.02.2022 - URL: https://pinglestudio.com/blog/industry - news/top - 25 - coding - languages - for - games - in - 2022 (дата обращения: 17.02.2024).
2. Емельянов Д.А. Освоение принципов объектно - ориентированного программирования в ходе разработки игровых программ // Педагогическое образование в России. 2016. №7.
3. The Future of Game Development in 2022 // markuptrend - 11.03.2021 - URL: https://www.markuptrend.com/future - of - game - development/ (дата обращения: 15.03.2024).
4. Гибадуллин А.А. Разработка интеллектуальных компьютерных игр в обучении программированию // Сборник научных трудов. Том Выпуск 17. - Нижневартовск: Нижневартовский государственный
университет, 2020
5. GameDev с нуля: Как выйти из хаоса и начать работать // habr - 12.05.2017 - URL: https://habr.com/ru/companies/microsoft/articles/328510/ (дата обращения: 17.02.2024).
6. DeLoura M. Game Programming Gems. - 6 ed. - 2018. - 603 p.
7. View the structure of code by using different tool windows // Microsoft - cloud technologies, applications and games - 10.03.2023 - URL:
https://learn. microsoft.com/en - gb/visualstudio/ide/viewing - the - structure - of - code?view=vs - 2022 (дата обращения: 24.02.2024).
8. Функциональное программирование: структура и интерпретация. Часть I // Хакер - 15.05.2015 - URL: https://xakep.ru/2015/05/15/func - coding - part - 1/ (дата обращения: 24.02.2024).
9. Что такое парадигмы программирования и зачем они нужны // Яндекс Практикум - 18.01.2023 - URL:
https://practicum.yandex.ru/blog/paradigmy - programmirovaniya/ (дата обращения: 24.02.2024).
10. Gregory J. Game Engine Architecture. - 3 ed. - Wellesley,
Massachusetts: A K Peters, Ltd, 2018. - 830 p.
11. Millington I. AI for Games. - 3 ed. - Boca Raton: CRC Press, 2019. - 1030 p.
12. Fields T. Game Development 2042 The Future of Game Design, Development, and Publishing. - 1 ed. - Boca Raton: CRC Press, 2022. - 336 p.
13. Вознюк А. Продолжения в практике // Практика функционального программирования. - 2011. - №7
14. Найстром Р. Шаблоны игрового программирования. - 1 изд. -
2016. - 389 с.
15. Thread Stack Size // Microsoft - cloud technologies, applications and games - 01.07.2021 - URL: https://learn.microsoft.com/en -
us/windows/win32/procthread/thread - stack - size (дата обращения: 02.04.2024).