Обновления

Dagon 0.23.1

Небольшое обновление Dagon 0.23. Добавлена поддержка переключения отдельных рендер-таргетов в PassTerrain — то есть, для материалов ландшафта работают свойства outputColor, outputNormal и др. Движок теперь использует dlib 1.3.2. Добавлены новые уроки — 9, 13 и 15.

К следующему релизу готовлю поддержку Assimp, о которой уже писал, а также перенос расширения dagon:ftfont в ядро движка, что позволит реализовать различные встроенные UI-компоненты.

BindbC-Assimp

Биндинг к Assimp 5 размещен на GitHub и доступен в качестве DUB-пакета. К сожалению, название bindbc-assimp занято заброшенным и несуществующим ныне проектом, поэтому пришлось зарегать как bindbc-assimp5.

Оптимизация блога

Я настроил объектный кэш на основе Redis, а также добавил HTML-кэш и заголовок Cache-Control, что заметно ускорило загрузку страниц блога. Было исправлено множество мелких проблем верстки. Все архивные игры теперь размещены на одном сервере с блогом.

Тема, которую я использую, теперь также доступна на GitHub. Это форк WPEX Blogger 1.2 от WPExplorer, в котором я внес исправления для совместимости с PHP 8, исправил поиск в мобильном меню, добавил новые переводы на русский, а также внес патч, исправляющий совместимость с плагином Code Syntax Block.

Новый блог

Я со своим блогом вынужден переехать во второй раз. К сожалению, Hostingru, на котором я уже долгое время держу большинство своих сайтов, стремительно скатился во второсортный хостинг с чуть ли не еженедельными даунтаймами. Сломанный FTP, потери данных, проблемы с доступом к cPanel — с 2019 года я повидал все. Решил перейти на нидерландский VPS с Linux, на котором у меня уже почти год как крутятся облачные сервисы, связанные с персональным брендом PixelPerfect — доволен абсолютно, никаких проблем ни разу не испытывал. В связи с этим адрес меняется на https://blog.pixperfect.online/.

Спешу заверить, что тематика блога радикально не меняется — я все так же буду писать о своем опыте разработки на D и комментировать то, что делаю на GitHub. Но PixelPerfect — это больше, чем геймдев: отныне мой блог станет универсальным домом для всех моих профессиональных интересов.

По состоянию на 30.05.25 все материалы перенесены, причем удалось даже пофиксить проблемы с битыми изображениями в самых старых постах. Дизайн остался без изменений, я только поменял плагин WordPress для просмотра изображений и пофиксил строку поиска в мобильном режиме. Также слегка изменилась структура главного меню и добавился календарь постов.

В ближайшее время напишу отдельный пост о своих впечатлениях по настройке и администрированию linux-сервера — это оказалось очень интересно, хотя и не просто.

10 лет блогу

Сегодня мой блог о разработке игр на языке D отмечает 10-летний юбилей! 30 сентября 2012 года я опубликовал первый пост, в котором поставил задачу написать 3D-игру на D с использованием OpenGL. С тех пор утекло много воды, я несколько раз переписывал заново свой движок, перешел с 32-битной на 64-битную архитектуру, сменил несколько операционных систем и версий OpenGL, но изначальная цель не поменялась.

В 2015 году блог привлек внимание русскоязычного филиала журнала PC Magazine, который проводил опрос, посвященный разработке игр: как устроены игры изнутри, как программируются серверы, как моделируется игровой мир, какие используются средства разработки. Материал по результатам опроса — в котором, в числе прочего, упоминается и мой движок — был опубликован на сайте журнала, но, к сожалению, теперь не доступен в связи с уходом PC Magazine из России. В 2019 году, спустя 7 лет со дня открытия блога https://dlanggamedev.blogspot.com, я переехал на коммерческий хостинг и личный WordPress. Администрирование собственного WP-сайта было для меня совершенно новым опытом, я изучил PHP и улучшил навыки верстальщика — однажды даже написал свой спам-фильтр для комментариев, но в этом оказалось мало смысла после перехода на reCAPTCHA v3.

