Дядя Миша
А зачем всё склеивать все объекты вместе? И каким боком здесь трансформ, композиция и т.д.?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Дядя Миша писал: Это ещё больший доктортрессизм. Потому что от композиции ты получишь общее поведение, тогда как тебе непременно понадобится кастомизированное. Иначе в твою унылую игру никто играть не будет.
Уровни через генератор, монстры, через композицию, зашибись просто.
Душу вкладывать не планируется?
Собственно это вывод из всех ваших споров: возиться всё равно придётся. И тогда какая разница?
Crystallize писал: Собственно это вывод из всех ваших споров: возиться всё равно придётся. И тогда какая разница?
Возиться надо в любом случае. Но ДМ немного преукрашивает. Как я говорил, написать новое свойство куда проще чем энтитию. Если нужно кастомизировать имеющиеся - можно наследоваться от этого компонента и добавить в него всё что нужно. С энтитиями только писать новый обжект (хотя конечно ту же композицию и наследование можно писать и в коде да, но это чуть сложнее чем выбрать компонент из выпадающего списка в IDE и нажать пару галочек).
Добавлено 02-10-2024 в 14:35:
Цитата:
Crystallize писал: Собственно это вывод из всех ваших споров: возиться всё равно придётся. И тогда какая разница?
Самое ужасное в разработки игр это контент, с чем я очень сильно проседаю. Не то что я не умею его делать, а то что нужно много времени и много ассетов. Меня это немного вводит в депрессию, наверное скоро плюну на все эти графоны и буду делать пиксельное лоупольное хрючево как все остальные. Либо использовать чужие ассеты. Логично если ещё поверх этого накинуть C++ код и его отладку без какого то вменяемого профайлера и отладчика, тут проще вообще сдохнуть. ДМ наивно считает что все эти редакторы, ECS, IDE и т.д. это просто маркетинг. Но ДМ не делает параллельно карты, не рисует текстуры, и не лепит модели, не делает звуки и музыку. Но несмотря на это меня восхищает и вдохновляет как он в одиночку пишет движок.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал: Как я говорил, написать новое свойство куда проще чем энтитию
Проще. Но ты не сможешь это свойство адекватно использовать вот вообще везде. А многие свойства пишутся под конкретного NPC. Вот скажем, в той же ку2 есть такая фишка как приседание, чтобы уклониться от ракеты или заряда бластера. Куда ты ещё это свойство применишь?
Цитата:
FiEctro писал: выбрать компонент из выпадающего списка в IDE и нажать пару галочек
И результат в большинстве случаев недетерминирован, кроме самых простых конечно. К тому же не забывай, что уже имеющиеся компоненты писали грамотные люди, которые понимали что делают. У тебя есть уверенность, что твоё самописное свойство наоборот чего-нибудь там неполомает?
Цитата:
FiEctro писал: Самое ужасное в разработки игр это контент
Само-собой. Движок-то один раз сделал и используешь во всех играх. Против этого никто не возражает, если он справляется. А вот чтобы во всех играх использовать одни и те же текстуры, одних и тех же NPC, и главное один и тот же сюжет - это уже не игра получается, а какой-то мод про Гордона Фримена.
Цитата:
FiEctro писал: ДМ наивно считает что все эти редакторы, ECS, IDE и т.д. это просто маркетинг.
ДМ считает что эти редакторы зачастую сделаны наоборот для того, чтобы замедлять работу, а не ускорять её. Потому что те кто их делали - сами в них никогда не работали и не планируют этого.
Цитата:
FiEctro писал: Но несмотря на это меня восхищает и вдохновляет как он в одиночку пишет движок.
По правде сказать - не только тебя одного. Что в свою очередь удивляет уже меня. Что тут особенного. Ну пишу и пишу себе вот.
Дядя Миша писал: Проще. Но ты не сможешь это свойство адекватно использовать вот вообще везде. А многие свойства пишутся под конкретного NPC. Вот скажем, в той же ку2 есть такая фишка как приседание, чтобы уклониться от ракеты или заряда бластера. Куда ты ещё это свойство применишь?
Приседание это просто изменение размера хулла. В Юнити это делается редактированием оси Z бокс коллайдера. Вполне нормально оно ложится на компонентную систему. Динамическое изменение колайдера много где используется.
У объекта есть пользовательский компонент например плеер контроллер, который ловит импут, у плеер контроллера есть ссылка на колайдер, аниматор, и объект камеры. Допустим мы нажали CTRL и отловили его. Плеер контроллер обращается по ссылке к трансформу камеры и редактирует её положение по оси Z, потом обращается по ссылке к компоненту колайдер и редактируем его высоту по оси Z, потом обращаемся к аниматору и отсылаем ему эвент то что мы сели. Всё. Сам код плеер контроллера не содержит ни расчёта колайдера, ни прибитых гвоздями анимаций, ни описания камеры. Он лишь командует объектами и компонентами. Забегая вперёд скажу что физику из ку2 тоже написать таким макаром можно, но тут уже придётся писать свои компоненты имитирующие конкретно ку2 физику и дерево.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал: Приседание это просто изменение размера хулла
А ещё анимация. А ещё застывание в данном положение на определённый срок. А ещё детектор того, что пора присесть и рассчитать на сколько именно времени. А ещё надо уведомить AI что монстр присел.
Это я тебе перечисляю всё то, что есть в примитивной ку2.
А ты сразу с козырей заходишь. Ну вот поэтому мы и не можем друг-друга понять.
Цитата:
FiEctro писал: Плеер контроллер обращается по ссылке к трансформу камеры и редактирует её положение по оси Z, потом обращается по ссылке к компоненту колайдер и редактируем его высоту по оси Z, потом обращаемся к аниматору и отсылаем ему эвент то что мы сели
Ну я и говорю - полная жесть. То что в норме делается парой строчек кода, вы сидите выкликиваете какими-то нодами.
FiEctro писал: Плеер контроллер обращается по ссылке к трансформу камеры и редактирует её положение по оси Z, потом обращается по ссылке к компоненту колайдер и редактируем его высоту по оси Z
А зачем это делать дважды, когда можно это сделать один раз. В обьекте сразу можно приаттачить камеру к капсуле компоненту ) Капсула компонент - это коллизия для игрока )
__________________
Kiss my ass if you don't like my Ford!
------------------------------------------ Game Area51 Update 1
First Person Shooter Released Jul 24, 2017
The game is a 3d shooter with the elements of the quest.
Дядя Миша писал: А ещё анимация. А ещё застывание в данном положение на определённый срок. А ещё детектор того, что пора присесть и рассчитать на сколько именно времени. А ещё надо уведомить AI что монстр присел.
Так я это перечислил, лол. Анимация управляется скриптом аниматора, зачем её вшивать в код? А если мы захотим перса с другими анимациями? Сенсоры это могут быть теже триггеры или трасса, "Определенный срок" карутины или асинхронные функции - это уже кодом да.
Цитата:
Дядя Миша писал: Ну я и говорю - полная жесть. То что в норме делается парой строчек кода, вы сидите выкликиваете какими-то нодами.
Я видел исходный код квак, там никаких пару строк, а вот именно что жесть , всё размазано по проекту и нишагу в сторону от БСП дерева. Чтобы что то добавить даже очень простое, нужно изучить весь проект, очень интуитивно (нет).
Цитата:
(_-=ZhekA=-_) писал: А зачем это делать дважды, когда можно это сделать один раз. В обьекте сразу можно приаттачить камеру к капсуле компоненту ) Капсула компонент - это коллизия для игрока )
Да так тоже можно, почему нет?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал: C++ код и его отладку без какого то вменяемого профайлера и отладчика
А в чем собственно проблема? На C++ с этим всё просто супер, в отличие от других языков: под любую платформу и задачу на любой вкус и цвет. Хоть дебаггер современной студии (очень мощный и удобный, в самом деле), хоть gdb голыми ручками, хоть эзотерический дебаггер rr, который умеет ход программы в обратную сторону отматывать. То же самое и с профайлерами. Даже тот же race detector в Go - это буквально та же самая тулза под названием ThreadSanitizer из мира cpp.