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