Модераторы: Rickert
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Для чего и где применяются скриптовые движки? А также как реализовать в компилируемом  
V
    Опции темы
Gunslinger
Дата 6.6.2007, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 30.12.2006
Где: Астрахань

Репутация: нет
Всего: 3



Однажды прочитал статью, где была объяснена причина использования скриптовых движков в играх: игра готова, но заказчику (или кому другому из главных - не важно) не понравилось, например, поведение NPC, т.е. AI. Программисту приходится переписывать код и перекомпилировать всю игрушку. Но если реализовать AI скриптами, то перекомпилировать ничего не надо. Программист может прямо при заказчике переписать неудачное поведение - и все готово.
Спросил у знакомого программиста. Он сказал, что для того, чтобы получить подобную гибкость и уменьшение трудозатрат на переделку, поведение объекта (например, воина) отделяется от описания его внешнего вида (и др.), т.е. от данных. Для этого в игры встраивают скриптовые движки.
Это ситуация для игр.
Но меня интересует не сколько ситуация в играх, сколько в пакетах 3-d моделирования. Майя, 3дmax, Блендер и др. имеют свои скриптовые движки со своими языками.
1.Для чего применяются скрипты в пакетах моделирования? Программировать поведение(методы) объектов: сфера, куб, тор и т.д.? 
2. Есть набор примитивов. Какая их часть (что именно) остается реализованным на компилируемом языке (как бы "жесткий каркас"), а что реализовано на скриптах? Или каждый примитив - это всего лишь структура данных в памяти (динамические переменные), доступ к которым можно получить скриптами? В Майе, например, создал сферу, а затем, в командной строке, увеличил радиус и т.п. Или в Блендере - скриптом можно создать примитив и назначить ему значения: высоту, ширину и т.п.
3. Есть ли инфа, как скриптовый движок прикручивается к компилированному коду и как происходит взаимодействие скриптов со структурами данных? 
PM MAIL   Вверх
Rickert
Дата 7.6.2007, 07:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 6
Всего: 52



Цитата(Gunslinger @  6.6.2007,  17:41 Найти цитируемый пост)
1.Для чего применяются скрипты в пакетах моделирования? Программировать поведение(методы) объектов: сфера, куб, тор и т.д.? 

Не только поведение - всё программировать.
Цитата(Gunslinger @  6.6.2007,  17:41 Найти цитируемый пост)
2. Есть набор примитивов. Какая их часть (что именно) остается реализованным на компилируемом языке (как бы "жесткий каркас"), а что реализовано на скриптах? Или каждый примитив - это всего лишь структура данных в памяти (динамические переменные), доступ к которым можно получить скриптами? В Майе, например, создал сферу, а затем, в командной строке, увеличил радиус и т.п. Или в Блендере - скриптом можно создать примитив и назначить ему значения: высоту, ширину и т.п.

Изначально реализовывалась скриптовая система + API, а потом на их основе уже создавалось всё. Там нет никаких шаблонов.
Цитата(Gunslinger @  6.6.2007,  17:41 Найти цитируемый пост)
3. Есть ли инфа, как скриптовый движок прикручивается к компилированному коду и как происходит взаимодействие скриптов со структурами данных?  

Это тебе надо просто начать изучать скриптовые движки. Например lua


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
Gunslinger
Дата 7.6.2007, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 30.12.2006
Где: Астрахань

Репутация: нет
Всего: 3



Rickert, как это, все программировать? Начиная от меню и заканчивая примитивами? А что же остается для компиляции? (блендер в виду не имею, потомучто слышал, что он весь на питоне написан).
"Изначально реализовывалась скриптовая система + API". Но ведь апи к чему-то прикручена. К темже примитивам, наконец. Без апи к ним доступ не получишь.
И еще, для себя уточнить. АПИ - это набор функций, с помощью которых можно управлять объектом: высота, ширина, толщина, положение в пространстве, скорость движения и т.д. (т.е. записывать в переменные структуры данных свои значения)? Раздельная компиляция в с++: данные в отдельном файле, методы (API) - в другом. В разрезе скриптовых движков: данные в отдельном файле (на компилируемом языке), методы (API) - в другом (написаны на скриптах и скармливаются интерпритатору).

