Итоги 2023 года

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

  • Можно считать, что я достиг своей цели – стать профессиональным разработчиком игр. На сегодняшний день солидную долю моих доходов составляют фрилансерские проекты по разработке рекламных мини-игр и интерактивных баннеров. И, хотя все они пишутся на JavaScript, я стал чаще по работе использовать D для создания различных утилит, что не может не радовать.
  • Выпустил Dagon 0.15, в котором появилась поддержка Hald CLUT, 1D и 3D-текстуры, новые параметры постобработки для ручного управления эффектом Depth of Field, новые методы для текстур, обновлен биндинг Newton.
  • В репозиторий с примерами Dagon добавлены примеры создания ландшафта и работы с пользовательскими шейдерами.
  • Выпустил dlib 1.2.0 и 1.2.1. Добавлены функции гомотетии (масштабирования относительно точки), функции конвертации радианов в обороты и обратно, медианный фильтр, а также функция отрисовки прямоугольника. Спасибо Олегу Бахареву aka aquaratixc, Aaron Nédélec aka ReactiveAlkali, Razvan Nitu aka RazvanN7, Nick Treleaven aka ntrel за багфиксы и новые фичи.
  • Я наконец-то дописал вводную статью о PBR для начинающих, она доступна на сайте журнала “FPS”. Кстати в уходящем году журналу исполнилось уже 15 лет.
  • Начал изучать микроконтроллеры – Arduino и ESP32. Полным ходом иду к своей детской мечте – сделать своими руками радиоуправляемую машинку (как-нибудь напишу пост об этом проекте).

Ну и, конечно, не могу не назвать самые значимые для меня события в мире IT:

  • Выход Blender 4.0
  • Выход Godot 4
  • Смена ценовой политики Unity
  • Появление ChatGPT (хотя я не думаю, что нейросети в обозримом будущем кого-то заменят).

Итоги 2022 года

Близится конец года, и это значит, что наступило время для традиционного подведения итогов. Год был во многом неприятный и депрессивный, однако даже в такие времена я стараюсь не бросать персональные проекты – развиваться необходимо всегда, пусть и маленькими шагами.

  • Вышли Dagon 0.13 и 0.14. В этих версиях были исправлены многие баги рендер-движка, улучшен загрузчик OBJ (добавлена поддержка квадов), произведен рефакторинг системы текстур, ускорена загрузка текстур через dlib. stb_image теперь опционален и используется как расширение dagon:stbi. Появилась поддержка формата сжатия ASTC. Изменены свойства материалов для достижения прямой совместимости с glTF. Появилась новая система текстурирования ландшафта. Добавлена поддержка радиального размытия. Удалено расширение dagon.ext.physics, так как теперь полноценно поддерживается физический движок Newton (расширение dagon.ext.newton). Добавлена экспериментальная интеграция UI-тулкита ImGui, а также поддержка валидации состояния OpenGL и более информативные отладочные сообщения.
  • Наконец-то выпустил dlib 1.0. В этой версии ускорена загрузка изображений, добавлена валидация при создании POSIX-потоков, улучшен модуль dlib.math.interpolation.hermite – добавлена функция вычисления производной для сплайна Эрмита. Исправлено несколько важных багов в математическом и геометрическом пакетах. Также вышло обновление dlib 1.1.0, в котором я добавил алгоритм обнаружения пересечения выпуклых тел MPR, а также исправил некоторые баги.
  • Я портировал игру DagoBan Матеуша Мушинского на актуальную версию Dagon. Этот клон Sokoban, написанный в качестве демонстрации возможностей тулкита Nuklear, является первой законченной игрой на основе Dagon.
  • Я написал три новые статьи на Medium: Almighty Alias, Metaprogramming with Alias Sequences, Game UI with Nuklear.
  • За этот год мне удалось собрать донатов на сумму $34.04 – они частично покрыли оплату хостинга и домена для сайта timurgafarov.ru. Огромное спасибо всем, кто перечислил деньги!

Ну и, конечно, не могу не назвать самые значимые для меня события в мире CG, СПО и геймдева:

  • Выход Unreal Engine 5 с очень впечатляющими фичами – особенно Lumen, технологией динамического глобального освещения. Но, каким бы крутым ни был UE, я не собираюсь отказываться от собственного движка)
  • Выход Newton 4, новой версии моего любимого физического движка. Жду теперь C API для создания привязки к D
  • Stable Diffusion – нейросеть, генерирующая изображения по текстовому описанию с пугающей реалистичностью.

Итоги 2021 года

Близится конец года, и это значит, что наступило время для традиционного подведения итогов. В наступающем 2022 году мой блог о разработке игр отмечает 10-летний юбилей!

  • Вышел Dagon 0.12. В новой версии добавлена начальная поддержка моделей формата glTF, поддержка кубических карт формата DDS, новый постэффект глубины резкости (Depth of Field). Изображения теперь декодируются при помощи stb_image, что сильно ускорило загрузку текстур. Старый физический движок dmech был заменен на Newton Dynamics. У меня еще много планов по движку: в первую очередь, хочу переделать систему загрузки текстур и реализовать поддержку KTX. В перспективе интересно было бы перенести Dagon на WebGPU, хотя об этом говорить пока рановато.
  • Вышли dlib 0.21, 0.22, 0.23. Это, в основном, исправляющие релизы. dlib приближается к релизу первой стабильной версии. Также я начал планировать архитектуру dlib 2.0.
  • Я окончательно перешел с Travis CI на GitHub Actions для тестирования моих проектов.
  • Я написал три новые статьи на Medium: dlib: Past, Present and Future, GitHub Actions and D, WebGPU is the Future of Graphics Development, in D as Well.
  • Журнал “FPS” был превращен в онлайн-издание. Было опубликовано много новых статей, продолжается разработка CMS, улучшается дизайн сайта. Возрождена группа журнала ВКонтакте.
  • За этот год мне удалось собрать донатов на сумму $165 (вышло чуть меньше, чем в 2020 году). Огромное спасибо всем, кто перечислил деньги! Эти средства частично покрыли затраты на покупку аппаратного обеспечения – в частности, нового системного блока HP Pavillion. На оплату хостинга и домена для сайта timurgafarov.ru ушло 2497 ₽. Итого (с учетом остатка с прошлого года) израсходовано 14337 ₽.

