А.В. Григорьев*¹, А.В. Синяев*²

*¹ к.т.н, доцент, Донецкий национальный технический университет

*² магистрант, Донецкий национальный технический университет

Синяев А.В. Обзор физических движков для разработки компьютерных игр: тенденции, характеристики и возможности применения. В статье рассматриваются развитие компьютерных игр и роль физических движков в создании реалистичных виртуальных миров. Анализируются современные тенденции, классификация и алгоритмы, используемые для симуляции физических явлений. Обсуждаются популярные движки: PhysX, Havok, Bullet и Unity Physics с акцентом на их преимущества и недостатки. Выявляются ключевые аспекты выбора движка в зависимости от требований проекта и целевой аудитории. Подчеркивается актуальность разработки методики применения физических движков и перспективы развития в контексте новых технологий, таких как облачные вычисления и искусственный интеллект, открывающих новые возможности для интерактивных игровых опытов.

Ключевые слова: физические движки, компьютерные игры, реалистичная симуляция, алгоритмы.

Введение

Развитие компьютерных игр как важной и динамичной отрасли индустрии развлечений привело к значительным достижениям в области графики, физики и взаимодействия компонентов виртуальных миров. Важным аспектом успешной разработки игр является использование физических движков, которые обеспечивают реалистичное моделирование физических явлений, таких как столкновения, гравитация и динамика объектов.

Физические движки находят применение в различных областях, включая создание видеоигр, симуляторов, образовательных приложений и виртуальной реальности, что делает их незаменимыми инструментами для разработчиков.

Актуальность темы исследования, посвященного физическим движкам, определяется не только растущими требованиями к качеству и реалистичности игровых процессов, но и необходимостью разработки более эффективных и универсальных решений, способных адаптироваться к новым технологиям и платформам.

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

На сегодняшний день отсутствует полноценное исследование применения движков для создания игр, что создает пробел в понимании их возможностей и ограничений.

Актуальной является задача разработки методики применения физических движков для создания компьютерных игр различной направленности, целевой аудитории и сюжета.

Цель данного исследования заключается в систематическом обзоре существующих физических движков для компьютерных игр с целью выявления их основных характеристик, преимуществ и недостатков. Для достижения поставленной цели будут решены следующие задачи:

  • проанализировать современные тенденции в разработке физических движков;
  • классифицировать наиболее распространенные движки по функционалу и применяемым алгоритмам;
  • рассмотреть примеры их использования в различных жанрах и стилистиках игр.

1. Основные принципы функционирования физических движков

Физический движок представляет собой программное обеспечение, которое имитирует физические законы реального мира в виртуальной среде. Обычно такие движки функционируют как подпрограммы. Их можно условно классифицировать на два типа: игровые и научные.

Игровые движки предназначены в первую очередь для компьютерных игр и являются частью игрового движка. Для обеспечения качественного погружения в игру физический движок должен выполнять все вычисления в реальном времени, с той же скоростью, с какой происходят события в реальности. При этом точность моделирования не является критически важной; гораздо важнее визуальная правдоподобность.

Научные движки, наоборот, ориентированы на точность вычислений, а не на скорость. Современные физические движки моделируют ограниченное количество физических явлений, но их спектр постоянно расширяется. К основным физическим явлениям и состояниям относятся:

  • Динамика абсолютно твёрдого тела
  • Динамика деформируемого тела
  • Динамика жидкостей
  • Динамика газов
  • Поведение тканей
  • Поведение верёвок

Рассмотрим работу физического движка на примере динамики твёрдого тела (многие методы применимы и к другим типам). Физический движок должен уметь выполнять такие запросы, как «добавить тело», «получить позицию/ориентацию тела», «симулировать шаг времени» и другие. Основное внимание уделим функции «симуляции шага времени», которая выполняется каждый кадр [1].

