Найти в Дзене
Поддержите автораПеревод на любую сумму
Закреплено автором
ZDG
Навигатор по каналу
2747 · 5 лет назад
Люди вокруг меня уходят
Недавно осознал, что люди, которых я знаю – родные, близкие, коллеги, соседи, знакомые, те, с кем встречался лично или только переписывался – уходят из жизни. И это не какое-то проклятие, которое я ношу с собой, а вполне объяснимая закономерность: чем дольше мы живём, тем меньше нам остаётся. Даже молодые не защищены ни от катастроф, ни от опасных болезней. Раньше такие случаи казались исключительными, выходящими из ряда вон. Я помню, как вдруг умер мой одноклассник. Однако со временем это стало обычной рутиной, так что я даже перестал её замечать...
172 читали · 1 неделю назад
Почему дорогая память это хорошо
Массовое развитие ИИ-сервисов привело к тому, что цены на память и устройства хранения скакнули как давление у гипертоника. И я на самом деле не говорю, что это хорошо. Дорогая память это плохо. Но давайте попытаемся найти в этом горьком катаклизме какие-то положительные моменты. Как долго будет сохраняться ажиотажный спрос? Очевидно, он зависит от того, насколько актуальной будет оставаться тема ИИ. Некоторые источники уже вовсю трубят о том, что ИИ это пузырь, который скоро лопнет. А значит, рухнут и цены на память, ставшую вдруг никому не нужной...
1 неделю назад
Почему американцы так помешаны на убийствах?
Небольшое предисловие. Есть такое поверье на Дзене и не только, что алгоритм, который выбирает материалы для показов, якобы не любит негативные эмоции. Ну это помимо секса, естественно. То есть если вы пишете в своих материалах про смерть, убийства, трупы и так далее, то они будут "пессимизированы". Поэтому слов с негативным оттенком стараются избегать. Маразматическое унижение перед алгоритмом доходит до того, что даже просто отдельно встречающиеся слова типа "умер" заменяют на "ум*р". Выглядит всё это крайне нелепо...
534 читали · 3 месяца назад
Работа с критикой, часть 2: Какие намерения куда ведут
Первая часть: Рассмотрим такую ситуацию: вы хотите сварить кашу. Нужно сходить в магазин за крупой. Тогда вы можете разбить процесс на составные части так: сначала у вас есть намерение купить крупу, затем у вас есть намерение сварить кашу. Когда вы что-то делаете, вы находитесь в процессе выполнения своего намерения. Ожидая зелёного сигнала светофора, вы осознаёте, что в этот момент вы исполняете своё намерение дойти до магазина. Сейчас ваши намерения синхронизированы. Чтобы осуществить намерение сварить кашу, надо сначала осуществить намерение сходить в магазин...
3 месяца назад
Работа с критикой, часть 1
Когда-то я написал статью про программирование игры "5 букв": И вот в комментариях появился пользователь, который с уверенным видом начал раздавать поучения: это плохо, то плохо, это не так и т.д. Что ж, он достаточно долго смотрел в бездну. Кстати, тут не помешает почитать ещё вот эту статью: Итак, в чём суть. Функция в языке C не может возвращать массив фиксированной длины как копию. То есть нельзя написать такую функцию, которая имела бы тип массива с длиной, предположительно вот так: На что следует вот такой комментарий: Естественно, без каких-либо доказательств...
3 месяца назад
Разработка игры RDS на языке Rust: Controller & Input
В предыдущей части был получен рабочий прототип игры со всеми необходимыми компонентами. Для продолжения работы игру надо структурировать, для чего нужны будут контроллеры. Эта тема уже освещалась в материалах про игру Apple, так что ничего нового я тут не скажу, но код из Apple немножко поменяю, с учётом новых достижений. Пробежимся по этой теме вкратце ещё раз. У игры есть несколько раздельных активностей: заставка, затем какое-то меню, затем собственно игра, затем экран окончания и т.д. Каждая...
4 месяца назад
Как поживают старые жестокие онлайн-анимации?
В конце 90-х и начале 2000-х годов в интернете ещё процветала технология Flash, с помощью которой создавали анимационные видеоролики. И каким-то образом родился класс анимаций, изображающий в шутливом стиле различные жестокие вещи. Они были очень популярны, но постепенно сошли на нет. Я решил проследить, что с ними стало. Это мини-серии про милых зверьков – Лося, Белочку, Зайчика, Ёжика и других. В общем, практически наши Смешарики, только проблема в том, что в каждой серии кто-то из них, а чаще всего все они вместе, гибнут самой страшной смертью, которую только можно придумать...
141 читали · 4 месяца назад
Не все код-ревью одинаково полезны
Код-ревью это когда кто-то написал программу, а кто-то другой просматривает код программы и делает замечания – мол, вот тут хорошо, а вот тут плохо. Совершенно случайно я узнал о существовании в Ютубе какого-то программиста под прозвищем Pirate Software. А узнал потому, что вокруг него разгорелся скандал. Дескать, он много лет прикидывался гуру, якобы работал в Blizzard, разработал собственную игру под названием HeartBound, и вдруг оказалось, что он и программировать-то не умеет, и игра у него вышла плохая...
167 читали · 4 месяца назад
Генетическая Мона: теперь в OpenGL
В процессе освоения OpenGL-функций в Rust родился побочный квест. У меня есть старый проект Генетической Моны Лизы, который я тут неоднократно описывал. Вот последняя публикация со ссылками на предыдущие: Рисование там делается с помощью цветных треугольников, которые растеризуются вручную. Но массив цветных треугольников просто создан для рендеринга в OpenGL, и это бы существенно ускорило работу алгоритма. Я, однако, медлил с доработками, пока случайно не наткнулся на более примитивный вариант рисования...
5 месяцев назад
Точка, точка, два крючочка, или хэнохэномохэдзи
Намедни, играя в бесподобную японскую игру Okami, вспомнил один забавный факт. Когда NPC в игре находится слишком далеко, у него над головой появляется иконка, которая символизирует его настроение или просто обозначает его личность. В некоторых случаях она выглядит так: Это японское народное изображение человеческой рожицы, в точности как у нас: Точка, точка, два крючочка, Носик, ротик, оборотик, Палка, палка, огуречик, Вот...
5 месяцев назад
Разработка игры RDS на языке Rust: Текстуры в SDL2
В прошлом выпуске я одолел загрузку изображения в формате PNG: Теперь игровые объекты можно рисовать не квадратиками, а настоящими картинками. Растровое изображение это некий массив байтов, и в SDL2 есть два способа работы с ним. Поверхности, хотя и позволяют манипулировать данными напрямую, оказываются очень медленными в самом банальном случае – когда необходимо рисовать картинки с прозрачностью. При наложении двух пикселов друг на друга нужно вычислить новый цвет пиксела, который образуется из двух исходных цветов с учётом их прозрачности...
5 месяцев назад
Загрузка PNG-изображения для игры RDS на языке Rust
В прошлой части я овладел техникой распаковки формата DEFLATE: Эта техника понадобится для загрузки изображений в формате PNG, которую буду описывать здесь. Файл PNG устроен просто: он состоит из блоков, где у каждого блока есть длина и тип. Если мы знаем тип блока и умеем/хотим его обрабатывать, то обрабатываем, если не умеем/не хотим, то просто пропускаем. Поэтому задача в данном случае простая: нужно всего лишь распаковать блоки определённого типа, а остальные нас не интересуют. Для игры можно даже подготовить оптимизированные изображения, выкинув из них все ненужные блоки...
6 месяцев назад