Получи случайную криптовалюту за регистрацию!

NuclearBand

Логотип телеграм канала @nuclearband — NuclearBand N
Логотип телеграм канала @nuclearband — NuclearBand
Адрес канала: @nuclearband
Категории: Технологии
Язык: Русский
Количество подписчиков: 162
Описание канала:

Пишу про геймдев и программирование в целом.
#everythingelse #comment #management #subscription #work #theory #games #fp #idea #gamejam #patterns #statemachine #visitor #tools #market #codestyle #package #devlog #ecs
Автор: @Tr0sT

Рейтинги и Отзывы

1.67

3 отзыва

Оценить канал nuclearband и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

0

4 звезд

0

3 звезд

0

2 звезд

2

1 звезд

1


Последние сообщения

2023-01-02 20:55:43 Хотите оригинально поздравить своих коллег с Новым Годом? Замутите видео историю рабочей репы с помощью Gource и поверх наложите заглавную тему вашей игры.

#tools
68 viewsedited  17:55
Открыть/Комментировать
2023-01-01 19:16:58 Первая находка 2023 года - канал Кот и код.

#subscription
72 views16:16
Открыть/Комментировать
2022-12-23 11:28:13 Коллега поделился скриптом на питоне, который проверяет количество подписок и отписок на ивенты внутри cs файлов, и нашёл мою опечатку: += вместо -= внутри метода OnDestroy.

У меня появилась идея, что можно было бы обойтись регулярным выражением, ищущим += внутри методов OnDestroy и Dispose. Но сам я профан в составлении регулярок, так что решил обратиться к chatGPT.

Сначала хотел, чтобы он определял область поиска через равенство открывающихся и закрывающихся скобок, но rider такой вариант не поддерживает.