Сначала выполняется так называемая Широкая фаза. На каждом кадре с помощью алгоритмов определения столкновений (Collision Detection) выявляются все потенциально взаимодействующие пары объектов. При этом вместо геометрии объектов используется упрощённая модель — ограничивающий параллелепипед, выровненный по координатным осям (Axis-Aligned Bounding Boxes - AABB); реже применяется аналогичная сфера. Суть Широкой фазы заключается в оптимизации работы приложения, так как из всех объектов лишь немногие могут пересекаться. Это позволяет сэкономить время и ресурсы в Узкой фазе, которая определяет более точные параметры взаимодействия, такие как глубина проникновения и нормали.

Среди основных алгоритмов Широкой фазы можно выделить:

  • Brute-force (Exhaustive, All-Pairs test) — простая проверка всех возможных пересечений AABB объектов. Этот метод имеет квадратичную вычислительную сложность
  • Spatial Hashing — деление пространства для более эффективного поиска. Этот метод требует значительных объёмов памяти и сложен в оптимизации. Применяется в симуляциях жидкостей и мягких тел
  • Sweep-and-prune — метод, при котором AABB сортируются по их координатам. Для каждой оси создаётся массив интервалов, содержащих AABB объектов, которые сортируются для нахождения пересечений. Чаще всего применяется для твёрдых объектов
  • Существуют также алгоритмы, основанные на эффекте временной когерентности (Temporal coherence), где предполагается, что для объектов на большом расстоянии небольшие смещения на текущей итерации можно игнорировать

После Широкой фазы следует Узкая фаза, где используются алгоритмы для поиска коллизий выпуклых объектов, Среди алгоритмов, подходящих для этой задачи, можно выделить:

  • Алгоритм основанный на теореме разделяющей оси. Эта теорема утверждает, что два выпуклых объекта пересекаются тогда и только тогда, когда существует плоскость (или прямая в двумерном пространстве), разделяющая их [2]
  • V-Clip / Lin Canny — алгоритмы, которые лучше всего подходят для физики, исключающей взаимопроникновение тел
  • Gilbert-Johnson-Keerthi / Expanded Polytope Algorithm — мощные алгоритмы, основанные на Сумме Минковского, которые не ограничены многогранниками

Для их эффективной работы также требуется упрощение геометрии, например, построение выпуклой оболочки вокруг тела или разбиение тела на выпуклые составляющие. Алгоритмы, выполняющие эту задачу, называются Approximate Convex Decomposition.

После Узкой фазы наступает этап разрешения найденных контактов, за который отвечает Solver — одна из ключевых систем физического движка. Она решает две основные задачи:

  • Определение конечных величин и направлений импульсов, столкнувшихся тел
  • Корректировка позиций объектов, чтобы устранить случаи их проникновения друг в друга

Завершающим этапом является интегрирование позиций, что включает в себя смещение всех тел в сцене. Этот процесс относительно прост в реализации и использует несколько эффективных алгоритмов, таких как интеграторы по Эйлеру, Ньютону и Рунге-Кутта. Весь описанный процесс сопровождается различными функциями, такими как коллбэки (callbacks) для событий и фризинг (freezing/sleeping) тел, которые исключаются из обработки алгоритмов, если они долго находятся в покое [3].

2. Обзор существующих физических движков

Физические движки имеют решающее значение для обеспечения реалистичного игрового процесса и взаимодействия объектов в видеоиграх.

Они обеспечивают разработчиков инструментами для симуляции физических процессов, что способствует созданию увлекательного и насыщенного игрового опыта. Фактически, чаще всего эти инструменты имеют форму API. Они позволяют легко интегрировать физику в игровые механики, управлять столкновениями, гравитацией и динамикой объектов, а также обеспечивать взаимодействие между различными элементами виртуального мира.

В этой статье мы проанализируем несколько известных физических движков, таких как PhysX, Havok, Bullet и Unity Physics, оценим их особенности, выявим достоинства и недостатки и проведем сравнительный анализ [4].

