Все, что по смыслу должно динамически обновляться - будет это делать, да.
Добавлено 10-06-2024 в 23:40:
Цитата:
FiEctro писал: Это глобальные эвенты их создаёт фреймворк движка, а пользовательские скрипты на них подписываются. Соответственно если объект удаляется то он просто отписывается от них и всё. Если всё же другие объекты на него ссылались ну они будут возвращать Null тогда, хотя я обычно делаю проверку. Как бы ничего страшного игра не крашнется если где то случайно разработчик ссылается на несуществующий объект, просто консоль сообщит ему это.
Ты меня опять не понял. Если объект удаляется - будет ли вызван какой-то эвент?
В Шоте, к слову нет никаких глобальных подписок со стороны движка - всё в ведении пользователя и компилятора. То есть там есть 5-6 глобальных вызовов, из которых, собственно всё и происходит.
Дядя Миша писал: В Шоте, к слову нет никаких глобальных подписок со стороны движка - всё в ведении пользователя и компилятора. То есть там есть 5-6 глобальных вызовов, из которых, собственно всё и происходит.
А как быть если я хочу активировать мой код при создании скрипта, при первом кадре скрипта, при каждом такте физики, при каждом кадре или в конце кадрта?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал: А как быть если я хочу активировать мой код при создании скрипта, при первом кадре скрипта, при каждом такте физики, при каждом кадре или в конце кадрта?
все необходимые функции присутствуют. Но на них не надо подписываться.
Это всё в настраивается прямо из кода на шоте.
Да, собственно у тебя же есть сорцы - поизучай.
Так товарищи. Настало время открыть вам страшную правду. Я не настоящий пограммист, как некоторые думают. Настоящему пограммисту вообще всё равно какой код писать. Они в любую задачу погружаются с интересом и работают над ней. Им главное - новизна ощущений. По принципу "О! а я с таким ещё не работал! Интересно!". Ну вот по этому критерию я совсем не настоящий Нет у меня желания обмазываться каждой новинкой и погружаться в неё. В действительности существовал ряд направлений в которых мне было очень интересно ковыряться и разбираться, но достаточно ограниченный.
Так товарищи. Настало время открыть вам страшную правду. Я не настоящий маппер, как некоторые думают. Настоящему мапперу вообще всё равно какую карту делать. Они в любую задачу погружаются с интересом и работают над ней. Им главное - новизна ощущений. По принципу "О! а я с таким ещё не работал! Интересно!". Ну вот по этому критерию я совсем не настоящий Нет у меня желания обмазываться каждой новинкой и погружаться в неё. В действительности существовал ряд направлений в которых мне было очень интересно ковыряться и разбираться, но достаточно ограниченный.
Дядь Миш, главное - движок пили. Видно же, что тебе самому интересно. И протести его итерации на хомячках, типа меня, чтобы точно знать уровень грунта насколько твоя мысль вхождения для не-программеров жизнеспособна.
__________________
Самолетами!
Пароходами!
С боем взяв плацкарты
Едут мужики!
Самолетами!
Пароводами!
Убивать людей Едут мужики!
Отредактировано Camblu_Buildovich 11-06-2024 в 20:43
Так товарищи. Настало время открыть вам страшную правду. Я не настоящий гейм дизайнер, как некоторые думают. Настоящему гейм дизайнеру вообще всё равно какой диздок писать. Они в любуй созвон погружаются с интересом и работают над проектом. Им главное - новизна ощущений. По принципу "О! а на таких плантациях ещё не работал! Интересно!". Ну вот по этому критерию я совсем не настоящий Нет у меня желания созваниваться с каждым кабанчиком и погружаться в катарсис. В действительности существовал ряд хонк-хонков в которых мне было очень интересно ковыряться и разбираться, но достаточно ограниченный.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Очередной важный прорыв совершён сегодня. Движок, как вы знаете, наследуется от Xash3D, а тот в свою очередь - от семейства движков ID Software. В этом нет ничего плохого, на самом деле подавляющее большинство, так или иначе наследует если не кодобазу, то хотя бы идеи Кармака. И конечно наследуется не только хорошее, но и плохое.
Когда речь идёт об идеях, то что-то можно просто не брать. Когда мы имеем дело с какой-то древней кодобазой, то туда попадает разное.
В частности - биты контентсов (содержимого). Ну все наверное про них в курсе, кто имел дело с этими движками. Весь ужас в том, что этих контентсов не так уж и много - всего 32 штуки, поскольку они хранятся в 32-х разрядной целочисленной переменной, но это-то ещё ладно, обычно такого кол-ва хватает за глаза в рамках одной игры. Проблема в том, что к этим контентсам привязан весь workflow - их смотрят компиляторы, движок, при этом вы даже можете толком не знать какие биты используются тулзами и для чего. К тому же они запечены уже в готовой геометрии.
Подобные на первый взгляд простейшие вещи вычищать из среды невероятно сложно, у меня это заняло почти пять лет - начиная с 2019-го года. Правда надо признать, что я не особенно торопился на этот счёт.
Итак, как же мне удалось от них избавиться?
Для утилит введено понятие контентсов компилятора - их всего-навсего три шутки: небо, солид и ликвид. Большего компиляторам и не требуется, им вполне достаточно такого абстрактного разделения.
Движок знает ровно один контент - CONTENTS_SOLID. Я бы конечно мог избавиться и от него, но тогда бы получилось как в вашей любимой Unity - по дефолту вся геометрия не коллидит и игрок бы вываливался с уровня почём зря. Не думаю, что кому-то бы понравилась такая "гибкость".
Так что один бит захардкоден и навряд ли вызовет неудобства, а остальные 31 бит - полностью в вашем распоряжении.
Вы можете создавать разные типы воды, окон, решёток, вообщем всё что угодно для фильтрации коллизии.
Да, самое главное забыл сказать - контентсы можно переопределять не перекомпилируя уровни, модели и всё прочее. Единственное что вам понадобится пересобрать - это игровой код виртуальной машины, т.к. эти контентсы там используются в качестве маски для трассировки. Ну оно и понятно. А вот ресурсы трогать не нужно, т.к. биты контентсов существуют только в материалах и каждый раз загружаются из текстовых скриптов. В форматах моделей они не записаны.
Единственное, повторюсь нельзя переопределять CONTENTS_SOLID.
Дядя Миша писал: Я бы конечно мог избавиться и от него, но тогда бы получилось как в вашей любимой Unity - по дефолту вся геометрия не коллидит и игрок бы вываливался с уровня почём зря.
Эээм ты что то путаешь. Там встроенный физдвижок и юнити оперирует строго его коллайдерами. Ну если коллайдер отключить то да будет проваливаться. Но так то они есть из коробки. Ещё в Юнити есть слои (к слову слои есть преднастроенные, и пользовательские (сколько максимум штук я хз но вроде бы всегда хватало)) через которые ты можешь указывать как они взаимодействуют физически. Ещё объектам можно давать теги и тоже по ним сортировать их.
Цитата:
Дядя Миша писал: их всего-навсего три шутки: небо, солид и ликвид.
Есть триггеры ещё, это вроде и не солид, и не ликвид и не небо.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал: Есть триггеры ещё, это вроде и не солид, и не ликвид и не небо.
Верно. Но, как я уже и сказал - можно задавать сразу несколько бит для коллизии. Мы у триггера ставим CONTENTS_TRIGGER, а CONTENTS_SOLID - убираем. Вот и получается, что на триггеры реагирует только определённый тип трассы. И всё - в ведении пользователя. У меня ничего не прибито гвоздями, как на картинке выше. Пользователь сам определяет типы контентсов и за что они отвечают. Но разумеется есть полноценные примеры использования.
Добавлено вчера в 16:38:
Кстати, можно создавать такие штуки, которые одновременно и вода и триггер, к примеру.
Добавлено вчера в 16:39:
Или скажем туман и триггер. И даже область света можно сделать коллизионным примитивом. Для игровой части, разумеется.
Добавлено вчера в 17:04:
На самом деле - спасибо за картинку. Ты лишний раз подтвердил мой тезис как эти маски коллизии тяжело оторвать от движка. Я по правде говоря полагал, что в Юнити-то уж они полностью в ведении пользователя.
Оказалось - нифига подобного. Какие дали, такие и юзай.
FiEctro писал: Ещё в Юнити есть слои (к слову слои есть преднастроенные, и пользовательские
Преднастроенные можно настроить по своему, ну или вообще их не использовать. Галочки что с чем взаимодействует тоже можно настраивать.
А у тебя пользователь может создавать свои физические слои?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Дядя Миша писал: Кстати, можно создавать такие штуки, которые одновременно и вода и триггер, к примеру.
Так падажжи, мы это уже проходили с Мастером который предлагал превратить половину энтитей в галочки в настройках некой суперэнтити. В итоге выяснили что это неудобно потому что человек привык что у всего есть одна главная функция и всё, и он хочет увидеть класснейм в редакторе и сразу всё понять.
FiEctro писал: Ещё в Юнити есть слои (к слову слои есть преднастроенные, и пользовательские
Так я об этом и речь веду, что фактически они все движковые - там скорее всего точно такая же битовая матрица и половина занята захардкодеными битами для нужд самого движка. Ну и чуть-чуть оставлено пользователю.
Именно с этим я и боролся. У меня только один бит отдан под нужды движка да и то - весьма условно.
Цитата:
FiEctro писал: А у тебя пользователь может создавать свои физические слои?