А питон дляизучения подойдет? 
PM MAIL   Вверх
Rickert
Дата 8.6.2007, 04:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 6
Всего: 52



Цитата(Gunslinger @  7.6.2007,  16:16 Найти цитируемый пост)
Rickert, как это, все программировать? Начиная от меню и заканчивая примитивами? А что же остается для компиляции? (блендер в виду не имею, потомучто слышал, что он весь на питоне написан).

Я ж тебе говорю: часть там на криптах, часть на api. То, что на api - то компилится.
Цитата(Gunslinger @  7.6.2007,  16:16 Найти цитируемый пост)
"Изначально реализовывалась скриптовая система + API". Но ведь апи к чему-то прикручена. К темже примитивам, наконец. Без апи к ним доступ не получишь.

mel скрипты рассматривай. Maya

Цитата(Gunslinger @  7.6.2007,  16:16 Найти цитируемый пост)
И еще, для себя уточнить. АПИ - это набор функций, с помощью которых можно управлять объектом: высота, ширина, толщина, положение в пространстве, скорость движения и т.д. (т.е. записывать в переменные структуры данных свои значения)? Раздельная компиляция в с++: данные в отдельном файле, методы (API) - в другом. В разрезе скриптовых движков: данные в отдельном файле (на компилируемом языке), методы (API) - в другом (написаны на скриптах и скармливаются интерпритатору).

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


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
Gunslinger
Дата 8.6.2007, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 30.12.2006
Где: Астрахань

Репутация: нет
Всего: 3



Сегодня опять беседовал с тем программистом. Говорили относительно игр, но кады и 3d-пакеты отличаются только отсутствием "движков".  Все, что работает с железом (вывод изображения, покадровая отрисовка, работа с музыкой, работа с памятью и прочее), а также стандартные алгоритмы (обнаружение коллизий, антиаласинг и прочее) - компилируются и являются "жестким каркасом". Различные абстрактные классы (примитив, персонаж, оружее и прочее) - также описываются на компилируемом языке, однако содержат они в себе одни виртуальные функции. А уж работать с этими виртуальными функциями (т.е. заполнение, последующее улучшение) - через скрипты.
Привел пример:
Есть клас воина. В нем различные виртуальные функции: рост, вес поведение, еще что-то. Программист программирует эти функции скриптами, а уже затем эти функции передаются "жесткому каркасу": отрисовать полигон, масштабировать персонаж в соответствие с заданным ростом, перерисовать персонаж на экране, если он двигается, определить коллизии персонажа с другим объектом и т.д.
Было бы неплохо посмотреть реальный код (хотя это нереально). В общих чертах представляю, однако может оказаться не правильно. 
Вроде я начинаю понимать, но для полного усвоения потребуется еще пара дней. Поэтому вопросов пока нет, хотя тему не закрываю.
PM MAIL   Вверх
Rickert
Дата 11.6.2007, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 6
Всего: 52



Цитата(Gunslinger @  8.6.2007,  15:40 Найти цитируемый пост)
Было бы неплохо посмотреть реальный код (хотя это нереально). В общих чертах представляю, однако может оказаться не правильно. 

ftp.idsoftware.com
там ищи исходники q3, q2 - вот тебе реальные примеры. Удачи!



--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
Gunslinger
Дата 25.6.2007, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 30.12.2006
Где: Астрахань

Репутация: нет
Всего: 3



Rickert, спасибо за пожелание.... 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование игр, графики и искуственного интеллекта"
Rickert

НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.

  • Литературу, связанную с программированием графики, обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы связанные с программированием графики и мультимедии на языках С++ и Delphi
  • Вопросы по реализации алгоритмов рассматриваются здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема »


 




[ Время генерации скрипта: 0.0739 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.