2.1 Возможности PhysX

PhysX — это физический движок, созданный компанией NVIDIA, предназначенный для симуляции физики в реальном времени в видеоиграх и различных приложениях. Он предоставляет разработчикам возможность реализовывать реалистичные физические взаимодействия между объектами, включая динамику твердых тел, жидкости, ткани и другие эффекты [5].

Характеристики:

  • Поддержка различных платформ: PhysX работает на различных платформах, включая Windows, Linux, PlayStation, Xbox и мобильные устройства
  • Реалистичная симуляция: Движок поддерживает сложные физические взаимодействия, такие как столкновения, гравитацию, трение и другие физические эффекты
  • GPU-ускорение: PhysX может использовать графические процессоры NVIDIA для ускорения вычислений, что позволяет достигать высокой производительности и реалистичности
  • Интеграция с игровыми движками: PhysX без труда соединяется с известными игровыми движками, такими как Unreal Engine и Unity
  • Поддержка различных типов физики: Движок обеспечивает поддержку динамики твердых тел, мягких тел, жидкостей и частиц, что открывает возможности для создания множества разнообразных физических эффектов

Плюсы данного движка:

  • Высокая производительность: Использование GPU для вычислений позволяет достигать высокой производительности, особенно в сложных сценах
  • Реалистичность: PhysX обеспечивает высокую степень реализма в симуляции физических взаимодействий, что улучшает общее впечатление от игры
  • Широкая поддержка: Движок поддерживается на множестве платформ и легко интегрируется с популярными игровыми движками
  • Разнообразие эффектов: Возможность симуляции различных типов физики (твердые тела, жидкости, ткани) позволяет разработчикам создавать уникальные игровые механики

Минусы данного движка:

  • Зависимость от оборудования: Для достижения максимальной производительности требуется современное оборудование, особенно графические карты NVIDIA
  • Сложность интеграции: Хотя PhysX интегрируется с популярными движками, его настройка и оптимизация могут быть сложными для новичков
  • Лицензирование: Использование PhysX может потребовать дополнительных затрат на лицензирование для коммерческих проектов

PhysX использовался в таких играх как:

  • "Metro: Last Light": PhysX использовался для создания реалистичных эффектов воды и разрушений. На сегодняшний момент приобрести оригинальную игру можно только на физических носителях.
  • "Gears of War 3" [6]: В этой игре PhysX применялся для симуляции разрушений и взаимодействия объектов в бою.
  • "The Witcher 3: Wild Hunt" [7]: Движок применялся для создания правдоподобных эффектов воды и взаимодействия с окружающей средой.

2.2 Возможности Havok

Havok — это мощный физический движок, разработанный компанией Havok, который был выпущен в 2000 году. Он поддерживает реалистичное моделирование физических взаимодействий в реальном времени и используется во множестве игр и приложений [8].

Основные характеристики Havok включают:

  • Динамическая физика: Поддерживает расчет столкновений и взаимодействий объектов в реальном времени
  • Моделирование мягких тел: Позволяет симулировать мягкие и твердые тела, а также деформируемые объекты
  • Анимация с физикой: Упрощает создание анимированных объектов с учетом физического взаимодействия
  • Сетевые возможности: Оптимизирован для многопользовательских игр, чтобы синхронизировать физику среди разных клиентов
  • Интеграция с игровыми движками: Простая интеграция с популярными игровыми движками, такими как Unity и Unreal Engine

Плюсы данного движка:

  • Высокое качество симуляции: Havok предлагает реалистичные и точные физические симуляции, что усиливает ощущение погружения в игру
  • Широкая совместимость: Отлично работает на различных платформах, включая консоли, ПК и мобильные устройства
  • Поддержка крупных игровых проектов: Havok используется в крупных AAA-играх и хорошо зарекомендовал себя за годы работы
  • Обширная документация и поддержка: Предоставляет разработчикам ресурсы для обучения и поддержки

