Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.07.2009, 08:42   #11
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Манжосов Денис
А ты не занимался ИИ,
и сколько у тебя опыта в программировании если не сикрет?
VintProg вне форума Ответить с цитированием
Старый 31.07.2009, 08:49   #12
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию

Не секрет. 3 года, но главное, конечно, не время, а знания. Я не занимался ИИ, и что значит "Заниматься ИИ"?
Манжосов Денис :) вне форума Ответить с цитированием
Старый 31.07.2009, 08:57   #13
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Цитата:
Я не занимался ИИ, и что значит "Заниматься ИИ"?
Ну программировал Искуственый Инелект для аткеров в играх?

Цитата:
Не секрет. 3 года, но главное, конечно, не время, а знания
В Delphi или С++?
VintProg вне форума Ответить с цитированием
Старый 31.07.2009, 09:03   #14
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию

Цитата:
В Delphi или С++?
Это не имеет значения в данной теме. В Delphi.
Цитата:
Ну программировал Искуственый Инелект для аткеров в играх?
Нет. Мне ещё не приходилось делать игр с серьёзным ИИ.
P.S. Не флуди.
Манжосов Денис :) вне форума Ответить с цитированием
Старый 31.07.2009, 09:07   #15
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Я вот еще и в сталкере пытаюсь делать моды,
щас наткнулся на одну проблему...
а так там тоже можно делать что-то вроде ИИ.
VintProg вне форума Ответить с цитированием
Старый 31.07.2009, 15:42   #16
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Придерживайтесь темы пожалуйста.

Делаем один таймер с интервалом порядка 31 мс, этого достаточно, меньше - лишняя нагрузка на систему.
В таймере что касается ИИ делаем условия на проверки, например, флагов, или конкретной переменной в записях персонажа, которая характеризует состояние. Например, если 0 (перс стоит) переключиться на 1 (сканирование территории), выход функции - цель, если она есть с координатами ...следом, если 1 и функция вернула цель, то переключить состояние в 2 (перемещение), блок перемещения "видит" состояние 2 и начинает менять координаты перса, он перемещается в сторону цели. Следом в ИИ, если состояние 2 и цель в радиусе удара (в записях от типа оружия), то переключение состояния в 3 (атака), блок действий "видит" состояние 3 и запускает анимацию атаки. Все примерно так.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 31.07.2009, 15:54   #17
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Цитата:
Делаем один таймер с интервалом порядка 31 мс, этого достаточно, меньше - лишняя нагрузка на систему.
Таймер не точный. Если в Interval поставить 1-55 то настоящий интервал будет 55. Если 55-110 то настоящий интервал будет 110.
Вадим Буренков вне форума Ответить с цитированием
Старый 31.07.2009, 16:27   #18
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
1) сколько максимально можно таймеров в игре использовать им же есть предел?
Это не ты спрашивал в соседней теме сколько объектов можно создать? Так вот, таймер это объект. А ответ я там дал.

Цитата:
Таймер не точный. Если в Interval поставить 1-55 то настоящий интервал будет 55. Если 55-110 то настоящий интервал будет 110.
TTimer да, не точный. Если процессор не справляется то следующий тик будет с запозданием, и так далее, они как бы в стек записываются, но выполнятся все. Есть специальные мультимедийные (они же игровые) высокоточные таймеры, в к-рых интервал точнее задается и в к-рых по-другому "тиканье" реализовано.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 31.07.2009, 16:40   #19
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Цитата:
Сообщение от Вадим Буренков
Таймер не точный. Если в Interval поставить 1-55 то настоящий интервал будет 55. Если 55-110 то настоящий интервал будет 110.
Утверждение не верное. Между 1 и 55 есть промежутки 10 20 30 40 они отличимо меняют скорость анимации, например у меня. Все зависит от того, успел ли внутренний код выполниться до момента истечения интервала. Например, если у вас Canvas'ами все кишит внутри таймера, то таймер не будет реагировать на интервалы до 50-60 а то и больше, искусственно удлиняя их до времени выполнения кода.
У меня полная обработка цикла прорисовки кадра занимает в районе 10 мс, по-этому я искусственно ставлю интервал 31 мс, чтобы достичь синхронизации с анимацией.

Послесловие: ...вопрос только в том, зачем вам точное выполнение внутреннего кода быстро по точному интервалу, если графика не успевает за ним? ...пусть и ИИ тормозит следом за выводом кадров, тогда будет полная синхронизация в игре, никакая процедура/функция не "бежит впереди паровоза".
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его

Последний раз редактировалось Beermonza; 31.07.2009 в 16:46.
Beermonza вне форума Ответить с цитированием
Старый 31.07.2009, 16:50   #20
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

С мультимедиа-таймерами лажа полная, оно тикает, не дожидаясь ответа, фактически в своём потоке, если в calback засунуть PostMessage (а туда практически ничего другого пихать не рекомендуется) и процесс где-то тормознёт чуть больше, чем следовало - засыпет сообщениями по-самое-небалуйся Проще уже будет явно поток сделать с паузой в виде timeSetEvent/waitForSingleObject, чем с timeSetTimer, меньше проблем с синхронизацией. А вообще, конечно, мерять маленькие промежутки времени в винде тот ещё геморрой.

Цитата:
зачем вам точное выполнение внутреннего кода быстро по точному интервалу, если графика не успевает за ним
Расчёты выполнять с максимально возможной скоростью, вывод - с необходимым FPS, т.е. фактически нужно 2 таймера, для вывода вполне подойдёт и TTimer (даже при использовании GDI, если не ворочать мегабайтными текстурами разумеется). При таком подходе в случае нехватки ресурсов FPS останется стабильным, просто движения будут просчитаны хуже, что-то вроде frameskip'а. И да, это тока теория, надо бы проверить)
пыщь

Последний раз редактировалось JTG; 31.07.2009 в 16:56.
JTG вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Физика в 2D играх Вадим Буренков Gamedev - cоздание игр: Unity, OpenGL, DirectX 32 02.11.2010 22:00
Сюжет в 2D играх ZotaC Свободное общение 8 05.07.2009 15:42
ИИ в играх-GPU. Что будут делать CPU? Levsha100 Свободное общение 17 03.07.2009 14:54
Анимация в играх frai Gamedev - cоздание игр: Unity, OpenGL, DirectX 4 25.11.2007 14:28