Дядя Миша, я конечно во многом согласен, но есть и security аспект. Для singleplayer он разумеется не сильно актуален, но для multiplayer очень даже. Да и в случае с singleplayer пользователь может скачать ресурсы со стороннего сайта, а там окажется эксплойт в модельке/звуке.
Например, скачиваешь модельку - а там моделька Путина.
А вместо привычного "Go! Go! Go!" звучит "Нам не оставили выбора".
В отдельных случаях, как ты понимаешь, это может тяжело травмировать психику. Админ психанёт и выключит сервер. А хакеру того и надо было.
Ничего себе! Нам надо срочно нейросеть, которая будет анализировать контент и подменять женские соски на мужские! А модельку Путина на модельку Брежнева.
Новостей никаких не пишу, к сожалению, ну тут как обычно. Чем фундаментальнее и масштабнее работа - тем меньше чего-то осмысленного можно сказать аудитории по этому поводу. Фундаментальные вещи, они или есть или нет. А как продвигается над ними работа никого не интересует.
Чаще всего в таких случаях просто берут готовую библиотеку и не парятся.
Ну вот как в Юнити однажды взяли C# который для игр абсолютно не годится и уже 15 лет с ним вооют. Я так не хочу, поэтому создаю собственный скриптовой язык, ну об этом вы знаете. Так же будет собственная библиотека оконного менеджера, написанная прямо на этом языке.
Фишка в том, что она сможет подгружать оконные формы из текстовых описаний, а значит визуальное оформление можно будет менять на лету без перекомпиляции. Это относится к будущему редактору. Сам же язык будет использоваться и для описания игровых объектов тоже. Ну и не только для них, для игрового меню, для клиентской библиотеки. Вобщем для всего того, для чего вам раньше требовался С++ и необходимость устанавливать студию. В идеале получится среда, которой не требуются никакие внешние инструменты для работы. Самое главное в данном случае - возможность гибкого расширения, т.к. изначально всё предусмотреть невозможно.
Написание фундаментальных вещей занимает больше всего времени к сожалению, поэтому работа идёт небыстро. Но зато это последние две фундаментальные вещи, которых не хватало движке - свой собственный язык программирования и библиотека окошек. А потом наконец-то будет первая юзабальная версия и регулярные обновления.
Добавлено 28-06-2022 в 10:10:
Скрытый текст:
Этот текст скрытый. Вы должны оставить хотя бы одно сообщение в теме, чтобы его увидеть.
Добавлено 28-06-2022 в 10:17:
Ну и если хотите какого-то оживления в этой теме, пока нет официальных новостей - задавайте вопросы сами.
Дядя Миша писал: В идеале получится среда, которой не требуются никакие внешние инструменты для работы
Какие будут инструменты для отладки?
Цитата:
Дядя Миша писал: Ну вот как в Юнити однажды взяли C# который для игр абсолютно не годится и уже 15 лет с ним вооют. Я так не хочу, поэтому создаю собственный скриптовой язык, ну об этом вы знаете. Так же будет собственная библиотека оконного менеджера, написанная прямо на этом языке.
А чем он не годится? Куда проще и удобнее чем обычные кресты. Плюс собирается под все возможные платформы. Раньше вообще Жаба шкрипт был. А сейчас вроде как ещё обещают Питон завезти, правда я не знаю зачем такое обилие языков для одного движка. Но с другой стороны, а какая разница чем вызывать движковые функции?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал: Какие будут инструменты для отладки?
Для отладки чего именно?
Цитата:
FiEctro писал: Куда проще и удобнее чем обычные кресты
Скорее наоборот - очень запутанный и негибкий язык. Если бы он полностью удовлетворял всем условиям - его бы не обновляли каждый год.
В тех же крестах, например, можно спокойно писать на редакции языка 98-го года и вообще не испытывать никаких неудобств. Всё необходимое там есть. В Шарпе наоборот - до какой-то версии им было очень проблематично пользоваться.
Цитата:
FiEctro писал: Но с другой стороны, а какая разница чем вызывать движковые функции?
Ну вот если разницы бы не было - к чему такая суета вокруг языков и их версий? Не всё так просто.
На мой взгляд кресты пугают новичков не своим синтаксисом, который как раз удобный и логичный, а скорее близостью к железу, на этом языке невозможно писать, не зная что у тебя в итоге там получится.
На шарпе наоборот - чтобы ты ни написал, оно будет работать, а то что медленно и памяти много жрёт - ну просто купите себе компьютер побольше.
Написанных скриптов. Ну вот накосячил юзверь в коде, и не знает где ошибка, что ему делать? В юнити можно даже посмотреть какой объект или скрипт сколько жрёт памяти и тактов процессора.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
За Шарп вот какая любопытная вещь прослеживается. Его версию в Unity периодически обновляют, но на самом деле это довольно небыстрый процесс. Может и год пройти, пока обновят. То есть просто нельзя взять и скачать новый рантайм, надо что-то менять в коде самого Юнити. А почему так происходит? Ну очевидно потому что в самом шарпе опять вообще всё переделали, чтобы он стал только лучше от этого. Значит старые версии говном были? И так - из года в год.
Добавлено 28-06-2022 в 11:48:
Цитата:
FiEctro писал: Написанных скриптов. Ну вот накосячил юзверь в коде, и не знает где ошибка, что ему делать?
Отладчик встроенн прямо в язык, показывает всё, как студия. С номером строчки и именем исходного файла.
Добавлено 28-06-2022 в 11:49:
Цитата:
FiEctro писал: В юнити можно даже посмотреть какой объект или скрипт сколько жрёт памяти и тактов процессора.
Дядя Миша писал: За Шарп вот какая любопытная вещь прослеживается. Его версию в Unity периодически обновляют, но на самом деле это довольно небыстрый процесс. Может и год пройти, пока обновят. То есть просто нельзя взять и скачать новый рантайм, надо что-то менять в коде самого Юнити. А почему так происходит?
Сам задаюсь этим вопросом, обычно старый апи они объявляют как deprecated, но по сути он там так и остаётся навсегда. Сейчас у юнити новая заморочка - выносить части движка в отдельные модули, которые уже не будут предустановлены изкаропки, и их можно будет отдельно бесплатно скачать и установить через менеджер пакетов.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Есть поучительный пример с Valve. Которая очень долго использовала Havok, но в итоге для Source3 написали свой собственный физический движок.
Хотя я лично про Havok ничего плохого сказать не могу, да и вообще не помню, чтобы на него кто-то ругался. Но вот, рассудили, что свой всё равно лучше будет. И это совершенно правильная тенденция. Никогда не возможно чужие либы друг с другом совместить идеальным образом.
Добавлено 28-06-2022 в 11:59:
Кстати, с JavaScript точно такая же шляпа прослеживается. Как-то KIQ давал свой движок потестить, так я скачал наверное штук 15 рантаймов, прежде чем нашёл тот, с которым он заработал. Ну и что в этом хорошего?
Дядя Миша писал: Кстати, с JavaScript точно такая же шляпа прослеживается. Как-то KIQ давал свой движок потестить, так я скачал наверное штук 15 рантаймов, прежде чем нашёл тот, с которым он заработал. Ну и что в этом хорошего?
Это мне напомнило как я собирал одну прогу на Делфях, там такая же беда. Причем оно работало только если установить в папку рабочего стола, а в остальных других местах кукиш.
Цитата:
Дядя Миша писал: Отладчик встроенн прямо в язык, показывает всё, как студия. С номером строчки и именем исходного файла.
И что в нужный такт находится в памяти тоже?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
STOREP_S: memory[4445748]->string( 'Test' ) = stack[56]( text 'Test' );
18
GOTO: jump from 24 to 27;
19
RETURN: void;
Уж не знаю, насколько это будет для вас информативно.
Добавлено 28-06-2022 в 12:29:
Оно тут показывает совершаемые операции, названия переменных, содержимое переменных, их адреса и какая память используется - стек, глобальная, объекты. Ну подробнее с опкодами навряд ли возможно.
Добавлено 28-06-2022 в 13:59:
Для конкретных объектов так же можно будет полностью вывести их содержимое, в соответствии с типами членов. Ну то есть для оригина вывести позицию, для таргета - имя, итогдалие.
Но это умела еще машинка первой кваки и ничего особенного тут нет.
Виртуальные машины именно за этим и заводят.
Добавлено 28-06-2022 в 14:05:
Кстати. Не помню уж где, то ли на хабре, но вычитал что в Юнити нет никаких стандартных методов поиска объектов в трёхмерном пространстве в заданном радиусе. Вот просто нету и всё. Причём там же в каментах приводили в пример Сорс, вот мол посмотрите - там и то есть такой поиск, а в Юнити - нету. Хотя этот поиск наличествовал еще в первом Квейке.
Мне как-то странно такое читать. Действительно его нет в Юнити?
Дядя Миша писал: Кстати. Не помню уж где, то ли на хабре, но вычитал что в Юнити нет никаких стандартных методов поиска объектов в трёхмерном пространстве в заданном радиусе.
В юнити такие вещи предполагается делать через колайдер - триггер, либо через сферкаст. Я подобным образом например для игрока нормали на поверхности перебираю. Может ещё какие нибудь методы есть, не знаю, не углублялся так далеко. Но вообще в Юнити перебор объектов и их компонентов в реальном времени довольно тяжелая операция по ЦПУ таймингу, и для ПК она в целом ок, но вот мобильные процы просаживаются по фпс.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал: В юнити такие вещи предполагается делать через колайдер - триггер, либо через сферкаст
Но ведь этот коллайдер не увидит точечные логические энтити, например, хотя в Юнити помоему такого и так нету. Там любой объект непременно должен иметь какую-то модель.
Да и само обращение к физическому движку ради простого перечисления объектов довольно тяжелая операция, особенно если за кадр надо это делать много раз. В кваке проще - там регулярная сетка AABB-дерева, в которой пространственный поиск весьма быстр. Я подобную сетку даже для рассчётов радиосити использую и она справляется лучше, чем например BSP-дерево в аналогичной ситуации.