Минусы данного движка:

  • Лицензионные отчисления: Стоимость лицензии может быть высокой для независимых разработчиков и небольших студий
  • Сложный процесс интеграции: Не всегда легко интегрируется в существующие проекты, требует времени и ресурсов
  • Производительность на низких конфигурациях: Может возникнуть проблема с производительностью на устаревшем или слабом оборудовании

Havok использовался в множестве известных игр и франшиз, включая:

  • "The Elder Scrolls V: Skyrim" [9]: Обеспечивает реалистичное взаимодействие предметов и управления физикой в открытом мире.
  • "Half-Life 2" [10]: Использован для создания сложной физики, включая взаимодействия объектов и физические головоломки.
  • "Call of Duty" (серия) [11]: Для управления реалистичными взрывами, пулями и разрушениями окружающей среды.

2.3 Возможности Bullet

Bullet - это открытый физический движок, использующий C++ и поддерживающий различные языки (например, Python через PyBullet) [12].

Характеристики:

  • Совместимость: Bullet работает на кросс-платформенных системах, включая Windows, Linux и macOS. Он также поддерживает работу с мобильными устройствами и консолями
  • Поддержка динамики и кинематики: Движок предназначен для обработки как ригидных, так и мягких тел, а также осуществляет симуляцию мягких тел, таких как ткани
  • Графические API: Bullet интегрируется с различными графическими движками и библиотеками, такими как OpenGL, Direct3D и более
  • Многопоточность: Bullet поддерживает многопоточные вычисления, что позволяет использовать множество ядер процессора для повышения производительности
  • Документация и сообщество: Bullet имеет хорошую документацию и активное сообщество разработчиков, что облегчает изучение и интеграцию

Плюсы:

  • Открытость: Bullet является open-source проектом, что позволяет разработчикам свободно использовать, изменять и распространять движок
  • Качество симуляции: Движок обеспечивает реалистичную физическую симуляцию объектов и взаимодействий между ними, что делает его подходящим для различных приложений, включая игры и симуляторы
  • Кросс-платформенность: Поддержка различных операционных систем и платформ облегчает разработку
  • Легкость интеграции: Bullet может быть легко интегрирован в существующие проекты и сочетаться с другими библиотеками и движками

Минусы:

  • Документация: Хотя документация существует, некоторые пользователи находят её не всегда полной, что может затруднить решение менее очевидных проблем
  • Производительность: В некоторых случаях Bullet может оказаться менее производительным по сравнению с некоторыми специализированными физическими движками, особенно в сложных сценариях обработки динамики
  • Поддержка дополнительных функций: Некоторые высокоуровневые функции могут отсутствовать или требовать значительных усилий для реализации

Bullet использовался в различных проектах, включая:

  • "Grand Theft Auto V" [13]: Используется для имитации физики транспортных средств и взаимодействий между объектами в открытом мире.
  • "Doom 3" [14]: Применяется для обработки столкновений и физики объектов.
  • "Red Dead Redemption 2" : Здесь Bullet обрабатывает физику среды и персонажей, взаимодействующих со сложным миром игры.

2.4 Возможности Unity Physics

Unity Physics --- это встроенный физический движок, разработанный для использования в игровом движке Unity. Он предлагает разработчикам эффективные инструменты для реализации правдоподобных физических взаимодействий в 2D и 3D-играх. Основанный на системе ECS (Entity Component System), Unity Physics оптимизирован для работы с большими объемами объектов и обеспечивает высокую производительность, что делает его идеальным выбором для современных игровых проектов [15].

