doom2d.org

Главная база плоских морпехов
It is currently 27 Feb 2020, 20:14

All times are UTC + 3 hours




Post new topic Reply to topic  [ 14 posts ] 
Author Message
PostPosted: 17 Aug 2019, 20:43 
Offline
User avatar

Joined: 04 Feb 2010, 14:42
Posts: 359
Location: Equestria
Изначально все триггеры - это кнопки. Почему-то это не было учтено для новых триггеров и они объеденяют в себя две разные штуки: облать активации и область воздействия(которой не должно быть только для триггеров глобального воздействия). Триггеры Play Sound и Effect включают такие настройки, которые было бы логично разделить на несколько триггеров. Некоторые триггеры могут щёлкать, а некоторые - нет. И подобные проблемы.

В общем хотелось бы переделать структуру в более регулярную, обобщённую и удобную.

1. Разделить Play Sound на Play Local Sound и Play Global Sound.
2. Play Local Sound:
  • Добавить область действия, где звук и будет звучать.
  • Добавить параметр Затухание(Дистанция?). Единицы в процентах(пикселях?), направление снаружи внутрь(так лучше, да)
  • Удалить параметр Pan
  • Удалить параметр Local
4. Разделить Effect на Particle Effect и Animated Effect.
3. Play Global Sound:
  • Удалить параметр Local
5. Particle Effect:
  • Добавить область действия, где и будут создаваться частицы.
  • Удалить параметр Effect type
  • Удалить параметр Trigger center (можно оставить на уровне гуя редактора)
  • Переименовать Effect subtype в Effect type
6.1. Animated Effect (Вариант 1):
  • Добавить область действия
  • Добавить флаг Silent effect (в коде есть, но в структурах данных нету, сейчас всегда True)
  • Удалить параметры Effect type, Effect color, Скорости
  • Удалить параметр Trigger center (можно оставить на уровне гуя редактора)
  • Переименовать Effect subtype в Effect type
6.2. Animated Effect (Вариант 2):
  • Добавить область действия
  • Добавить выбор анимации
  • Добавить выбор звука
  • Удалить параметры Effect type, Effect subtype, Effect color
  • Удалить параметр Trigger center (можно оставить на уровне гуя редактора)
  • Удалить параметры скорости (кроме Vertical/Horizontal Speed)
7. Push, Damage, Healter:
  • Добавить область действия (квад)
8. Объеденить Enable Trigger, Disable Trigger и Trigger Toggle в Trigger Switch:
  • Удалить область воздействия
  • Добавить список воздействия
  • Добавить пратметр Тип (вкл/выкл/перекл/рандом)
9. Добавить звук щёлкания для всех триггеров где нету.
  • Вместо параметра Silent дать возможность выбрать свой звук?
10. Я ничего не пропустил? Где ещё есть странная/переусложнённая структура? Каких-то параметров не хватает для обобщения?
11. Extender:
  • Удалить область воздействия
  • Добавить список воздействия
12. Объеденить Open Door, Close Door, Door, Door (5 sec), Close Trap, Trap в один триггер Door:
  • Добавить параметр Тип (откр/закр/перекл)
  • Добавить параметр Время действия (сек, если не ноль то по истечению таймера сделать обратное действие)
  • Добавить параметр Ловушка (да/нет)
  • Добавить выбор звука открытия/закрытия двери
  • Добавить возможность влиять на любые типы панелей, а не только двери
13. Объеденить Turn stream up/left, Turn stream down/right, Revert stream с обощением?
14. В добавок к областям воздействия добавить списки воздействия где это имеет смысл.

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

Пункты помеченные жёлтым требуют обсуждения.




Старое сообщение(17-19 авг):

Изначально все триггеры - это кнопки. Почему-то это не было учтено для новых триггеров и они объеденяют в себя две разные штуки: облать активации и область воздействия(которой не должно быть только для триггеров глобального воздействия). Триггеры Play Sound и Effect включают такие настройки, которые было бы логично разделить на несколько триггеров. Некоторые триггеры могут щёлкать, а некоторые - нет. И подобные проблемы.

