Рынок джунов умрет из-за таких читеров. И мидлов частично. Проблема вайбкодеров не в том, что они пишут работающий код, который сами не понимают. А в том что в этом процессе они не обучаются. Если сеньор почти всё будет писать GPT-шками, но будет понимать что и зачем он делает, я буду готов платить ему зарплату сеньора. У меня нет любви к ручному труду других людей, и пофиг код "ручной работы" или сгенерированный. В бизнесе есть такое понятие как управление рисками. И ответственностью. Если я знаю что я как техдир могу не вникать в то, что происходит и человек отвечает за работоспособность системы, и в случае кризисов справится. Пиши код как хочешь. Но вот как решится проблема того, что сейчас на рынке и на удаленке будет куча вайбкодеров получать зарплату не обучаясь разработке совсем. Я не представляю. И зная мышление бизнеса видимо нас ждет новый вид бизнеса. Будут команды которые будут заниматься кризис менеджментом проектов. Некий сервисный центр кода других компаний, где сидят махровые технари, которые могут решить любую проблему. Так же пользуюясь всеми благами человечества, но с мозгами.
В общем в любопытное время мы живем. А такие Димы конечно в большом смысле этого слова вредители не осознающие какой вред они наносят индустрии. Но индустрия адаптируется это то, в чём я уверен. Поэтому если вы начинающий вайбкодер или обучаетесь разработке. Читайте что пишет нейросеть и допрашивайте почему она так пишет. Это турбо ветка обучения, так как дайте мне 7 лет назад такой инструмент который мне объяснит что написано в публичном репозитории даже, и я бы не учил шейдеры и рендер разработку практически методом тыка. Но человеческая жадность и лень скорее приведут к тому, что люди не учась просто будут говорить "работает же".
#новости #мнение
В общем в любопытное время мы живем. А такие Димы конечно в большом смысле этого слова вредители не осознающие какой вред они наносят индустрии. Но индустрия адаптируется это то, в чём я уверен. Поэтому если вы начинающий вайбкодер или обучаетесь разработке. Читайте что пишет нейросеть и допрашивайте почему она так пишет. Это турбо ветка обучения, так как дайте мне 7 лет назад такой инструмент который мне объяснит что написано в публичном репозитории даже, и я бы не учил шейдеры и рендер разработку практически методом тыка. Но человеческая жадность и лень скорее приведут к тому, что люди не учась просто будут говорить "работает же".
#новости #мнение
🔥17
Задачка - Математика для шейдеров
Вы хотите нарисовать круг в шейдере. У вас есть UV координаты (0,0 в углу, 1,1 в противоположном). Центр круга в (0.5, 0.5), радиус 0.3.
Напишите формулу (одну строку HLSL) которая вернёт 1.0 внутри круга и 0.0 снаружи.
Ответ завтра :) И давайте наберем сюда🔥
#разминка #шейдеры #математика
Вы хотите нарисовать круг в шейдере. У вас есть UV координаты (0,0 в углу, 1,1 в противоположном). Центр круга в (0.5, 0.5), радиус 0.3.
Напишите формулу (одну строку HLSL) которая вернёт 1.0 внутри круга и 0.0 снаружи.
Ответ завтра :) И давайте наберем сюда
#разминка #шейдеры #математика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥29
Ответ - Математика для шейдеров
length(uv - 0.5) — расстояние от текущего пикселя до центра. s
tep(a, b) возвращает 1 если b >= a, и 0 если b < a.
Значит step(length(...), 0.3) вернёт 1 когда 0.3 >= distance — то есть внутри круга. Именно то что нужно.
Альтернативная запись которая читается интуитивнее:
Здесь step(0.3, length(...)) = 1 снаружи, инвертируем — получаем 1 внутри. Оба варианта правильные, первый короче.
Порядок аргументов step — самая частая ошибка в шейдерах. Буквально каждый раз приходится останавливаться и думать 🙂 Решение не единственное, но это довольно компактное.
#разминка #шейдеры #математика
float circle = step(length(uv - 0.5), 0.3);length(uv - 0.5) — расстояние от текущего пикселя до центра. s
tep(a, b) возвращает 1 если b >= a, и 0 если b < a.
Значит step(length(...), 0.3) вернёт 1 когда 0.3 >= distance — то есть внутри круга. Именно то что нужно.
Альтернативная запись которая читается интуитивнее:
float circle = 1.0 - step(0.3, length(uv - 0.5));Здесь step(0.3, length(...)) = 1 снаружи, инвертируем — получаем 1 внутри. Оба варианта правильные, первый короче.
Порядок аргументов step — самая частая ошибка в шейдерах. Буквально каждый раз приходится останавливаться и думать 🙂 Решение не единственное, но это довольно компактное.
#разминка #шейдеры #математика
🔥10 2
This media is not supported in your browser
VIEW IN TELEGRAM
Красивое стекло в Unity
https://www.reddit.com/r/Unity3D/comments/1rli0mu/working_on_a_glass_shader_with_beautiful_and_fast/
Шейдер стекла от MirzaBeig. Автор работает над хроматической дисперсией. Что мне нравится — можно потыкать прямо в браузере.
Отдельно интересно что автор выложил весь R&D публично, включая то как делать быстрые realtime-блюры. Это редкость. Почитать стоит независимо от того нужен ли вам именно шейдер стекла.
#новости
https://www.reddit.com/r/Unity3D/comments/1rli0mu/working_on_a_glass_shader_with_beautiful_and_fast/
Шейдер стекла от MirzaBeig. Автор работает над хроматической дисперсией. Что мне нравится — можно потыкать прямо в браузере.
Отдельно интересно что автор выложил весь R&D публично, включая то как делать быстрые realtime-блюры. Это редкость. Почитать стоит независимо от того нужен ли вам именно шейдер стекла.
#новости
🔥11
Опиши свою логику правки Х
Ковряю ии агентов и по сути самым полезным для меня читать как он думает. Спойлер далеко не всегда верно. На самом деле если понаблюдать как нейросеть решает задачу это похоже на логику программиста. Но сложно объяснить сколько мелкого контекста в работе мы держим в голове.
Мне нужно было поправить один довольно мелкий баг. И обычным текстом нейросеть не справилась. Но зато когда я сказал ей объяснить "а чё ты вообще делаешь и как по твоему работает код - объясни", то условно поняв ход рассуждений я его скореектировал и правка внесена. Прям как работа с джуном на самом деле. Вроде мысли то есть, и логика присутствует, просто из-за того что задача многофакторная, проект не самый простой и так далее - мысли не верные. Но если дать "подсказку", то уже дальше она как-то догадается.
Недавно в одном рилсе услышал хорошую фразу. Все ИИ агенты это по сути не инструменты разработки, а инструменты кодогенерации. И именно поэтому для сеньора+ это просто нереально острая катана, которой он может красиво управлять. А менеджер с такой катаной зарежет и соседей и самого себя.
#мнение
Ковряю ии агентов и по сути самым полезным для меня читать как он думает. Спойлер далеко не всегда верно. На самом деле если понаблюдать как нейросеть решает задачу это похоже на логику программиста. Но сложно объяснить сколько мелкого контекста в работе мы держим в голове.
Мне нужно было поправить один довольно мелкий баг. И обычным текстом нейросеть не справилась. Но зато когда я сказал ей объяснить "а чё ты вообще делаешь и как по твоему работает код - объясни", то условно поняв ход рассуждений я его скореектировал и правка внесена. Прям как работа с джуном на самом деле. Вроде мысли то есть, и логика присутствует, просто из-за того что задача многофакторная, проект не самый простой и так далее - мысли не верные. Но если дать "подсказку", то уже дальше она как-то догадается.
Недавно в одном рилсе услышал хорошую фразу. Все ИИ агенты это по сути не инструменты разработки, а инструменты кодогенерации. И именно поэтому для сеньора+ это просто нереально острая катана, которой он может красиво управлять. А менеджер с такой катаной зарежет и соседей и самого себя.
#мнение
🔥18
Про цифры в игровой индустрии: Деньги, которые вы тратите ещё до первой строчки кода
Продолжаю серию. В прошлых постах разбирали куда деваются деньги с продаж и почему ваше время не бесплатное. Сегодня про деньги, которые утекают ещё до того как проект начат — на найме.
Допустим вы студия. Нашли хорошего технического художника. Он живёт в другой стране. И тут начинается.
Юридическая консультация чтобы правильно оформить договор с иностранным подрядчиком — от 5 000 до 20 000 рублей. Одной. А договоров у вас не один.
Банковские переводы: SWIFT в среднем стоит 30–50$. Плюс конвертация по невыгодному курсу, как разбирали в прошлом посте. На команду из 5 человек — это ещё 150–250$ в месяц просто за факт перевода денег.
Передача прав: и это отдельная история. Без правильно оформленных документов о передаче имущественных и авторских прав — юридически они остаются у фрилансера. Не у студии. Это не очевидно, но именно так работает законодательство. И это не только про иностранцев — судов с фрилансерами по правам на результат работы даже внутри РФ было достаточно. Причём фрилансерам стоит это знать в свою пользу: если договора нет или он составлен криво — права на вашу работу остаются у вас.
Итого скрытый overhead на одного иностранного подрядчика в год: грубо 1 000–2 000$ просто на административку. Для команды в 5–7 человек — 5 000–14 000$ в год только за то, чтобы людям платить.
И это не только инди-история. В средних студиях та же проблема, просто масштаб больше и цена ошибки выше.
Есть разные сервисы которые берут этот кусок на себя — например Arbonum: договоры, выплаты, передача прав. По сути превращает скрытый overhead в понятную строчку бюджета.
Если набираем 70 🔥 — следующий пост про то как считать реальную стоимость разработчика с учётом всех накладных. Там тоже есть неочевидные цифры. Или как я в первый раз разорилися.
#мысли #бизнес #цифры
Продолжаю серию. В прошлых постах разбирали куда деваются деньги с продаж и почему ваше время не бесплатное. Сегодня про деньги, которые утекают ещё до того как проект начат — на найме.
Допустим вы студия. Нашли хорошего технического художника. Он живёт в другой стране. И тут начинается.
Юридическая консультация чтобы правильно оформить договор с иностранным подрядчиком — от 5 000 до 20 000 рублей. Одной. А договоров у вас не один.
Банковские переводы: SWIFT в среднем стоит 30–50$. Плюс конвертация по невыгодному курсу, как разбирали в прошлом посте. На команду из 5 человек — это ещё 150–250$ в месяц просто за факт перевода денег.
Передача прав: и это отдельная история. Без правильно оформленных документов о передаче имущественных и авторских прав — юридически они остаются у фрилансера. Не у студии. Это не очевидно, но именно так работает законодательство. И это не только про иностранцев — судов с фрилансерами по правам на результат работы даже внутри РФ было достаточно. Причём фрилансерам стоит это знать в свою пользу: если договора нет или он составлен криво — права на вашу работу остаются у вас.
Итого скрытый overhead на одного иностранного подрядчика в год: грубо 1 000–2 000$ просто на административку. Для команды в 5–7 человек — 5 000–14 000$ в год только за то, чтобы людям платить.
И это не только инди-история. В средних студиях та же проблема, просто масштаб больше и цена ошибки выше.
Есть разные сервисы которые берут этот кусок на себя — например Arbonum: договоры, выплаты, передача прав. По сути превращает скрытый overhead в понятную строчку бюджета.
Если набираем 70 🔥 — следующий пост про то как считать реальную стоимость разработчика с учётом всех накладных. Там тоже есть неочевидные цифры. Или как я в первый раз разорилися.
#мысли #бизнес #цифры
🔥51😁1
Питон знать конечно теперь ещё важнее
Я всегда продвигал идею о том что Python нужно знать всем. Не на продакшен уровне понимания языка, а чтобы уметь написать простой скрипт, запустить его и чет в нем отредачить. И сейчас этот навык как никогда полезен кстати. И вот почему.
Я продолжаю ковырять Claude и как же он медленно думает над какими-то простыми вопросами на самом деле. Многие "повторяющиеся" операции, которые можно автоматизировать скриптами (особенно в контексте Unity), он не автоматизирует, а будто решает заново. И тут нам на помощь приходит питон. Чтобы не ждать пока Claude почешет репу, всегда для задач у которых есть какое-то периодическое применение просишь его "а выгрузи мне python скрипт" который делает задачу. А не описание самой задачи.
Пока по моему наблюдение конечно он не умеет главное что хотелось бы автоматизировать и будто бы можно - это верстать в Unity. Но может просто я не разобрался как. Так как пытался я дважды в мелких задачках им верстать и собирал он какую-то чушь, даже когда ему подробно объяснишь что от него хочется.
#мысли
Я всегда продвигал идею о том что Python нужно знать всем. Не на продакшен уровне понимания языка, а чтобы уметь написать простой скрипт, запустить его и чет в нем отредачить. И сейчас этот навык как никогда полезен кстати. И вот почему.
Я продолжаю ковырять Claude и как же он медленно думает над какими-то простыми вопросами на самом деле. Многие "повторяющиеся" операции, которые можно автоматизировать скриптами (особенно в контексте Unity), он не автоматизирует, а будто решает заново. И тут нам на помощь приходит питон. Чтобы не ждать пока Claude почешет репу, всегда для задач у которых есть какое-то периодическое применение просишь его "а выгрузи мне python скрипт" который делает задачу. А не описание самой задачи.
Пока по моему наблюдение конечно он не умеет главное что хотелось бы автоматизировать и будто бы можно - это верстать в Unity. Но может просто я не разобрался как. Так как пытался я дважды в мелких задачках им верстать и собирал он какую-то чушь, даже когда ему подробно объяснишь что от него хочется.
#мысли
🔥4🤷♂1❤🔥1
ИИ не заберёт вашу работу. Но кое-что изменит
Как технический продюсер я нанимаю беру людей на проекты. И за последний год что-то сдвинулось.
Раньше джун это был человек которому надо объяснять синтаксис, ждать пока разберётся с документацией, принимать код который надо переписывать. Сейчас джун с Cursor или Copilot закрывает задачи которые раньше требовали мидла. Это не значит что он стал мидлом — он не понимает почему код работает. Но задача закрыта.
Для студий это значит одно: спрос на джунов падает. Зачем брать человека на обучение если ИИ делает ту же механику за час?
Но вот что интересно. Спрос на людей которые умеют правильно поставить задачу — вырос. Архитектурное решение, код ревью, понимание почему вот это решение сломается через месяц, вопросов безопасности — это то что ИИ пока не закрывает. Потому что для этого нужен контекст всего проекта, а не одного файла. Но даже когда он начнёт грузить проект целиком, многие недооценивают сколько неочевидного контекста разработчик держит просто в голове.
Парадокс в том что ИИ сделал дешёвыми именно те навыки за которые джуны конкурировали. И одновременно сделал дороже то за что конкурировали сеньоры. Рост сеньоров станет медленнее, так как будет целая тонна код манки. Бизнес за этим погонится так же, как и он гонится обычно. Сколько "прототипов на выкинуть" стали развивать в продашкен решения потому что сроки горят и нужно срочно запускаться.
Так что если вы только начинаете — учитесь не писать код, а понимать системы. ИИ напишет. Вопрос в том кто будет решать что писать и что написано хорошо.
#мнение #карьера #геймдев
Как технический продюсер я нанимаю беру людей на проекты. И за последний год что-то сдвинулось.
Раньше джун это был человек которому надо объяснять синтаксис, ждать пока разберётся с документацией, принимать код который надо переписывать. Сейчас джун с Cursor или Copilot закрывает задачи которые раньше требовали мидла. Это не значит что он стал мидлом — он не понимает почему код работает. Но задача закрыта.
Для студий это значит одно: спрос на джунов падает. Зачем брать человека на обучение если ИИ делает ту же механику за час?
Но вот что интересно. Спрос на людей которые умеют правильно поставить задачу — вырос. Архитектурное решение, код ревью, понимание почему вот это решение сломается через месяц, вопросов безопасности — это то что ИИ пока не закрывает. Потому что для этого нужен контекст всего проекта, а не одного файла. Но даже когда он начнёт грузить проект целиком, многие недооценивают сколько неочевидного контекста разработчик держит просто в голове.
Парадокс в том что ИИ сделал дешёвыми именно те навыки за которые джуны конкурировали. И одновременно сделал дороже то за что конкурировали сеньоры. Рост сеньоров станет медленнее, так как будет целая тонна код манки. Бизнес за этим погонится так же, как и он гонится обычно. Сколько "прототипов на выкинуть" стали развивать в продашкен решения потому что сроки горят и нужно срочно запускаться.
Так что если вы только начинаете — учитесь не писать код, а понимать системы. ИИ напишет. Вопрос в том кто будет решать что писать и что написано хорошо.
#мнение #карьера #геймдев
🔥10😁3
Задачка: что не так с этим кодом?
Пойдём дальше по каким-то типичным базовым задачкам. В целом этот вопрос хоть и простой, но довольно неплохая проверка на опытность.
Код работает, враг двигается. Но есть проблема которая проявится на разных устройствах. Какая?
Варианты:
а) transform.position нельзя менять напрямую - 🤷♂️
б) Ошибка в формуле - 🤷♀️
в) Нужен Rigidbody для движения - 🤷
#задачка #unity
Пойдём дальше по каким-то типичным базовым задачкам. В целом этот вопрос хоть и простой, но довольно неплохая проверка на опытность.
void Update()
{
transform.position += Vector3.forward * speed;
}
Код работает, враг двигается. Но есть проблема которая проявится на разных устройствах. Какая?
Варианты:
а) transform.position нельзя менять напрямую - 🤷♂️
б) Ошибка в формуле - 🤷♀️
в) Нужен Rigidbody для движения - 🤷
#задачка #unity
🤷♀46🤷♂6🤷2
Ответ: нет Time.deltaTime
Как многие правильно ответили. Без deltaTime объект двигается на
deltaTime — время прошедшее с прошлого кадра. Умножая на него, получаем движение в единицах за секунду, независимо от fps.
Этот баг был даже в игре по франшизе. Woody Woodpecker: Escape from Buzz Buzzard Park — на слабом компьютере игра работала нормально, а на новом Вуди носился по экрану со скоростью света. Разработчики привязали скорость к кадрам, и чем быстрее железо — тем быстрее персонаж. Классика.
Тут можно ещё в режиме прохождения собеседования докопаться до третьего варианта. Так как главный верный ответ дельта тайм, как почти все и ответили. Но самый верный подход на собесе, когда разобрались с таймом, вопрос "а на объекте есть коллайдер? Если да, то нужен rigidbody, а с перемещением Rigidbody лучше работать в методах RigidBody, чтобы физика работала корректно". Не обязательно, но плюсик в карму об этом подумать. Задача на собеседовании показать максимум того что вы знаете.
#задачка #unity
Как многие правильно ответили. Без deltaTime объект двигается на
speed единиц каждый кадр. На 30fps — 30 единиц в секунду. На 144fps — 144 единицы в секунду. Скорость зависит от fps.
// Правильно:
transform.position += Vector3.forward * speed * Time.deltaTime;
deltaTime — время прошедшее с прошлого кадра. Умножая на него, получаем движение в единицах за секунду, независимо от fps.
Этот баг был даже в игре по франшизе. Woody Woodpecker: Escape from Buzz Buzzard Park — на слабом компьютере игра работала нормально, а на новом Вуди носился по экрану со скоростью света. Разработчики привязали скорость к кадрам, и чем быстрее железо — тем быстрее персонаж. Классика.
Тут можно ещё в режиме прохождения собеседования докопаться до третьего варианта. Так как главный верный ответ дельта тайм, как почти все и ответили. Но самый верный подход на собесе, когда разобрались с таймом, вопрос "а на объекте есть коллайдер? Если да, то нужен rigidbody, а с перемещением Rigidbody лучше работать в методах RigidBody, чтобы физика работала корректно". Не обязательно, но плюсик в карму об этом подумать. Задача на собеседовании показать максимум того что вы знаете.
#задачка #unity
❤🔥8🔥4
Пи-день 🥧
Каждый год 14 марта (3.14) математики и программисты по всему миру отмечают день числа π. Традиция началась в 1988 году в музее науки Сан-Франциско — физик Ларри Шоу устроил парад вокруг круглого стола и угощал всех пирогами. Сейчас это неофициальный праздник всех кто любит числа.
Задачка в честь дня: как вычислить π не зная никаких формул — только с помощью случайных точек?
Берём квадрат 2×2. Вписываем в него круг радиуса 1. Бросаем случайные точки. Считаем сколько попало внутрь круга. Отношение попавших к общему числу точек стремится к π/4. Умножаем на 4 — получаем π.
Почему это работает: площадь круга = π·r², площадь квадрата = 4·r². При r=1 отношение = π/4. Случайные точки распределяются равномерно, значит их соотношение повторяет соотношение площадей.
При 1 000 сэмплов получаем ~3.1х. При миллионе — ~3.141х. Сходится медленно, зато наглядно.
Это метод Монте-Карло. Именно он лежит в основе глобального освещения в path tracing — каждый световой луч это случайная выборка, накапливаете достаточно и получаете физически корректную картинку.
С праздником, 3.14 🎉
#математика #шейдеры
Каждый год 14 марта (3.14) математики и программисты по всему миру отмечают день числа π. Традиция началась в 1988 году в музее науки Сан-Франциско — физик Ларри Шоу устроил парад вокруг круглого стола и угощал всех пирогами. Сейчас это неофициальный праздник всех кто любит числа.
Задачка в честь дня: как вычислить π не зная никаких формул — только с помощью случайных точек?
Берём квадрат 2×2. Вписываем в него круг радиуса 1. Бросаем случайные точки. Считаем сколько попало внутрь круга. Отношение попавших к общему числу точек стремится к π/4. Умножаем на 4 — получаем π.
float EstimatePI(int samples)
{
int inside = 0;
for (int i = 0; i < samples; i++)
{
float x = Random.Range(-1f, 1f);
float y = Random.Range(-1f, 1f);
if (x * x + y * y <= 1f) inside++;
}
return 4f * inside / samples;
}
Почему это работает: площадь круга = π·r², площадь квадрата = 4·r². При r=1 отношение = π/4. Случайные точки распределяются равномерно, значит их соотношение повторяет соотношение площадей.
При 1 000 сэмплов получаем ~3.1х. При миллионе — ~3.141х. Сходится медленно, зато наглядно.
Это метод Монте-Карло. Именно он лежит в основе глобального освещения в path tracing — каждый световой луч это случайная выборка, накапливаете достаточно и получаете физически корректную картинку.
С праздником, 3.14 🎉
#математика #шейдеры
🔥26
Path tracing в URP
https://github.com/Kuan-Mi/UnityPathTracing
Нашёл интересный репозиторий — реализация real-time path tracing в Unity URP. Не просто "пустили лучи", а полноценный стек: DXR-пайплайн, шумоподавление от NVIDIA (REBLUR, SIGMA), DLSS Ray Reconstruction, SHARC для кэширования радианса. И всё это работает с динамическими сценами включая скиненные меши.
Что меня зацепило — поддержка VR режима. Path tracing в VR это отдельный круг ада с точки зрения производительности, и то что кто-то это вообще пробует — уже интересно.
В планах у автора ReSTIR DI и объёмное освещение.
#интересное #unity #шейдеры #рендеринг
https://github.com/Kuan-Mi/UnityPathTracing
Нашёл интересный репозиторий — реализация real-time path tracing в Unity URP. Не просто "пустили лучи", а полноценный стек: DXR-пайплайн, шумоподавление от NVIDIA (REBLUR, SIGMA), DLSS Ray Reconstruction, SHARC для кэширования радианса. И всё это работает с динамическими сценами включая скиненные меши.
Что меня зацепило — поддержка VR режима. Path tracing в VR это отдельный круг ада с точки зрения производительности, и то что кто-то это вообще пробует — уже интересно.
В планах у автора ReSTIR DI и объёмное освещение.
#интересное #unity #шейдеры #рендеринг
❤🔥9🔥4
Как искал быстрый asin() и нашёл его в документации 2012 года
https://habr.com/ru/articles/1009424/
Хорошая история про то как легко потерять несколько дней оптимизируя то что уже оптимизировано.
Автор работает над трассировщиком лучей. Профилировщик показывает что
Несколько дней работы. Красивые графики погрешностей. Умная математика.
Потом спрашивает LLM — тот выдаёт решение из документации Nvidia CG Toolkit. Продукт не обновлялся с 2012 года. Формула из учебника по математике 1960-х. На Intel быстрее
Мораль которую сам автор и формулирует честно: он ни разу не остановился и не спросил себя "а может кто-то это уже решил?". Просто начал делать. Решение лежало в мёртвом SDK, который никто уже не помнит. И никто из знакомых разработчиков не подсказал — хотя проект публичный и известный в C++ и графических кругах.
#новость #рендеринг #математика #оптимизация
https://habr.com/ru/articles/1009424/
Хорошая история про то как легко потерять несколько дней оптимизируя то что уже оптимизировано.
Автор работает над трассировщиком лучей. Профилировщик показывает что
std::asin() вызывается много. Окей, надо ускорить. Пишет аппроксимацию на рядах Тейлора — получает +5%. Неплохо, но точность страдает на краях диапазона. Переходит к аппроксимациям Паде — сложнее, точнее, но скорость та же.Несколько дней работы. Красивые графики погрешностей. Умная математика.
Потом спрашивает LLM — тот выдаёт решение из документации Nvidia CG Toolkit. Продукт не обновлялся с 2012 года. Формула из учебника по математике 1960-х. На Intel быстрее
std::asin() в 1.5–1.9 раза, точность почти идеальная.
double fast_asin(const double x) {
constexpr double a0 = 1.5707288;
constexpr double a1 = -0.2121144;
constexpr double a2 = 0.0742610;
constexpr double a3 = -0.0187293;
const double abs_x = fabs(x);
double p = a3 * abs_x + a2;
p = p * abs_x + a1;
p = p * abs_x + a0;
return copysign(HalfPi - sqrt(1.0 - abs_x) * p, x);
}
Мораль которую сам автор и формулирует честно: он ни разу не остановился и не спросил себя "а может кто-то это уже решил?". Просто начал делать. Решение лежало в мёртвом SDK, который никто уже не помнит. И никто из знакомых разработчиков не подсказал — хотя проект публичный и известный в C++ и графических кругах.
#новость #рендеринг #математика #оптимизация
🤷♂9🔥7
Больше каналов богам каналов
@easy_dev_math
Те кто читает давно знают что математика в постах — одна из моих любимых тем. Векторы, шейдерная математика, интерполяция.
Решил вынести это в отдельное место. Канал называется «Математика в геймдеве по простому» — там буду разбирать математические концепции через конкретные задачи разработки. Не теория ради теории, а почему синус нужен для движения по кругу, зачем матрицы в 2D-игре, как Безье делает анимацию живой. С примерами на Unity.
Этот канал никуда не денется — здесь как обычно, всё остальное. Математика просто заслуживает своего места.
Кому интересно — подписывайтесь и делитесь с друзьями :)
@easy_dev_math
Те кто читает давно знают что математика в постах — одна из моих любимых тем. Векторы, шейдерная математика, интерполяция.
Решил вынести это в отдельное место. Канал называется «Математика в геймдеве по простому» — там буду разбирать математические концепции через конкретные задачи разработки. Не теория ради теории, а почему синус нужен для движения по кругу, зачем матрицы в 2D-игре, как Безье делает анимацию живой. С примерами на Unity.
Этот канал никуда не денется — здесь как обычно, всё остальное. Математика просто заслуживает своего места.
Кому интересно — подписывайтесь и делитесь с друзьями :)
Telegram
Dev Math
Как на самом деле создаются игры. Как сделать игру интересной и реализовать технически. А главное причём тут математика?
Разборы на пальцах, рабочий код, интерактивы. dev-math.ru
Сотрудничество: @it_bizdev
Разборы на пальцах, рабочий код, интерактивы. dev-math.ru
Сотрудничество: @it_bizdev
🔥6
Unity официально поддерживает Steam
https://app2top.ru/news/dvizhok-unity-ofitsial-no-nachal-podderzhivat-steam-238839.html
Занятная новость с GDC. Unity наконец-то официально поддерживает Steam — до этого разработчики годами интегрировали Steamworks руками сами, без какой-либо официальной поддержки со стороны движка. Работало, но костыльно.
Теперь есть Platform Toolkit, нативная поддержка SteamOS и Steam Deck. Плюс обещают регулярно обновлять Linux runtime — чтобы не нужен был Proton.
Честно говоря немного смешно что это случилось только сейчас. Steam — крупнейшая PC-платформа, Unity — один из главных движков для тех же инди. Они просто... не были официально интегрированы. Все просто делали вид что всё нормально 🙂
Ещё интересная деталь: упомянули интеграцию с Fortnite, но подробностей нет. Напомню — в конце прошлого года Unity и Epic неожиданно объявили о партнерстве. Будем посмотреть.
#новости #unity
https://app2top.ru/news/dvizhok-unity-ofitsial-no-nachal-podderzhivat-steam-238839.html
Занятная новость с GDC. Unity наконец-то официально поддерживает Steam — до этого разработчики годами интегрировали Steamworks руками сами, без какой-либо официальной поддержки со стороны движка. Работало, но костыльно.
Теперь есть Platform Toolkit, нативная поддержка SteamOS и Steam Deck. Плюс обещают регулярно обновлять Linux runtime — чтобы не нужен был Proton.
Честно говоря немного смешно что это случилось только сейчас. Steam — крупнейшая PC-платформа, Unity — один из главных движков для тех же инди. Они просто... не были официально интегрированы. Все просто делали вид что всё нормально 🙂
Ещё интересная деталь: упомянули интеграцию с Fortnite, но подробностей нет. Напомню — в конце прошлого года Unity и Epic неожиданно объявили о партнерстве. Будем посмотреть.
#новости #unity
🔥13
На просторах инстаграма развелось инфоцыганщины про IT. Интересно как у нашего брата на Unity обстоят дела с работой, да и в целом у подписчиков канала. Думаю у меня ИТ преимущественно.
Anonymous Poll
42%
Да норм, работаю
17%
Работаю, но хочу сменить место
11%
Фриланс / своё дело
17%
Ищу работу, найти не могу
4%
Ищу работу недавно
9%
Пока учусь
Ооо, мультики сменили игры
Инфоцыгане подключились в новые модные веянья ИИ. Вопрос на сколько им будут верить менеджеры 🙂
Я помню серию роликов на YouTube что заработай 500$ в день с этим методом. И ролики по продакшену мультиков для детей на Youtube с рекламной монетизацией. Теперь начинает прорезаться тоже самое про игры. Но пока заголовки не такие кликбейтные. Жду прям "как я заработал на своей игре 5000$ сделав её нейросетью"
Да, конечно процессы упрощаются и нейросети забирают много рутинной работы. Один инженер сможет делать больше, но и работы как бы не мало. Но дело даже не в этом. Если вы знаете как делать успешные продукты в айти на мировой рынок, то изменение костов с 200 000$ на мобильный проект до 80 000$ включив нейросети (с нечистыми правами и прочими проблемами, допустим они вас устраивают) - не так важны. Успешный мобильный проект натурально зарабатывает сотни тысяч долларов в месяц. Поэтому понятное дело, что самым ценным как был, так и есть навык придумывать и доводить до реализации успешные продукты, и нейросети это не решают.
Уметь грамотно делать анализ рынка, тестировать продуктовые гипотезы, строить роадмап продукта и так далее. Это те навыки которые тяжело заменить, так как сетки там галлюцинируют часто, ибо чаще всего это опыт которого нет в общем доступе. А что прогеры раньше за неделю фичу делали, а теперь 3, сильно миропорядка в айти не меняет. Но инфоцыгане как всегда забавляют.
#мнение #карьера #геймдев
Инфоцыгане подключились в новые модные веянья ИИ. Вопрос на сколько им будут верить менеджеры 🙂
Я помню серию роликов на YouTube что заработай 500$ в день с этим методом. И ролики по продакшену мультиков для детей на Youtube с рекламной монетизацией. Теперь начинает прорезаться тоже самое про игры. Но пока заголовки не такие кликбейтные. Жду прям "как я заработал на своей игре 5000$ сделав её нейросетью"
Да, конечно процессы упрощаются и нейросети забирают много рутинной работы. Один инженер сможет делать больше, но и работы как бы не мало. Но дело даже не в этом. Если вы знаете как делать успешные продукты в айти на мировой рынок, то изменение костов с 200 000$ на мобильный проект до 80 000$ включив нейросети (с нечистыми правами и прочими проблемами, допустим они вас устраивают) - не так важны. Успешный мобильный проект натурально зарабатывает сотни тысяч долларов в месяц. Поэтому понятное дело, что самым ценным как был, так и есть навык придумывать и доводить до реализации успешные продукты, и нейросети это не решают.
Уметь грамотно делать анализ рынка, тестировать продуктовые гипотезы, строить роадмап продукта и так далее. Это те навыки которые тяжело заменить, так как сетки там галлюцинируют часто, ибо чаще всего это опыт которого нет в общем доступе. А что прогеры раньше за неделю фичу делали, а теперь 3, сильно миропорядка в айти не меняет. Но инфоцыгане как всегда забавляют.
#мнение #карьера #геймдев
❤🔥13🔥8
TDD играет новыми красками если подумать
Вообще я только сейчас понял насколько хорошо нейросети подходят под TDD (Test Driven Development). Часто в плане будет стоять тест, но если изначально придерживаться этого подхода, это будет работать до забавного интересно.
Основной проблемой для TDD всегда была скорость. Сначала пишем тест, потом код, подключаем это все в CI&CD. И написание + поддержка тестов отнимала кучу времени. Конечно же в данном подходе не стоит и код, и тест генерить нейросетью. Это не TDD. Это самоподтверждающийся шум. А вот написать тест грамотно, как подтверждение корректности реализации и остальное оставить кодогенерации — звучит разумно.
Для мелких задач можно и тесты кодогенерить в целом, но важно держать в голове что ИИ всегда пишет тест не к твоему функционалу, а к своей реализации. То есть тест будет тестировать что сделала нейросеть, а не то что надо было сделать по бизнес логике.
Конкретно это выражается в том, что ИИ может: пропустить edge-кейсы, о которых ты не написал явно; выбрать одну интерпретацию неоднозначного ТЗ и последовательно провести её и в тестах, и в коде — всё зелёное, но не то что ты хотел; протестировать детали реализации вместо поведения.
Если уметь грамотно контролировать контракты и давать ТЗ на их реализацию. Делать кодогенерацией тесты и реализацию раздельно, то это близко к TDD. Но с грамотно написанными тестами забавно как нейросеть может адаптировать реализацию. Если тест писать самостоятельно, то на самом деле вопрос филосовский важно ли «что в черном ящике». Так как тест может валидировать производительность, безопасность, реализацию, поведение и все что хочешь.
Но другой вопрос, что ИИ может пытаться подогнать ответ под тест. Поэтому конечно этот подход нужно проверять временем. Но просто работать может любопытно.
#мысли
Вообще я только сейчас понял насколько хорошо нейросети подходят под TDD (Test Driven Development). Часто в плане будет стоять тест, но если изначально придерживаться этого подхода, это будет работать до забавного интересно.
Основной проблемой для TDD всегда была скорость. Сначала пишем тест, потом код, подключаем это все в CI&CD. И написание + поддержка тестов отнимала кучу времени. Конечно же в данном подходе не стоит и код, и тест генерить нейросетью. Это не TDD. Это самоподтверждающийся шум. А вот написать тест грамотно, как подтверждение корректности реализации и остальное оставить кодогенерации — звучит разумно.
Для мелких задач можно и тесты кодогенерить в целом, но важно держать в голове что ИИ всегда пишет тест не к твоему функционалу, а к своей реализации. То есть тест будет тестировать что сделала нейросеть, а не то что надо было сделать по бизнес логике.
Конкретно это выражается в том, что ИИ может: пропустить edge-кейсы, о которых ты не написал явно; выбрать одну интерпретацию неоднозначного ТЗ и последовательно провести её и в тестах, и в коде — всё зелёное, но не то что ты хотел; протестировать детали реализации вместо поведения.
Если уметь грамотно контролировать контракты и давать ТЗ на их реализацию. Делать кодогенерацией тесты и реализацию раздельно, то это близко к TDD. Но с грамотно написанными тестами забавно как нейросеть может адаптировать реализацию. Если тест писать самостоятельно, то на самом деле вопрос филосовский важно ли «что в черном ящике». Так как тест может валидировать производительность, безопасность, реализацию, поведение и все что хочешь.
Но другой вопрос, что ИИ может пытаться подогнать ответ под тест. Поэтому конечно этот подход нужно проверять временем. Но просто работать может любопытно.
#мысли
🔥5
Кто откуда? Последнее время плохо работает телега (по понятным причинам) Я не хочу заводить канал сами знаете где. И вот мне стало интересно, а кто откуда вообще считает. Я живу уже 1.5 года в Красной поляне. По городам сложно, так что крупными мазками.
Anonymous Poll
15%
Москва (не Россия, как известно)
47%
Россия (не Москва)
17%
Страны СНГ
0%
США
16%
Европа
3%
Азия
1%
Ближний Восток
1%
Другое что я забыл
1%
Тусуюсь с кенгуру
200 человек и $50 млн vs один человек и вагон терпения: как соло-разработчик сделал игру уровня Atomic Heart
https://habr.com/ru/articles/1013082/
Или кликбейты наше всё. Автор крутой, ничего не скажешь. Вообще уважаю людей доводящих проекты до конца. А тут такой визуально достойный проект. Хз что по геймплею, учитывая такой большой блок про проблемы с сохранениями, но выглядит прикольно. Успешный творческий проект.
С точки зрения бизнеса, особенно игрового, цифра в 100к$ для кого-то может звучать внушительно (в статье есть эта цифра, за 6 лет разработки, но к слову сказать без особого маркетинга). Но по сути это 17к$ в год, а после всех вычетов 10-11к$ в год или 1к$ в месяц условно без учета расходов на проект. Ну то есть зарплата джуна за такой титанический труд демонстрирует важность маркетинга.
А так я просто не люблю кликбейты. Это скорее не к автору игры, а к автору статьи. Делал проект один, но не один (композитор, жена, еще люди появляются по тексту). И так далее. Но как рассказать про прикольный проект — ладно. А так, не знаю как сам по себе проект, а автор в любом случае молодец. Если смотреть как на творческий проект, чем вполне могут быть игры как форма искусства, а не как на бизнес проект — очень круто.
#новости #мнение
https://habr.com/ru/articles/1013082/
Или кликбейты наше всё. Автор крутой, ничего не скажешь. Вообще уважаю людей доводящих проекты до конца. А тут такой визуально достойный проект. Хз что по геймплею, учитывая такой большой блок про проблемы с сохранениями, но выглядит прикольно. Успешный творческий проект.
С точки зрения бизнеса, особенно игрового, цифра в 100к$ для кого-то может звучать внушительно (в статье есть эта цифра, за 6 лет разработки, но к слову сказать без особого маркетинга). Но по сути это 17к$ в год, а после всех вычетов 10-11к$ в год или 1к$ в месяц условно без учета расходов на проект. Ну то есть зарплата джуна за такой титанический труд демонстрирует важность маркетинга.
А так я просто не люблю кликбейты. Это скорее не к автору игры, а к автору статьи. Делал проект один, но не один (композитор, жена, еще люди появляются по тексту). И так далее. Но как рассказать про прикольный проект — ладно. А так, не знаю как сам по себе проект, а автор в любом случае молодец. Если смотреть как на творческий проект, чем вполне могут быть игры как форма искусства, а не как на бизнес проект — очень круто.
#новости #мнение
🔥11🤷♀4