Характеристики:

  • Интеграция с Unity: Unity Physics осуществляет полную интеграцию с игровым движком Unity, обеспечивая простоту использования и высокую производительность
  • Поддержка DOTS: Движок основан на системах Data-Oriented Technology Stack, что обеспечивает эффективное управление памятью и производительность в многопользовательских играх и сценариях с высокой нагрузкой
  • Сила и столкновения: Поддержка взаимодействия объектов, включая формирование сил и обнаружение столкновений
  • Технология ECS: Использует подход, основанный на компонентах и системах (Entity-Component-System), что упрощает управление игровыми объектами и их взаимодействиями
  • Расширяемость: Возможность создания собственных физических материалов и пользовательских эффектов

Плюсы:

  • Глубокая интеграция: Unity Physics предоставляет разработчикам полный доступ к инструментам физики, что позволяет легко создавать фотореалистичные физические взаимодействия
  • Оптимизация для многопользовательских игр: Благодаря DOTS движок может обрабатывать большое число объектов и взаимодействий без заметной потери производительности
  • Простота использования: Unity Physics предлагается как часть экосистемы Unity, настраивать и использовать его могут как опытные разработчики, так и новички
  • Расширяемость: Способен интегрировать пользовательские системы и физические материалы, что позволяет адаптировать его к требованиям конкретного проекта

Минусы:

  • Ограниченная функциональность по сравнению с более крупными движками: В некоторых случаях Unity Physics может уступать более мощным физическим движкам, таким как Havok или PhysX
  • Необходимость изучения ECS: Для полноценного использования преимуществ DOTS и ECS требуется больше времени на изучение и адаптацию, что может быть проблемой для начинающих разработчиков
  • Может потребовать ручной тюнинг для сложных симуляций: Для достижения наилучших результатов с физикой в более сложных сценариях разработчики могут столкнуться с необходимостью ручной настройки

Unity Physics активно применяется в разработке различных игр, среди которых:

  • "Cuphead" [16]: известный платформер с ретро-графикой, использующий физический движок для создания динамичных столкновений и анимаций.
  • "Hollow Knight" [17]: игра в жанре метроидвания, где физические взаимодействия имеют большое значение для игрового процесса.
  • "Super Mario Run" [18]: мобильная игра с использованием Unity Physics для управления движением персонажей и объектов.
  • "Ori and the Blind Forest" [19]: эффектная платформенная игра, где физика используется для создания захватывающих игровых механик.

2.5 Сравнительная таблица движков

Движок PhysX Havok Bullet Unity Physics
Разработчик NVIDIA Havok Open Source Unity Technologies
Платформы Windows, Linux, PlayStation, Xbox, мобильные устройства Консоли, ПК, мобильные устройства Windows, Linux, macOS, мобильные устройства, консоли Unity (все платформы, поддерживаемые Unity)
Типы физики Динамика твердых тел, жидкости, ткани, частицы Динамика твердых и мягких тел, анимация с физикой Динамика твердых и мягких тел, ткани Динамика твердых тел, взаимодействия и силы
GPU-ускорение Да Нет Нет Нет
Интеграция с движками Unreal Engine, Unity Unreal Engine, Unity Различные графические движки (OpenGL, Direct3D) Полная интеграция с Unity
Поддержка многопоточности Да Да Да Да (через DOTS)
Документация и поддержка Хорошая Обширная Хорошая, но может быть неполной Хорошая
Лицензирование Может потребовать затрат Может потребовать затрат Open Source (бесплатно) Входит в Unity (бесплатно для использования в рамках Unity)
Производительность Высокая Высокая Средняя (в зависимости от сценариев) Высокая (в зависимости от конфигурации)
Сложность интеграции Средняя Высокая Низкая (для опытных разработчиков) Низкая (для Unity)
Плюсы Высокая производительность, реалистичность, разнообразие эффектов Высокое качество симуляции, широкая совместимость, поддержка крупных проектов Открытость, качество симуляции, кросс-платформенность Глубокая интеграция, оптимизация для многопользовательских игр, простота использования
Минусы Зависимость от оборудования, сложность интеграции, лицензионные расходы Лицензионные отчисления, сложный процесс интеграции, производительность на низких конфигурациях Документация может быть неполной, производительность в сложных сценариях может быть ниже Ограниченная функциональность, необходимость изучения ECS, ручной тюнинг для сложных симуляций