В общем хотелось бы переделать структуру в более регулярную, обобщённую и удобную.

1. Разделить Play Sound на Play Local Sound и Play Global Sound, а Effect на Particle Effect и Animated Effect.
2. Play Local Sound:
  • Добавить область действия (квад)
  • Добавить параметр для установки границы затухания звука (длина в пикселях от области воздействия наружу)? Как обозвать?
  • Удалить параметр Pan
  • Удалить параметр Local
3. Play Global Sound:
  • Удалить параметр Local
5. Particle Effect:
  • Добавить область действия (квад)
  • Удалить параметр Effect type
  • Удалить параметр Trigger center
6. Animated Effect:
  • Добавить область действия (квад)
  • Добавить флаг Silent effect? (в коде есть, но в структурах данных нету, сейчас всегда True)
  • Удалить параметр Effect type
  • Удалить параметр Effect color
  • Удалить параметр Trigger center
  • Удалить параметры скорости
  • Для наркомании добавить возможность установки кастомной анимации и звука? Возможно с вынесением текущих захардкоженных анимаций и звуков в standart.wad
7. Push, Damage, Healter
  • Добавить область действия (квад)
8. Enable Trigger, Disable Trigger, Trigger Toggle
  • Объединить в один триггер с добавлением соответствующего поля с выбором режима воздействия? Как обозвать?
9. Добавить всем триггерам флаг Silent, где нету. Может и сразу заменить выбором кастомного звука щелчка(кто-то такое уже хотел).
10. Я ничего не пропустил? Где ещё есть странная/переусложнённая структура? Каких ещё параметров не хватает для обобщения?

Длля обратной совместимости оставить старые триггеры как есть, но при загрузке конвертировать в новый формат, а в редакторе скрыть c глаз долой.

Пункты помеченные жёлтым требуют обсуждения.



Top
 Profile  
 
PostPosted: 17 Aug 2019, 23:25 
Offline
Site Admin
User avatar

Joined: 17 Oct 2009, 23:43
Posts: 6466
Location: \\NEGRO
Версионирование у нас вроде как есть.

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

Про триггеры напишу подробно утром, сейчас сильно устал.

_________________
И неважно, что нет морей на Марсе, каждый морпех носит море в сердце.


Top
 Profile  
 
PostPosted: 18 Aug 2019, 01:07 
Offline
Приколист
User avatar

Joined: 18 Oct 2009, 04:01
Posts: 5910
Location: Владивосток
Помнится ketmar ещё предлагал нафиг избавиться от понятия "зона активации", заменив его на "список активации". Преимущества очевидны, думаю.

_________________
Чёрный Думер, Чёрный Думер
С монстрами сражается.
Чёрный Думер, Чёрный Думер
Рокетланчер плавится.


Top
 Profile  
 
PostPosted: 18 Aug 2019, 10:13 
Offline
User avatar

Joined: 04 Feb 2010, 14:42
Posts: 359
Location: Equestria
Что такое этот "список активации"? Я что-то слабо представляю как можно убрать зоны активации.


Top
 Profile  
 
PostPosted: 18 Aug 2019, 18:19 
Offline
Приколист

Joined: 18 Oct 2009, 12:00
Posts: 1243
Location: Подмосковье
В расширителе и т.п. лист триггеров которые он активирует вместо боундинг бокса зоны активации. Можно даже зону активации оставить в редакторе, а в карту писать список того что в ней находится. За формат карты 2.0 у нас текстокарты, которые можно любой хитрозакрученной жопой расширить через мапдеф. Еще один бинарный ИМХО не нужен.

_________________
aka PrimuS


Top
 Profile  
 
PostPosted: 18 Aug 2019, 20:30 
Offline
User avatar

Joined: 04 Feb 2010, 14:42
Posts: 359
Location: Equestria
Так всё таки область воздействия(action area). Я под областью активации понимаю то, куда жмёт игрок.
Собственно только для расширителя и enable/disable/toggle trigger имеет смысл делать списком, на какие триггеры они должны воздействовать. Для остального область воздействия нужна.

