По диздоку - готовится тестовая версия карты уровней с описаниями путей и т.п. Пока делается не слишком детализованная объектами. О том, как выглядит, пока промолчу, дабы не выставлять сиё позорище на публичное осмотрение.
Разборка старого материала Мы тут с Нэшером в чате (точнее в аське) работаем над разборкой материала из игры по типу принадлежности (например, всё относящееся к гному, его трубка и т.д. в одну папку, чтоб было легче разбирать). Карты уже разобрал (работа вообще нулевая, там у каждой карты 3 или 4 одноименных файла), разобрал бОльшую часть скриптов камер, начинаю с персонажами (готов гном, но ещё не залит). АИ тоже разложены по полочкам. Скоро кину ссылки.
Очень хорошо, я бы предпочел, что бы вы писали в теме "диздок", но если вам так удобнее... Я думал думал и придумал, что для реализации поведения монстров, необходимо этого самого поведения описание. Причем желательно более детальное. Надо бы за этими монстрами понаблдать - как они ведут себя без игрока, какая дистанция обнаружения, как атакуют и прочее. Что бы ни говорили, это нужно сделать. Почему? Потому что должно быть текстовое описание, на которое можно опираться. Втч мне, когда дело дойдет до скриптинга монстров. Если не знаете, поищите, и нам расскажите.
Очень хорошо, я бы предпочел, что бы вы писали в теме "диздок"
Тут про диздок совсем немного, я предпочитаю с такой мелочью не лезть, когда будет что-то готовое, напишу там.
Quote (PlayerDark)
что для реализации поведения монстров, необходимо этого самого поведения описание. Причем желательно более детальное. Надо бы за этими монстрами понаблдать - как они ведут себя без игрока, какая дистанция обнаружения, как атакуют и прочее
Тут наблюдать необязательно, можно просто почитать файлы АИ и расшифровать их.
Про аську... Мы с Нэшером там регулярно общаемся, но она троих не поддерживает, а поскольку то, о чём мы в ней говорим, может быть интересно Вам, PlayerDark, или другим участником проекта, для таких вопросов лучше соорудить что-то более капабельное.
Состояние спокойствия (idle) { Ноги - стандартные (спокойствие)
поведение спокойное
Переходит в: надвигается (когда есть враг) Тревога (слышит шум) Подёргивание - завершена анимация, время 13 (сек), шанс 1/3 }
состояние подёргивания (twitch) { ноги - стандартные (для подёргивающегося состояния)
поведение спокойное
Переходит в: Состояние спокойствия (когда окончилась анимация) }
Состояние тревоги { Ноги - стандартные (для тревоги) Запустить команды видимость 330 //вот где расстояние, где он видит врага поведение спокойное выключить команды видимость 150 //когда он не встревожен, видимость хуже
Переходит в: надвигается (когда есть враг) Состояние спокойствия (конец анимации) }
Состояние, где он надвигается (идёт на врага) { ноги - стандартные (ходьба)
поведение - пдобраться близко к врагу (шагом) //сбавляет ход, когда догнал врага
Переходит в: состояние боли (ранили) атака (видит врага на расст. 90) быстрое наступление - дистанция не равна 160 Состояние спокойствия - нет врага }
быстрое наступление { ноги - стандарные (бег)
поведение подобраться к врагу (бегом)
Переходит в: состояние боли (ранили) быстрое наступление - дистанция равна 160 Состояние спокойствия - нет врага }
атака { ноги - стандартные (атака)
поведение: смотреть
Переходит в: надвигается (конец анимации) }
боль { поведение спокойное
переходит в: надвигается (конец анимации) }
смерть { ноги стандартные (смерть) режим заморозки : замороженная смерть переходит в: расчленение: не убили ножом, ледяным жезлом, не зоморозился вообще //например фантасмагорией, шанс 15% }
расчленение { ноги - стандартные (расчленение) запустить команды: surface all +nodraw //прорисовка чего-то убрать прикреплённую модель (метка: вилы) запустить именной кусок w_fork.tik на метке: вилы 90 0 noshadow// нет тени у гибсов запустить кровавые куски мяса 4//количество 1//тип }
Для наглядности советую сравнить с c_fireimp.st из игры.
Пометки на полях * Как ни странно, виды смерти (заморозка, расчленение и т.п.) программируются здесь, а не в тиках. Хотя в тиках есть сведения о том, на каком кадре заморозить и сколько образуется гибсов при расчленении. *Состояние смерти не указывается в переходах, оно знакомо движку и может быть получено из любого другого состояния при получении достоточных повреждений. *Состояние боли, указанное в других состояниях - это не всё. Персонаж может испытывать боль в любом состоянии при ранении (есть шанс), но это не будет отдельным состоянием, а просто анимацией персонажа.
Добавлено (2011-01-27, 1:31 Am) --------------------------------------------- Вот мои разгруппированные материалы игры
АИ врагов и не только (все разбиты по группам) http://www.mediafire.com/?59hkpa73hy51a0d
Также выбираю неиспользованные материалы в отдельную группу, может пригодятся.
Персонажей и т.д. группирую по типу, например старый гном (я его называю гноб) содержит в своей папке ещё и тик с анимацией полёта на дирижабле, и трубку гнома, которая больше нигде не используется. А вы видели странных детей - у них ведь у каждого типа устройств на голове свой тик для вызова, хотя это всего лишь eyecandy.a
Сообщение отредактировал WhiteKnight - Четверг, 2011-01-27, 1:25 AM
WhiteKnight, полезное уточнение.. Впрочем, есть идея, что вы могли бы сами писать скрипты. Хотя до этого дело пока еще не дошло. Еще поясните - что значит "ноги стандартные".
Ладно. Попробую объяснить. Ноги - это не только ноги, а всё связанное с походкой, движением персонажа. То есть представьте, если идёт спокойно - состояние одно, бежит - другое. Это связано с анимацией персонажа. Состояния ног перекликаются с тиками, например у того же чёртика читаем: animations
Могу сказать про довольно странную систему АИ - интеллект есть не только у существ, но и некоторых объектов неживой природы. Например, есть это у
fx_icewall.st ледяная стена grasshoppertea.st прыгающий чайник (поверап) reed.st ? root.st ? vine.st Лоза, по которой можно лазить.
Думаю, что в нашем движке такого не будет, т.к. это лучше было бы указывать в свойствах объектов (то, что будет вместо тик файлов). Заметьте, у прыжковых грибов такого нет, т.к. поверх них всего лишь триггер, который можно прикрепить к чему-нибудь другому (например, стулья у Шляпника). В любом случае постараюсь разобраться, что тут за reed.st и root.st.
Сообщение отредактировал WhiteKnight - Четверг, 2011-01-27, 5:20 PM
С чаем понятно - он прыгает, а лианы таким образом качаются. root (наверно это всё-таки щупальце королевы) тоже, у него полная копия поведения лианы. reed-что-то непонятное. Ледяная стена поднимается, стоит 10 секунд и исчезает.
Всё-таки тут примитивная техника скриптинга, я думаю, анимацию объектом можно бы сделать по другому, через тик.
Добавлено (2011-01-27, 7:25 PM) --------------------------------------------- Надо же, забыл поместить АИ врагов и не только (все разбиты по группам) Примечания Разные версии или части целого помещены в одну папку. интеллект всех шахматных фигур (он одинаков у красных и белых версий) в категории "враги".
А вот и новенькое Гном http://letitbit.net/download/99183.9ff20cdc345d3e265d190cc377b6/old_gnome.rar.html
PS У меня есть предложение прогонять в каком-нибудь 3D редакторе (пусть 3Д МАкс) анимации объекта со звуками и прикреплёнными объектами, чтобы в игре избежать ошибок.
Также думаю, что в самих персонажах не было бессмертия (а в Алисе бессмертны большинство союзников), а бессмертие было записано в скрипте уровня и прикреплено к объекту.
Добавлено (2011-01-27, 7:28 PM) --------------------------------------------- Это сильно мешает, когда играешь с вызванными кодами персонажами (для людей, прошедших игру не раз и не два, особенно важно). Также тела боссов должны исчезать, кроме случаев, особо записанных в сценарии (то есть при обычном прохождении).