За эти годы инди-геймдев, к сожалению, так и не стал для меня коммерчески выгодным занятием. Скажу прямо: работа над Electronvolt непомерно затянулась, и вряд ли ее выпуск как-то финансово оправдает вложенные усилия и время. Доход, который я получаю от всех моих хобби-проектов, основан на донатах через Patreon и PayPal. Но это не значит, что я разочарован — наоборот, в процессе я написал кучу полезного кода, который мне постоянно пригождается в других сферах деятельности. За эти 10 лет я глубоко погрузился в профессию графического разработчика и изучил множество технологий: в 2016 году даже рассматривал возможность стажировки в NVIDIA, но раздумал, так как не захотел переезжать в Москву. Позднее мне довелось четыре года проработать в цифровой рекламе в продакшн-компании SmartHead, где я сделал множество интерактивных баннеров и несколько рекламных игр. Самыми интересными проектами были игры «Привидения и котики» для Google и «Food Box Killer» для Ehrmann (вторая примечательна использованием движка Phaser 3), а также брендинг Forbes для BMW с анимацией на основе шейдерного эффекта WebGL. К сожалению, выложить эти проекты на сайт не могу из-за NDA, но вы можете их увидеть на сайте баннерного отдела SmartHead. Знания, которые я приобрел благодаря своему хобби, очень помогли в работе, и я даже как-то раз использовал D для одной специфической задачи — а именно, для написания генератора выпуклых оболочек для спрайтов под физический движок Matter.js.

Сегодня я занимаюсь, в основном, веб-разработкой и графическим дизайном на фрилансе. Много пишу на JS (браузерный код и Node.js), а D так и остался языком «для души». Но, может, это и к лучшему — ведь должно же быть у человека чисто творческое занятие, в котором он полностью свободен и независим от чужих задач и потребностей: по образованию я художник, и к программированию отношусь как к отдельному виду искусства. На D легко и приятно писать, и я все еще считаю его лучшим из всех компилируемых языков — ни на минуту не пожалел, что вложил столько сил в код на нишевом языке с небольшим сообществом. Хотя часто жалею, что в сутках всего 24 часа — не успеваю отслеживать все интересные мне новые технологии. OpenCL, CUDA, Vulkan, WebGPU, аппаратная трассировка лучей — что-то прошло мимо меня, что-то я изучил лишь на самом базовом уровне. Но надеюсь, что смогу углубляться в эту сферу и дальше — и, конечно, вести блог еще 10 лет, минимум!

Новые статьи на Medium

Написал две новые статьи на английском:

  • dlib: Past, Present and Future — экскурс в историю dlib, о текущем статусе проекта и планах на будущее;
  • GitHub Actions and D — о том, как настроить тестирование на GitHub Actions для проектов на D.

Новый домен

Я переношу все свои личные проекты на домен timurgafarov.ru, так что блог отныне будет доступен как https://gamedev.timurgafarov.ru/. Старый адрес в ближайшем будущем сохранится, но будет перенаправлять на новый.

Переезд блога

Спустя 7 лет со дня открытия блога https://dlanggamedev.blogspot.com я наконец-то переезжаю на коммерческий хостинг и личный WordPress. Я только начал изучать эту CMS, но первые впечатления самые положительные: удобный редактор, админка, огромный выбор готовых тем, плагинов и виджетов. Абсолютно все можно настроить и кастомизировать. Еще один немаловажный плюс — нормальная работа WP-сайтов на мобильных платформах.

Переезд еще не завершен — необходимо создать страницы проектов. Но мне удалось автоматически перенести основной контент со старого блога, включая даже комментарии и часть картинок.

Блог на Medium

Я решил начать писать для англоязычной аудитории, в связи с чем зарегистрировался на платформе Medium: https://medium.com/@gecko0307. Там я собираюсь фокусироваться на разработке Dagon и связанных с ней узкоспециализированных темах. Постоянных читателей спешу заверить, что русскоязычный блог я забрасывать не собираюсь, но и посты дублировать, скорее всего, не буду, так что читайте меня и тут, и там. Этот блог я планирую использовать больше для новостей по проектам, анонсов, размышлений о D и других языках, геймдеве и программировании в целом.