Насколько имеет смысл делать список воздействия в дополнение к области воздействия? Т.е. выбирать конкретных монстров/игроков, на которые будет воздействие независимо от их расположения на карте.


Top
 Profile  
 
PostPosted: 18 Aug 2019, 20:35 
Offline
Приколист
User avatar

Joined: 18 Oct 2009, 04:01
Posts: 5910
Location: Владивосток
DeaDDooMER wrote:
Насколько имеет смысл делать список воздействия в дополнение к области воздействия?
Даже не знаю. С другой стороны, можно генерировать таковые списки при загрузке карты.

_________________
Чёрный Думер, Чёрный Думер
С монстрами сражается.
Чёрный Думер, Чёрный Думер
Рокетланчер плавится.


Top
 Profile  
 
PostPosted: 18 Aug 2019, 20:39 
Offline
Приколист

Joined: 18 Oct 2009, 12:00
Posts: 1243
Location: Подмосковье
До недавних пор я думал что оно так и происходит. Так как у нас триггеры не двигаются, то почему бы и нет.

_________________
aka PrimuS


Top
 Profile  
 
PostPosted: 18 Aug 2019, 21:04 
Offline
User avatar

Joined: 04 Feb 2010, 14:42
Posts: 359
Location: Equestria
Черный Думер wrote:
DeaDDooMER wrote:
Насколько имеет смысл делать список воздействия в дополнение к области воздействия?
Даже не знаю. С другой стороны, можно генерировать таковые списки при загрузке карты.
Либо я плохо написал, либо ты не дочитал. Такое сгенерировать не получится. Представь список вместо области воздейтвия для триггера damage. Область воздействует динамически (заранее не известно кто и когда в неё станет), а список - статически (выбиаются конкретные монстры).


Top
 Profile  
 
PostPosted: 18 Aug 2019, 21:52 
Offline
Site Admin
User avatar

Joined: 17 Oct 2009, 23:43
Posts: 6466
Location: \\NEGRO
» 1. Разделить Play Sound на Play Local Sound и Play Global Sound, а Effect на Particle Effect и Animated Effect.
Если плодить триггеры, то надо их в редакторе вместо одного безумно длинного списка разделить по кнопочкам.
В принципе ок, но у нас еще есть не очень полезный и сыроватый триггер Музыка - про него тоже надо подумать.

» 2. Play Local Sound
    » Добавить область действия (квад)
      Не вижу большого смысла, подробнее - ниже.
    » Добавить параметр для установки границы затухания звука (длина в пикселях от области воздействия наружу)? Как обозвать?
      Хорошая годная идея. "Затухание"? "Дистанция слышимости"? Просто "Дистанция"?

» 5. Particle Effect:
    » Удалить параметр Effect type
      Скорее переименовать "Подтип эффекта" в "Тип эффекта". Оставить там пресеты - для крови, воды, искр и тд
    » Удалить параметр Trigger center
      Плохая идея. Иногда надо, чтобы все летело из единой точки (фонтанчик искр от проводки), иногда нужен рект (падающий снег).
» 6. Animated Effect:
    » Удалить параметр Trigger center
    » Удалить параметры скорости
      Тоже нужный параметр, для тонкой настройки эффекта. Правда,не уверен, что он сейчас работает
    » Для наркомании добавить возможность установки кастомной анимации и звука? Возможно с вынесением текущих захардкоженных анимаций и звуков в standart.wad
      Ооо дааааа... Хотеть! А то приходится на всякие взрывы панели с анимтекстурами колхозить

Кстати, дым (предположим, он у нас выделен в триггер есть и идет вверх) - это в твоей концепции партикли или анимация?

» 8. Enable Trigger, Disable Trigger, Trigger Toggle
    » Объединить в один триггер с добавлением соответствующего поля с выбором режима воздействия? Как обозвать?
      Нелогично. У нас, например, "Открыть дверь", "Закрыть дверь", "Дверь" разные - значит, энаблеры и дизаблеры должны по той же логике работать. А вот "Дверь 5 сек" можно, в принципе, низвести до атрибута "Двери".

