HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Наши проекты (https://hlfx.ru/forum/forumdisplay.php?forumid=1)
-- XashNT: блог разработчика (https://hlfx.ru/forum/showthread.php?threadid=5297)
Отправлено FiEctro 11-02-2023 в 13:35:
Цитата:
Дядя Миша писал:
Не нравится мне этот зоопарк. Между версиями либо что-то сломано, либо вообще несовместимо. Они же там выбрасывают иногда некоторые вещи.
Для этого и нужны версии в заголовках и метаданных. Чтобы вывести юзверю заветное окошко - этот файл больше не поддерживается. Ну либо заморочиться и делать встроенный конвертер из старого формата в новый как в юнити. Там с допотопных версий можно апгрейднуть проект в современные. Правда большинство функций и шейдеров окажется уже deprecated. В сорсе нечно подобное и было, правда там это можно было узнать только когда уже скормил движку файл не той версии.
Добавлено 11-02-2023 в 16:13:
Цитата:
Дядя Миша писал:
Сделал демку, думаешь всем всё понятно, а на практике никому ничего не понятно. Но все молчат как на уроке в советской школе.
Опять же как и писал ранее зависит от реализации. Если можно будет ткнуть на объект и сразу попасть в скрипт который его обрабатывает. Если можно будет легко отследить порядок выполнения кода, если можно будет отследить сколько какой скрипт потребляет. То это сильно понизит планку вхождения. Я понимаю что ты мыслишь как программист старой школы, которому даже и подсветка синтаксиса не особо нужна, не то что инструменты дебага. Но новичкам нужно чтобы все свистело и пердело, чтобы движок их тыкал напрямую носом в строку в коде где они накосячили. Чем больше пользователь будет чуствовать контроль над ситуацией, тем комфортнее ему будет работать с движком.
Если уж совсем упарываться по интуитивности, рекомендую глянуть Скретч, он очень простой и примитивный, расчитаный совсем на маслят, и копировать конечно я его не предлагаю, однако можно посмотреть и поиграться какие вещи авторы выносят на передний план чтобы новичку было проще разобраться. https://scratch.mit.edu/projects/ed...rial=getStarted__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Отправлено Дядя Миша 11-02-2023 в 14:07:
Цитата:
FiEctro писал:
можно будет отследить сколько какой скрипт потребляет
Потребляет ЧЕГО?
Цитата:
FiEctro писал:
простой и примитивный, расчитаный совсем на маслят,
А маслята это кто?
Добавлено 11-02-2023 в 17:07:
Сходил по ссылке. Я резко отрицательно отношусь к визуальному программированию. Оно мозги так переформатирует, что человек не может выбраться из своего мира иллюзий.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено FiEctro 11-02-2023 в 15:42:
Цитата:
Дядя Миша писал:
Потребляет ЧЕГО?
Ресурсы проца. https://docs.unity3d.com/Manual/Profiler.html
Цитата:
Дядя Миша писал:
Сходил по ссылке. Я резко отрицательно отношусь к визуальному программированию. Оно мозги так переформатирует, что человек не может выбраться из своего мира иллюзий.
Это да, я к тому как сам интерфейс и первое знакомство с ним организовано.__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Отправлено (_-=ZhekA=-_) 11-02-2023 в 16:18:
Цитата:
Дядя Миша писал:
Сходил по ссылке. Я резко отрицательно отношусь к визуальному программированию. Оно мозги так переформатирует, что человек не может выбраться из своего мира иллюзий.
Блюпринты в уе это самое лучшее, что вообще, когда-либо придуманное и тому, кто это придумал нужно сделать отдельный вход в рай... 
__________________
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.
http://button.moddb.com/download/medium/125531.png
Отправлено Дядя Миша 11-02-2023 в 18:27:
Цитата:
FiEctro писал:
Ресурсы проца
Приведи пример того, что может потреблять ресурсы выше погрешности.
Цитата:
(_-=ZhekA=-_) писал:
Блюпринты в уе это самое лучшее, что вообще, когда-либо придуманное
Это пока их немного. А когда счёт этих элементов идёт на сотни - крыша едет.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено FiEctro 11-02-2023 в 18:36:
Цитата:
Дядя Миша писал:
Приведи пример того, что может потреблять ресурсы выше погрешности.
Поиск, перебор и сортировка всех объектов по сцене, инстансы, обращение к их компонентам, генерация чанков, да много чего. А ты думал откуда фризы берутся
?
Цитата:
Дядя Миша писал:
Это пока их немного. А когда счёт этих элементов идёт на сотни - крыша едет.
Ты просто не знаешь что там можно делать группы 

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Отправлено (_-=ZhekA=-_) 11-02-2023 в 18:53:
Цитата:
Дядя Миша писал:
Это пока их немного. А когда счёт этих элементов идёт на сотни - крыша едет.
Там все сделано для людей и никаких проблем с этим нет
Цитата:
FiEctro писал:
Ты просто не знаешь что там можно делать группы
И не только 
__________________
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.
http://button.moddb.com/download/medium/125531.png
Отправлено Дядя Миша 12-02-2023 в 07:49:
Цитата:
FiEctro писал:
Поиск, перебор и сортировка всех объектов по сцене, инстансы, обращение к их компонентам, генерация чанков, да много чего
Поиск не должен быть линейным. Перебор один раз за кадр, возможно в отдельном потоке. Инстанцирование не должно занимать время, равно как и обращение к компонентам, насчёт чанков не понял. Какие-то надуманные проблемы, ИМХО. Да, если на уровне десятки тысяч объектов, то конечно их перебор за кадр занимает время, и с этим ничего не сделаешь. Но это приводит к общему падению фпс, а не к фризам.
Цитата:
FiEctro писал:
Ты просто не знаешь что там можно делать группы
Я просто спрашиваю, когда вы упрятали их в группу и потом этих групп становится тоже несколько сотен - легко разобраться? В твоём примере сквозной линейный вызов, а если там будет ещё десять непрямых обращений?
Добавлено 12-02-2023 в 10:49:
Фризы - это вероятно сборщик мусора просыпается.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено FiEctro 12-02-2023 в 10:10:
Цитата:
Дядя Миша писал:
Поиск не должен быть линейным. Перебор один раз за кадр, возможно в отдельном потоке. Инстанцирование не должно занимать время, равно как и обращение к компонентам, насчёт чанков не понял. Какие-то надуманные проблемы, ИМХО.
Они надуманные если ты о них уже знаешь, а человек незнакомый с движком может запутаться. Чанки как в майнкрафте, когда тебе надо обрабатывать массивы по 100х100х100 объектов
, конечно можно это делать более оптимизировано не плодя объекты, но это не сильно спасёт.
Добавлено 12-02-2023 в 13:10:
Цитата:
Дядя Миша писал:
Я просто спрашиваю, когда вы упрятали их в группу и потом этих групп становится тоже несколько сотен - легко разобраться? В твоём примере сквозной линейный вызов, а если там будет ещё десять непрямых обращений?
Группа оформляется в отдельную ноду со своими инпутами и отпутами, и ничем не отличается от вызова обычной функции. Вообще была речь не о нодах и визуальном программировании, а о том как авторы организуют первое знакомство с их системой, вот это я хотел показать.__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Отправлено (_-=ZhekA=-_) 12-02-2023 в 11:32:
Цитата:
Дядя Миша писал:
Я просто спрашиваю, когда вы упрятали их в группу и потом этих групп становится тоже несколько сотен - легко разобраться?
С этим нет проблем, так как можно коллапсить делать отдельные функции, макросы и прочее. )
На скрине справа отдельно созданные функции и переменные. Еще можно комментировать код, если что ))) То есть ты сам решаешь, как будет выглядеть твой визуальный код - нагроможденным или минималистичным. В материал едиторе тоже принты ) А вообще блюпринты это тот же С++ только оформлен визуально, эпики очень грамотно сделали, хочешь юзаешь принты, хочешь юзаешь С++, а хочешь и то и другое сразу, еще можно подключать\отключать плагины

