Panda3D - Panda3D
Логотип для Panda3D. | |
Разработчики) | Disney Interactive до 2010 г., Уолт Дисней Imagineering, Университет Карнеги Меллон |
---|---|
изначальный выпуск | 2002 |
Стабильный выпуск | 1.10.7 / 17 сентября 2020 г. |
Репозиторий | |
Написано в | C ++, C, Python |
Операционная система | Майкрософт Виндоус, Linux, macOS, FreeBSD |
Тип | Игровой движок |
Лицензия | Пересмотренный BSD (Лицензия Panda3D для версий до 28 мая 2008 г.) |
Интернет сайт | www |
Panda3D это игровой движок включая графику, звук, ввод / вывод, обнаружение столкновения и другие возможности, относящиеся к созданию 3D-игр.[1] Panda3D - бесплатное программное обеспечение под пересмотренной Лицензия BSD.
Язык разработки игр Panda3D: Python. Сам движок написан на C ++, и использует автоматический генератор-оболочку, чтобы предоставить полную функциональность движка в интерфейсе Python. Этот подход дает разработчику преимущества разработки Python, такие как быстрая разработка и расширенное управление памятью, но сохраняет производительность скомпилированного языка в ядре движка. Например, движок интегрирован со сборщиком мусора Python, и структурами движка управляют автоматически.
В руководстве и примерах программ используется Python, хотя разработчики работают над переводом руководства на C ++ и предоставлением примеров программ на C ++. Разработчик, использующий Panda3D, обычно пишет код на Python, но также возможен прямой доступ к движку с помощью кода C ++.
Пользователи Panda3D включают разработчиков нескольких крупных коммерческих игр, нескольких проектов с открытым исходным кодом и ряда университетских курсов, в которых используется короткая кривая обучения Panda3D. Сообщество небольшое, но активное, и вопросы по форум обычно отвечают быстро.
История
Студия Disney VR - это филиал Disney, созданный для создания 3D-аттракционов для тематических парков Disney. Они построили аттракцион под названием «Волшебный ковер Аладдина», а движком, который они создали, в конечном итоге стал Panda3D. Двигатель в его нынешнем виде мало похож на те ранние годы. Со временем Panda3D использовался для дополнительных VR-аттракционов в тематических парках Диснея, и в конечном итоге был использован при создании Toontown Интернет, онлайн-игра, действие которой происходит в мультяшном мире, а позже во второй MMORPG, Пираты Карибского моря онлайн.[2]
В 2002 году движок был выпущен с открытым исходным кодом. По словам авторов, это было сделано для того, чтобы им «было легче работать с университетами над исследовательскими проектами виртуальной реальности».[3] Однако потребовалось некоторое время, чтобы Panda3D стала проектом с открытым исходным кодом. Из статьи:
Система, хотя ее вполне могла использовать разработавшая ее команда, не была полностью «готова к открытому исходному коду». Было несколько заинтересованных пользователей, но сборка и установка системы были невероятно сложными, а документации или примеров кода было мало, поэтому сразу не было значительного сообщества разработчиков ПО.
Тем не менее, открытый исходный код двигателя позволил Центру развлекательных технологий Карнеги-Меллона принять участие в его разработке. В то время как инженеры Disney продолжали выполнять основную часть разработки, команда Carnegie-Mellon создала для себя роль, оттачивая движок для публичного использования, написав документацию и добавив некоторые высокотехнологичные функции, такие как шейдеры.
Название Panda3D когда-то было аббревиатурой: «Сетевая архитектура дисплея, не зависящая от платформы».[4] Однако, поскольку эта фраза в значительной степени утратила свое значение, слово «Panda3D» уже редко считается аббревиатурой.
Дизайн
Panda3D - это граф сцены двигатель.[5] Это означает, что виртуальный мир изначально пустой Декартово пространство, в которое игровой программист вставляет 3D-модели. Panda3D не делает различий между «большими» 3D-моделями, такими как модель целого подземелья или острова, и «маленькими» 3D-моделями, такими как модель стола или меча. И большие, и маленькие модели создаются с использованием стандартной программы моделирования, такой как Блендер, 3ds Max, или же майя. Затем модели загружаются в Panda3D и вставляются в декартово пространство.
Граф сцены Panda3D раскрывает функциональность OpenGL и DirectX в довольно буквальной форме. Например, OpenGL и DirectX имеют туман возможности. Чтобы включить туман в Panda3D, нужно просто сохранить параметры тумана в узле графа сцены. Параметры тумана точно соответствуют параметрам эквивалентных вызовов в базовых API. Таким образом, Panda3D можно рассматривать как тонкую оболочку API нижнего уровня. Он отличается от них тем, что хранит сцену, а OpenGL и DirectX - нет. Конечно, он также предоставляет операторы более высокого уровня, такие как загрузка моделей, выполнение анимации, обнаружение коллизий и тому подобное.
Panda3D был спроектирован до появления вершинных и пиксельных шейдеров. В 2005 году он получил поддержку шейдеров, написанных вручную. Однако пользователи не спешили использовать современные методы попиксельного освещения в своих играх. Разработчики предполагают, что это связано с тем, что программирование шейдеров может быть довольно сложным, и что многие разработчики игр хотят, чтобы движок обрабатывал это автоматически.[нужна цитата ]
Чтобы исправить эту ситуацию, разработчики Panda3D недавно предоставили Panda3D возможность автоматически синтезировать шейдеры. Этот синтез происходит, если разработчик 3D-моделирования отмечает модель для попиксельного освещения или если разработчик модели применяет карту нормалей, карту блеска, карту самосвета или другие возможности, которые превышают возможности конвейера с фиксированными функциями.[6]Цель синтеза состоит в том, чтобы визуализировать модель, как задумано разработчиком модели, без какого-либо вмешательства со стороны программиста.
Неграфические возможности
Panda3D предоставляет возможности, отличные от 3D-рендеринга. Главные из них:[7]
- Инструменты анализа производительности
- Инструменты исследования графа сцены
- Инструменты отладки
- Полный конвейер экспорта / импорта произведений искусства
- 3D Audio, используя либо FMOD, OpenAL или же Звуковая система Майлза
- Обнаружение столкновений
- Физическая система и полная интеграция для Open Dynamics Engine и интеграция Bullet
- Поддержка клавиатуры и мыши
- Поддержка устройств ввода-вывода
- Конечные автоматы
- GUI
- Сети
- Искусственный интеллект
Лицензия на программное обеспечение
Резюме
Panda3D является открытым исходным кодом и по состоянию на 28 мая 2008 г. является бесплатным программным обеспечением в соответствии с пересмотренной Лицензия BSD. Релизы до этой даты не рассматриваются. бесплатно программное обеспечение из-за определенных ошибок в дизайне старой лицензии Panda3D. Несмотря на это, эти старые версии Panda3D также можно использовать как для бесплатной, так и для коммерческой разработки игр без каких-либо финансовых затрат.
Эволюция
В 2002 году, когда движок был открыт с открытым исходным кодом, целью разработчиков было создание лицензия на бесплатное программное обеспечение. Однако у лицензии было несколько недостатков, которые делали ее несвободной: возможно, она требовала отправки изменений на [email protected],[8] и он прямо запрещал экспорт программного обеспечения в различные страны, против которых Соединенные Штаты наложили торговое эмбарго.[9]
28 мая 2008 года магистраль разработки Panda3D перешла на Лицензия BSD. Однако в старых выпусках по-прежнему используется старая лицензия.[10]
Panda3D использует несколько сторонних библиотек, лицензии которых не бесплатно программное обеспечение, включая FMOD, Nvidia Cg, DirectX, и MFC. Однако большинство этих модулей можно легко исключить из установки.
Проекты с использованием Panda3D
- Toontown Интернет (несуществующие) и их частные серверы
- Пираты Карибского моря онлайн (несуществующие) и их частные серверы
- Призрачные пираты острова Вуджу
- История вампира
Смотрите также
Рекомендации
- ^ "Руководство по Panda3D".
- ^ "Посмертное: Мультяшный город Disney Online". www.gamasutra.com. Получено 11 октября, 2020.
- ^ «Труды, PyCon 2004: The Panda3D Engine - Python Scripting for Game and Simulation Development». Архивировано из оригинал 17 августа 2005 г.
- ^ "Репортаж GameDev.net о конференции разработчиков игр, Остин, 2008 г.". Архивировано из оригинал 28 сентября 2008 г.
- ^ "Глава руководства Panda3D: 'Граф сцены'".
- ^ "Глава руководства Panda3D: 'Генератор шейдеров'".
- ^ «Особенности | Panda3D». www.panda3d.org. 16 августа 2018 г.. Получено 11 октября, 2020.
- ^ «Тема на форуме с юридическим комментарием Ричарда Столлмана о старой лицензии Panda3D».
- ^ «Полный текст оригинальной (до 1.5.3) лицензии Panda3D».
- ^ "Глава руководства Panda3D: 'Введение в Panda'".
внешняя ссылка
- Официальный веб-сайт
- Devmaster.net список Panda3D (очень устаревший)