Сслабо понимаю, для чего нужны отдельные области действия Push, Damage, Healer и тд, хотя осбо не возражаю. Важно только, чтобы если область действия не указана, она равнялась координатам и размеру триггера (для совместимости).

У нас в любом случае есть триггеры с вынесенными областями действия и с областью действия, совмещенной с кнопкой.
Где, например, будет область действия у триггера "Начислить очки" или "Выход"? Зачем плодить лишние сущности?

Еще имеет смысл:
  • сделать всем триггерам параметр "Кулдаун". Как перезарядка у "Турели".
  • добавить "Лифт стоп" (при этом лифт "открывается", как дверь и никак не влияет на снаряды и игрока) и разделить "Лифт вверх/поток влево" и "Лифт вниз/поток вправо". Объединить эти типы оказалось скверной идея, я сменил концепт и попросил переделать, но у внедрявшего потоки Прима кончилась пепяка и потоки так и осталось недоделанными. Ссылка на реквест про потоки
  • научить "Открыть дверь", "Закрыть дверь", "Дверь" и тд "открывать" панель любого типа по ID, а не только двери. Например, спустить воду из бассейна, налить лавы в вулкан, динамически управлять блокмоном.

DeaDDooMER» Насколько имеет смысл делать список воздействия в дополнение к области воздействия? Т.е. выбирать конкретных монстров/игроков, на которые будет воздействие независимо от их расположения на карте.
    Может оказаться полезным.

Prostovitalik» Можно даже зону активации оставить в редакторе, а в карту писать список того что в ней находится.
    Непременно оставить. Потому что это удобнее в редакторе.

P.S. И еще. Это, конечно, норкомания, но для задела на будущее имеет смысл сделать триггеры так, чтобы они не ломались, если их двигать по карте, например, меняя координаты скриптом или привязав их к платформе.

_________________
И неважно, что нет морей на Марсе, каждый морпех носит море в сердце.


Top
 Profile  
 
PostPosted: 18 Aug 2019, 22:41 
Offline
Приколист
User avatar

Joined: 18 Oct 2009, 04:01
Posts: 5910
Location: Владивосток
DeaDDooMER wrote:
Либо я плохо написал, либо ты не дочитал. Такое сгенерировать не получится. Представь список вместо области воздейтвия для триггера damage. Область воздействует динамически (заранее не известно кто и когда в неё станет), а список - статически (выбиаются конкретные монстры).
Я имел в виду списки активации статичных объектов из области воздействия (например триггеров), конечно же.

_________________
Чёрный Думер, Чёрный Думер
С монстрами сражается.
Чёрный Думер, Чёрный Думер
Рокетланчер плавится.


Top
 Profile  
 
PostPosted: 18 Aug 2019, 22:50 
Offline
Site Admin
User avatar

Joined: 17 Oct 2009, 23:43
Posts: 6466
Location: \\NEGRO
Чуть не забыл, еще, если добавить в дамаг и лечилку область воздействия, не получится дамажить и лечить себя выстрелом по какому-то объекту на карте.
А сейчас это возможно.

_________________
И неважно, что нет морей на Марсе, каждый морпех носит море в сердце.


Top
 Profile  
 
PostPosted: 19 Aug 2019, 02:05 
Offline
User avatar

Joined: 04 Feb 2010, 14:42
Posts: 359
Location: Equestria
» 5. Particle Effect:
    » Удалить параметр Trigger center
      » Плохая идея. Иногда надо, чтобы все летело из единой точки (фонтанчик искр от проводки), иногда нужен рект (падающий снег).
        Сейчас наличие этого параметра - костыль вытекающий из-за того что нет области воздействия. Делаем выносную область воздействия размером с пуксель и получаем тот же результат. Для удобства можно оставить только в гуе. См далее зачем вообще разделять область активации и область воздействия.

» 6. Animated Effect:
    » Удалить параметры скорости
      » Тоже нужный параметр, для тонкой настройки эффекта. Правда,не уверен, что он сейчас работает
        Сейчас для этих эффектов данные параметры полностью игнорируются, да. Потому и предлагаю разделить на несколько триггеров и удалить кучу лишних полей, которые только путают.