Ну и, конечно, не могу не назвать самые значимые для меня события в мире CG, СПО и геймдева:

  • Выход Blender 3.0. Очень впечатлил новый удобный браузер ресурсов
  • Поглощение Sketchfab и ArtStation компанией Epic Games
  • Выход Open 3D Engine, свободного движка на основе Amazon Lumberyard
  • WGSL – новый шейдерный язык, разрабатывающийся как часть стандарта WebGPU
  • Анонс Unreal Engine 5.

Итоги 2020 года

Близится конец года, и это значит, что наступило время для традиционного подведения итогов по проектам.

  • У меня появился домен для личного бренда https://timurgafarov.ru, и, соответственно, блог переехал на новый адрес: https://gamedev.timurgafarov.ru.
  • Вышел Dagon 0.11.0. Движок был значительно улучшен, переработана структура модулей, практически полностью переписан рендер, исправлено множество проблем и узких мест производительности. Посмотреть движок в действии можно при помощи демки dagon-sandbox, а также на моем YouTube-канале. Также были дополнены уроки и примеры.
  • Вышли dlib 0.18, 0.19 и 0.20. У проекта появилась онлайн-документация, генерируемая из исходников при помощи Dub/ddox. В 2021 году dlib исполняется 10 лет!
  • Я опубликовал две новые статьи по D на Medium: Getting started with D и Const-correctness in D, а также небольшую вводную статью по WebGPU на CGWorld.
  • За этот год мне удалось собрать донатов на сумму $172,10. Огромное спасибо всем, кто перечислил деньги! Часть средств пошла на покупку аппаратного обеспечения – в частности, SSD (3590 руб.), наушников (790 руб.), USB-разветвителя (790 руб.), разветвителя для аудио (45,95 руб.). Также был приобретен графический софт: ArtRage (2423,38 руб.) и Armor Paint (1205,78 руб.). На оплату хостинга, на котором размещен этот блог, ушло 1447 руб. Кроме того, был куплен домен timurgafarov.ru за 199 руб. Итого израсходовано 10491,11 руб.

Ну и, конечно, не могу не назвать самые значимые для меня события в мире CG, СПО и геймдева:

  • Выход Blender 2.90 – очень впечатлила новая опция режима редактирования, позволяющая автоматически смещать UV-координаты синхронно с изменением геометрии. В целом Blender 2.80+ в моем восприятии превратился в полноценно рабочий инструмент, я начал использовать его в коммерческих проектах.
  • Выход бесплатной версии Unigine. Скачал, заценил – есть множество интересных фич, в частности понравился live reloading моделей и текстур при их обновлении внешними приложениями. Не понравилось, однако, то, что редактор нельзя запустить без входа в аккаунт (возможно, есть какой-то оффлайн-режим – не искал).
  • Открытие исходников NeoAxis. Пока детально не изучал этот движок, но в целом выглядит привлекательно.
  • Форк Dev-C++ от Embarcadero. До сих пор иногда пользуюсь этой IDE, поэтому новость для меня позитивная.

Итоги 2019 года

Пролетел еще один год, и это значит, что наступило время для традиционного подведения итогов по проектам.

  • Блог DLangGamedev переехал на новый адрес и движок: https://dlanggamedev.xtreme3d.ru.
  • Был значительно улучшен движок Dagon: добавлена поддержка декалей, трубчатых источников света и “фонариков”, кубических карт окружения. Благодаря сторонним разработчикам появилась поддержка рендеринга ландшафтов, в том числе процедурных с использованием шума OpenSimplex, а также интеграция GUI-тулкита Nuklear. Были полностью переписаны рендер и система постобработки в Dagon, упорядочена структура модулей движка, внесено множество оптимизаций производительности, реализован эффект объемного рассеяния света в атмосфере (volumetric light scattering) для направленных источников света. Mateusz Muszyński на основе Dagon и Nuklear написал клон Sokoban с редактором уровней.
  • Я начал работу по интеграции физического движка Newton Dynamics в Dagon в рамках проекта dagon-newton и биндинга bindbc-newton. Newton был выбран как наиболее функциональный физический движок с интерфейсом C.
  • Вышли dlib 0.16.0 и 0.17.0. Библиотека постепенно приближается к релизу версии 1.0.
  • Я написал bindbc-wgpu, биндинг к графической библиотеке wgpu.

Ну и, конечно, не могу не назвать самые значимые для меня события в мире CG, СПО и геймдева:

  • Появление WebGPU, нового веб-стандарта для высокопроизводительной графики.
  • Выход Blender 2.80 c новым вьюпорт-движком Eevee.
  • Открытие кода Mimalloc, быстрого и компактного аллокатора памяти от Microsoft.