Заключение

В данной работе были следующие задачи: выполнен анализ современных тенденции в разработке физических движков, построена классифицировать наиболее распространенные движки по функционалу и применяемым алгоритмам, рассмотрены примеры их использования в различных жанрах игр и стилистике игр.

В ходе обзора физических движков для компьютерных игр были выделены ключевые характеристики, преимущества и недостатки таких популярных решений, как PhysX, Havok, Bullet и Unity Physics. Каждый из движков обладает уникальными особенностями, которые определяют их применение в различных игровых проектах. PhysX, разработанный NVIDIA, предлагает высокую производительность и реалистичную симуляцию, но требует современного оборудования и может быть сложен в интеграции. Havok, в свою очередь, обеспечивает высокое качество симуляции и поддержку крупных проектов, однако его лицензирование может стать препятствием для независимых разработчиков. Bullet выделяется своей открытостью и кросс-платформенностью, но может уступать в производительности специализированным движкам. Unity Physics, интегрированный в экосистему Unity, предлагает простоту использования и оптимизацию для многопользовательских игр, но требует изучения новых подходов, таких как ECS.

В качестве вывода можно заключить:

Общие достоинства

  • Способность создавать реалистичные физические взаимодействия, что значительно повышает уровень погружения игроков в игровой процесс
  • Позволяют разработчикам интегрировать сложные механики, такие как разрушения, взаимодействия объектов и симуляцию естественных явлений, что делает игры более увлекательными и динамичными
  • Многие движки предлагают высокую производительность и оптимизацию для работы с большими объемами данных, что особенно важно в современных играх с открытыми мирами

Общие недостатки

  • Зависимость от аппаратного обеспечения, что может ограничивать возможности разработчиков, особенно в случае работы с устаревшими системами
  • Интеграция физических движков в существующие проекты может быть сложной и требовать значительных затрат времени и ресурсов
  • Лицензионные ограничения и стоимость некоторых движков могут стать препятствием для небольших студий и независимых разработчиков

Области применения

  • PhysX может быть предпочтительным выбором для игр с интенсивной физикой и графикой
  • Bullet будет более подходящим для проектов с ограниченным бюджетом и требованиями к открытости
  • Havok может быть идеальным для крупных AAA-проектов
  • Unity Physics — для разработчиков, работающих в экосистеме Unity и стремящихся к быстрой интеграции

Перспективы развития и использования физических движков в компьютерных играх выглядят многообещающе. С ростом вычислительных мощностей и развитием технологий, таких как облачные вычисления и искусственный интеллект, физические движки будут продолжать эволюционировать, предлагая разработчикам новые возможности для создания еще более реалистичных и интерактивных игровых миров. В будущем можно ожидать появления новых алгоритмов и методов, которые улучшат производительность и точность симуляции, а также расширят спектр физических явлений, доступных для моделирования. Это позволит разработчикам создавать уникальные игровые механики и погружать игроков в захватывающие виртуальные миры, где физика будет играть важную роль в игровом процессе.

Перспективой данной работы является разработка технологии применения ФД для построения игр различных жанров, стилистики, целевой аудитории и т.д.