Добавлено 12-02-2023 в 14:32:
Дядя Миша
А еще можно - писать С++ прям в нодах

__________________
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.
http://button.moddb.com/download/medium/125531.png
Отправлено Дядя Миша 12-02-2023 в 13:17:
Цитата:
FiEctro писал:
Они надуманные если ты о них уже знаешь, а человек незнакомый с движком может запутаться
Так это должно быть на нижнем уровне, а для пользователя - прозрачно.
Цитата:
FiEctro писал:
Группа оформляется в отдельную ноду со своими инпутами и отпутами, и ничем не отличается от вызова обычной функции
А с памятью как работа организована?
Цитата:
(_-=ZhekA=-_) писал:
А вообще блюпринты это тот же С++ только оформлен визуально, эпики очень грамотно сделали, хочешь юзаешь принты, хочешь юзаешь С++
Оба решения неоптимальные, скажем так. Принты - это для прототипирования. Но перед выпуском игры их рекомендуется обратить в код на С++, чтобы меньше лагало.
Цитата:
FiEctro писал:
Чанки как в майнкрафте, когда тебе надо обрабатывать массивы по 100х100х100 объектов
Почему ты привёл трёхмерный массив? Какие объекты он в себя включает?
Цитата:
FiEctro писал:
конечно можно это делать более оптимизировано не плодя объекты, но это не сильно спасёт.
Не плодя объекты - КАКИЕ?
В моём представлении объект, это нечто законченное. Ну скажем ротатабля или монстр.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено FiEctro 12-02-2023 в 13:33:
Цитата:
Дядя Миша писал:
А с памятью как работа организована?
Я не настолько силён в анриле, наверное как и в крестах. Лучше Жеку спросить.
Цитата:
Дядя Миша писал:
Оба решения неоптимальные, скажем так. Принты - это для прототипирования. Но перед выпуском игры их рекомендуется обратить в код на С++, чтобы меньше лагало.
Да прототипирование, но оно и хороший способ ознакомить пользователя с основными фишками. Но в целом я тоже считаю что в ксаше блюпринты лишние. Лучше пусть будет простой и понятный синтаксис.
Цитата:
Дядя Миша писал:
Почему ты привёл трёхмерный массив? Какие объекты он в себя включает?
Потому что в трехмерных массивах количество элементов растёт многократно. И выгрузить или переписать разом более 1 ляма элементов для проца серьёзная задача.
Цитата:
Дядя Миша писал:
Не плодя объекты - КАКИЕ?
Ну можно же сразу геометрию построить не создавая 1 лям кубиков и записывая им координаты в мировом пространстве. Но это тоже по меркам ЦП не быстро. Вообще поэкспериментируй с генерацией аля майнкрафт у себя в движке, сразу увидишь реальную производительность.
Цитата:
Дядя Миша писал:
В моём представлении объект, это нечто законченное. Ну скажем ротатабля или монстр.
Игровой объект это абстракция которая имеет координаты в мировом или локальном пространстве (ну и имя, индекс, всякие теги, слои и т.д.), по крайней мере по меркам юнити. А к нему ты уже любой скрипт привязать можешь, хоть ротатоблю, хоть монстра, хоть всё вместе, и он будет пытаться отыграть обе роли одновременно
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Отправлено (_-=ZhekA=-_) 12-02-2023 в 14:08:
Цитата:
FiEctro писал:
Да прототипирование, но оно и хороший способ ознакомить пользователя с основными фишками. Но в целом я тоже считаю что в ксаше блюпринты лишние. Лучше пусть будет простой и понятный синтаксис.
А что, например, мешает добавить два варианта и пользователь сам для себя решит, какой ему больше подходит\нравится
Дядя Миша
Блюпринты аля анрил сложно добавить?
Цитата:
Дядя Миша писал:
А с памятью как работа организована?
Примерно так же, как и на С++ как сделаешь, так и будет работать, если сделал криво, то и работать будет криво вылеты и прочая срань... 
Добавлено 12-02-2023 в 17:08:
Цитата:
Дядя Миша писал:
Оба решения неоптимальные, скажем так. Принты - это для прототипирования. Но перед выпуском игры их рекомендуется обратить в код на С++, чтобы меньше лагало.
На принтах онли можно без проблем делать игры, если руки прямые и никаких тормозов не будет 
__________________
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.
http://button.moddb.com/download/medium/125531.png
Отправлено Дядя Миша 12-02-2023 в 14:14:
Цитата:
FiEctro писал:
Я не настолько силён в анриле, наверное как и в крестах
Ну я имею в виду - на уровне пользователя. Допустим ты там захотел кое-что сохранить. Ты создаёшь еще один какой-то объект, или может глобальную переменную или выделяешь память?
Цитата:
FiEctro писал:
Потому что в трехмерных массивах количество элементов растёт многократно
Я спрашивал про конкретный пример такой необходимости. Что это за игра со стеком объектом из 100х100х100? Ну явно не майнкрафт, там объектов на порядок больше. С другой стороны - маловероятно, чтобы на типичном игровом движке можно было бы сделать майнкрафт, он на такое не рассчитан.
Цитата:
FiEctro писал:
Ну можно же сразу геометрию построить не создавая 1 лям кубиков и записывая им координаты в мировом пространстве
Нет, подожди. Мы говорили про объекты. С чего ты вдруг перескочил на геометрию?
Цитата:
FiEctro писал:
Вообще поэкспериментируй с генерацией аля майнкрафт у себя в движке, сразу увидишь реальную производительность.
Даже простой перебор массива из миллиарда элементов, это ОЧЕНЬ-ОЧЕНЬ долго. Вот это:
C++ Source Code:
for( int i = 0; i < UINT_MAX; i++ ); |
Работает четыре секунды на Core i3. Безо всякого движка. Ты я вижу узнал какие-то удивительные для себя вещи и теперь хочешь со мной ими поделиться?
Цитата:
FiEctro писал:
Игровой объект это абстракция которая имеет координаты в мировом или локальном пространстве
Ну нет. Игровой объект - это сугубая конкретика, которую мы частично может представить абстракцией. То есть func_button можно выполнять роль двери, а не только кнопки. А Monster_barney - необязательно имеет модельку barney, это в принципе может быть любой дружественный персонаж. Если мы не хотим писать для него отдельный класс, а хотим заменить только его наборы реплик и модельку. Теоретически это вообще может быть monster_generic, у которого настраивается абсолютно всё.
Но практика показала что это дико неудобно дизайнеру. Когда у него громадный лист из monster_generic и вообще непонятно какой из них кто.
Цитата:
FiEctro писал:
А к нему ты уже любой скрипт привязать можешь, хоть ротатоблю, хоть монстра, хоть всё вместе, и он будет пытаться отыграть обе роли одновременно
И в итоге нормально не отыграет ни одну. Я конечно не знаю, может быть есть зубры кодинга на юнити, но как правило там очень примитивные и глючные объекты - те, которые делали сами разработчики.
Добавлено 12-02-2023 в 17:14:
Цитата:
(_-=ZhekA=-_) писал:
А что, например, мешает добавить два варианта и пользователь сам для себя решит, какой ему больше подходит\нравится
Сама практика использования С++ для игровых объектов - неверная. Так быть не должно. Если бы блюпринты были отдельным языком, я бы сказал что это круто. Но это большей частью визуал в редакторе и надстройка над препроцессором С++. Я изучал их устройство. Не могу сказать что мне это понравилось. Эпики свой UnrealScript к четвертой версии довели до полного непотребства, я как-то разбирал во что он превратился. Поняли, что дальше так нельзя и замуитили вот эти БлуПринты.
Цитата:
(_-=ZhekA=-_) писал:
Блюпринты аля анрил сложно добавить?
Но у меня не предусмотрена компиляция в С++.
Цитата:
(_-=ZhekA=-_) писал:
если сделал криво, то и работать будет криво вылеты и прочая срань...
Блюпринты вылетают в винду? 
Цитата:
(_-=ZhekA=-_) писал:
На принтах онли можно без проблем делать игры
Кстати. Ты же свою игру доделал?__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено (_-=ZhekA=-_) 12-02-2023 в 14:29:
Цитата:
Дядя Миша писал:
Но у меня не предусмотрена компиляция в С++.
Ну, и не имел ввиду прям копию делать, а чтобы принцип был, как а анриле примерно, но использовался твой язык )
Цитата:
Дядя Миша писал:
Блюпринты вылетают в винду?
Да, могут, например, если сделать бесконечный цикл или еще, как-нибудь накосячить тебе в редакторе выскочит ошибка, но если собрать проект, то будет вылет )
Цитата:
Дядя Миша писал:
Кстати. Ты же свою игру доделал?
Да, делал, она пока стоит на паузе, но я сделал две разные проги конфигураторов на анриле на принтах 
__________________
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.
http://button.moddb.com/download/medium/125531.png