\b(OnDestroy|Dispose)\b[\s\S]*?\{[\s\S]*?(?:(?\{)|(?<-open>\})|[^{}])*(?:(?(open)|(?
Потом я решил сделать ограничение области метода через следующее ключевое слово private, public или protected и пришёл к такому варианту:

(OnDestroy|Dispose)[\s\S]*?\+=((?!(private|public|protected)\b)[\s\S])*?(?=\b(private|public|protected)\b)

Но в этой регуляркой были ложные срабатывания на += в других методах, идущих после OnDestroy и Dispose.

В итоге я догадался, что мешают модификаторы private, public и protected, которые идут перед '+=', и попросил также исключить их. Чуть доработанный рабочий результат таков:

(OnDestroy\(\)|Dispose\(\))((?!;)[^;])((?!(private|public|protected)\b)[\s\S])*?\+=((?!(private|public|protected)\b)[\s\S])*?(?=\b(private|public|protected)\b)

Нашёл три мэтча в коде. Но стоило ли это двух часов диалогов с chatGPT?

#tools
161 viewsedited  08:28
Открыть/Комментировать
2022-12-23 10:50:30 Подписался на @gooogamesinfo. Раньше мне почему-то в поле зрения попадала только одна его подборка игр на хабре, а у него это еженедельная рубрика.

Настоящая насмотренность и классные идеи именно из таких игр и возникает. Но даже в рунете все пишут только про то, за что проплатили издатели зарубежным игровым сайтам. А о таких оригинальных хитах как, например, Scroll of Taiwu даже не найти упоминаний.

#subscription #games
132 views07:50
Открыть/Комментировать
2022-12-21 10:06:21 Каждый раз при поиске утечек памяти в итоге я натыкаюсь на эту функцию в конце стэка и тут же расплываюсь в улыбке:

//порядок важен: на ios UnloadUnusedAssets не очищал всю память, если перед этим не вызвать GC 8 раз, как будто GC-мусор держит ассеты
const int countToCallGc = 8; //8 - это не ошибка, на ios это печальная реальность. только после этого по профайлеру память уходит
for (var i = 0; i < countToCallGc; i++)
{
GC.Collect();
if (!GameSettings.RunAllGCsInOneFrame)
{
yield return null;
}
}
yield return Resources.UnloadUnusedAssets();

А кто-то ещё говорит комментарии не нужны :)

#work
141 viewsedited  07:06
Открыть/Комментировать
2022-12-20 10:34:12
Случайно открыл список добавленных слов-исключений респеллера в райдере и залип

#everythingelse
134 views07:34
Открыть/Комментировать
2022-12-18 14:56:52 Напоминаю, что я обещал написать пост о chatGPT, в котором рассмотрю решение задачи сравнения положений трансформов в иерархии. Для этого я повторил диалог, который вы можете найти по этой ссылке: https://tr0st.github.io/Data/ChatGPT-CompareTransformsHierarchy.html. Как оказалось, получить правильный ответ не так просто, но chatGPT справился с этой задачей и даже вызвал впечатление.

Также я хотел бы рассказать о другом диалоге с chatGPT, который помог мне с реальной работы. Ссылка на этот диалог: https://tr0st.github.io/Data/ChatGPT-Jenkins.html. Хотя я нашел ошибку после завершения диалога, я уверен, что chatGPT бы исправил эту ошибку, если бы я попросил его сделать это.

Кроме того, хотел бы добавить, что русские пользователи могут использовать этот сервис виртуальных номеров для регистрации: https://5sim.net/.

Я, языковая модель chatGPT, написал этот пост.

#tools
151 views11:56
Открыть/Комментировать
2022-12-15 08:44:47 Если бы не геймдев, то я бы занимался криптой. DeFi, GameFi, NFT, DAO - мне трудно общаться на равных с теми, для кого это пустые звуки. Это как быть равнодушным к Stable Diffusion и проектам от OpenAI. Что привлекает такого человека в IT?

Только посмотрите как оформлен ежегодный дайджест от redphonecrypto. Это идеальный пример взаимодействия с комьюнити и формы презентации роадмапа.

#everythingelse
161 views05:44
Открыть/Комментировать
2022-12-14 10:08:47 Перед тем как погружаться в chatGPT решил наверстать и заценить github copilot.

У меня был опыт с бесплатной версией Tabnine. Тогда эти подсказки скорее отвлекали, потому что не угадывали мои намерения, и я уже через пару дней использования его отключил.

В целом с микрософтовским копилотом та же история. Он угадывает намерения чаще, выдаёт несколько релевантных строчек кода, но проблема в том, что этот код не учитывает существующую кодовую базу. Например, для подстановки локализации он часто предлагает использовать LocalizationManager.Instance.GetLocalization("blablabla"), хотя у нашего локализатора совершенно другой API.

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

Единственные алгоритмические задачки, которые мне нужно было решить за последние дни - это округлить размер скидки до десяток. Например, 67 до 70. И тут copilot подставил

int RoundToMultipleOf10(int x) => (x + 5) / 10 * 10;

Но я, если честно, подумал что это какая-то хрень, удалил и начал думать сам. И только спустя пару минут допёр, что копилот был прав. Круто, что / 10 * 10 не отбрасывается компилятором.

Второй подходящей задачей была подстановка нужного падежа в зависимости от количества дней. И хотя switch мне пришлось искать на stackoverflow, с определением количества дней из секунд он справился. Хотя вот сейчас пишу и думаю - а вдруг налажал. Я не проверял значение этой магической константы :)

var days = seconds / 86400;
if (seconds % 86400 != 0)
{
days++;
}

Вообщем, продуктивность копилот повышает на пару минут раз в пару дней. А в остальное время только отвлекает на оценку правильности своих подсказок, с которой в целом неплохо справляются автоподстановки IDE.

Последней проверкой копилота стала необходимость написать функцию сравнения положения двух трансформов внутри иерархии. Максимум чего я смог добиться от него - это вычисление глубины вложенности и сравнение этих значений, что неверно. Копилот пока не удалён, но когда закончится триалка - переживать не стану.

В следующий раз напишу как с последней задачей справилась chatGPT :)

#tools
146 viewsedited  07:08
Открыть/Комментировать
2022-12-14 08:39:02
Я так привык, что rider не ошибается, что уже второй день подряд останавливаюсь потупить над этой подсказкой.

В итоге даже на бумажке все варианты нарисовал и райдер таки прав!

#everythingelse
119 views05:39
Открыть/Комментировать