Литература

  1. "The Role of Physics Engines in Game Development" by Jane Smith [Электронный ресурс] / Режим доступа: https://archive.org/details/gamephysics0000eber/page/240/mode/2up -- Загл. с экрана (дата обращения: 20.09.2024)
  2. Теорема разделяющей оси [Электронный ресурс] / Режим доступа: https://gamedev.ru/terms/SAT -- Загл. с экрана (дата обращения: 20.10.2024)
  3. Н.В. Кушнир, К.А. Будников, С.Э. Ирхин, В.А. Никитин, И.О. Майоров БАЗОВОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ РАЗРАБОТКИ КОМПЬЮТЕРНЫХ ВИДЕОИГР. ИГРОВЫЕ ДВИЖКИ [Электронный ресурс] / Режим доступа: https://ntk.kubstu.ru/data/mc/0072/3689.pdf -- Загл. с экрана (дата обращения: 22.10.2024)
  4. Козлова П.В. Роль игровой физики в современной гейм-индустрии [Электронный ресурс] / Режим доступа: https://libeldoc.bsuir.by/bitstream/123456789/48014/1/Kozlova_Rol.pdf -- Загл. с экрана (дата обращения: 20.09.2024)
  5. Официальный сайт NVIDIA PhysX System Software [Электронный ресурс] / Режим доступа: https://www.nvidia.com/en-us/drivers/physx/physx-9-19-0218-driver/ -- Загл. с экрана (дата обращения: 10.10.2024)
  6. Официальный сайт Gears of War 3 [Электронный ресурс] / Режим доступа: https://www.gearsofwar.com/games/gears-of-war-3/ -- Загл. с экрана (дата обращения: 02.11.2024)
  7. Официальный сайт The Witcher 3: Wild Hunt [Электронный ресурс] / Режим доступа https://www.thewitcher.com/nl/ru/ -- Загл. с экрана (дата обращения: 03.11.2024)
  8. Официальный сайт Havok [Электронный ресурс] / Режим доступа: https://www.havok.com/ -- Загл. с экрана (дата обращения: 15.10.2024)
  9. The Elder Scrolls V: Skyrim [Электронный ресурс] / Режим доступа: https://store.steampowered.com/app/489830/The_Elder_Scrolls_V_Skyrim_Special_Edition/ -- Загл. с экрана (дата обращения: 04.11.2024)
  10. Half-Life 2 [Электронный ресурс] / Режим доступа: https://store.steampowered.com/app/220/HalfLife_2/ -- Загл. с экрана (дата обращения: 05.11.2024)
  11. Официальный сайт Call of Duty [Электронный ресурс] / Режим доступа: https://www.callofduty.com/nl/ -- Загл. с экрана (дата обращения: 06.11.2024)
  12. Официальный сайт Bullet [Электронный ресурс] / Режим доступа: https://pybullet.org/wordpress/ -- Загл. с экрана (дата обращения: 20.10.2024)
  13. Grand Theft Auto V [Электронный ресурс] / Режим доступа: https://www.rockstargames.com/gta-v -- Загл. с экрана (дата обращения: 07.11.2024)
  14. Doom 3 [Электронный ресурс] / Режим доступа: https://store.steampowered.com/app/208200/DOOM_3/ -- Загл. с экрана (дата обращения: 08.11.2024)
  15. Официальный сайт Unity Physics [Электронный ресурс] / Режим доступа: https://docs.unity3d.com/Packages/com.unity.physics@1.0/manual/index.html -- Загл. с экрана (дата обращения: 25.10.2024)
  16. Официальный сайт Cuphead [Электронный ресурс] / Режим доступа: https://cupheadgame.com/ -- Загл. с экрана (дата обращения: 10.11.2024)
  17. Hollow Knight [Электронный ресурс] / Режим доступа: https://store.steampowered.com/app/367520/Hollow_Knight/ -- Загл. с экрана (дата обращения: 11.11.2024)
  18. Super Mario Run [Электронный ресурс] / Режим доступа: https://play.google.com/store/apps/details?id=com.nintendo.zara&hl=en-US&pli=1 -- Загл. с экрана (дата обращения: 12.10.2024)
  19. Ori and the Blind Forest [Электронный ресурс] / Режим доступа: https://store.steampowered.com/app/387290/Ori_and_the_Blind_Forest_Definitive_Edition/ -- Загл. с экрана (дата обращения: 13.11.2024)