» Кстати, дым (предположим, он у нас выделен в триггер есть и идет вверх) - это в твоей концепции партикли или анимация?
    У нас в коде партикли всегда были и имеют форму летающих пукселей, подчинящихся гравитации. Так что скорее анимации.
    Для обощённого варианта (свои текстура+звук) как раз можно вернуть пару скоростей.

» 8. Enable Trigger, Disable Trigger, Trigger Toggle
    » Объединить в один триггер с добавлением соответствующего поля с выбором режима воздействия? Как обозвать?
      » Нелогично. У нас, например, "Открыть дверь", "Закрыть дверь", "Дверь" разные - значит, энаблеры и дизаблеры должны по той же логике работать. А вот "Дверь 5 сек" можно, в принципе, низвести до атрибута "Двери".
        Ещё как логично. Эта пачка триггеров затрагивает ровно один параметр триггера, только по разным формулам:
        Enable: Enabled := True;
        Disable: Enabled := False;
        Toggle: Enabled := not Enabled;
        Я бы ещё добавил вариант Random.
        Двери, кстати, туда же. Их наверно тоже можно обощить. Но не уверен как хранится состояние панели в внутри игры.

» Сслабо понимаю, для чего нужны отдельные области действия Push, Damage, Healer и тд, хотя осбо не возражаю. Важно только, чтобы если область действия не указана, она равнялась координатам и размеру триггера (для совместимости).
    То что сейчас область воздействия размещается по тому же кваду, что и область активации - частный случай.
    О профитах:
    Кейс 1. Есть два игрока в разных комнатах, в комнате у первого есть кнопка "лечить второго игрока". Такая простая вещь делается очень просто.
    Кейс 2. Есть два игрока в разных комнатах, в комнате у первого есть кнопка "подбросить(push) второго игрока на платформу". Аналогично.
    Кейс 3. Есть кнопка "покусать монстров в трёх отдалённых точках карты". С областью действия такая более слжная конструкция делается даже проще. Потому что не надо накидывать три расширителя, которые активируют ещё три дамага размазанных по карте.
    Кейс 4. Напомню, что на данный момент использование расширителей очень длительная операция и напрямую зависит от количесва триггеров по всей карте, а не только в области воздействия. Примеры выше не только исключают использование расширителей, но и уменьшают количество триггеров, а для текущего дефолтного кейса использования вообще ничего не изменится.

» Где, например, будет область действия у триггера "Начислить очки" или "Выход"? Зачем плодить лишние сущности?
    Нигде. Не было речи о добавлении области воздействия на всё подряд. Я перечаслил только те триггеры, которые хочу поменять. Я об этом написал в самом начале: есть триггеры глобального и локального воздействия. Первые как раз воздействуют на глобальное сотояние игры (выход, музыка, счёт игроков, сообщения, etc). Вторые воздействуют на объекты на карте (панели, монстры, etc).

» P.S. И еще. Это, конечно, норкомания, но для задела на будущее имеет смысл сделать триггеры так, чтобы они не ломались, если их двигать по карте, например, меняя координаты скриптом или привязав их к платформе.
    Это как раз к идее о списках воздействия для триггеров.
    + опциональня привязка координат всех типов сущностей (панели, предметы, области спавна, триггеры и области воздействия) относительно заданной группы/панели. Но это когда появятся двигающиеся панели.

» Чуть не забыл, еще, если добавить в дамаг и лечилку область воздействия, не получится дамажить и лечить себя выстрелом по какому-то объекту на карте.
А сейчас это возможно.

    С чего ты взял что будет не возможно? У нас где-то запрещено ставить область воздействия по тем же координатам что и область активации?


Top
 Profile  
 
PostPosted: 19 Aug 2019, 19:44 
Offline
User avatar

Joined: 04 Feb 2010, 14:42
Posts: 359
Location: Equestria
Обновил первопост.

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


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 14 posts ] 

All times are UTC + 3 hours


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
doom2d.org, since 2007