Не успел я начать вести свой лингвоблог на Хабре, как у меня неожиданно появился первый коммерческий проект, связанный с лингвистикой — причём не компьютерной или "переводческой", а вполне себе как я люблю, с поиском закономерностей и мысленными экспериментами.
Одна из компаний, разрабатывающих компьютерные игры, предложила мне заказ на разработку артланга — вымышленного языка — для своего игрового мира. Им важно было, чтобы язык был вымышленный — но чтобы имел вполне себе конкретную генетическую привязку и звучал правдоподобно для той семьи и группы, в которой относится.
Был очень обрадован, что за плату можно позаниматься тем, что я и так обожаю делать. Коллеги из геймдева оказались очень любознательными и продуктивными, с интересом слушали мои мини-лекции по теоретическим аспектам в зуме и выполняли ооочень много "домашней работы" со словарями. Закрыли проект, взаимно довольные друг другом. К сожалению, записей языка в исполнении штатных дикторов услышать пока не удалось (только в своём произношении) — проект ещё в разработке, игровой мир ещё строится в остальных своих аспектах.
Но в целом история немного поучительная, потому что ещё раз показывает, что твоим коммерческим заказом может стать любое твоё нишевое увлечение — даже если у него не было коммерческих перспектив. Теперь подумываю развиваться дальше в этом направлении и заняться придумыванием артлангов на заказ. Пока сделаю похожий проект для себя и для души (coming soon!) — а там видно будет))
Иллюстративное изображение, сгенерировано с помощью ИИ
Flight Simulator добавили прямо в карты от Google — в веб‑версии Google Earth появилась возможность полетать над своим домом. Симулятор в точности воссоздаёт 3D‑мир с рельефом и всеми строениями, прямо как в симуляторе от Microsoft. При этом управление достаточно нестандартное. Ищем свой дом на Google Earth — жмём Tools и выбираем Flight Simulator.
Сегодня, 12 июня, пройдёт GameDev Meetup — встреча для тех, кто делает игры или хочет в этом разобраться: разработчиков, художников, геймдизайнеров, программистов и просто людей из индустрии. Онлайн-формат доступен всем желающим. Начало: 12 июня, 14:00. Ссылка на трансляцию.
Митап — это пять докладов подряд про разные стороны разработки игр, кофебрейк с печеньками для нетворкинга и открытая дискуссия в финале, где можно задать вопросы спикерам и обсудить свой проект. Формат живой: не скучная лекция, а интересный и важный разговор.
В Поиске Яндекса появилась мини‑игра с «пухососами». Первые запросы в «Поиске» на пухососы появились 3 июня (около 5 тысяч), а уже 4 июня интерес пользователей к ним вырос до 23 тысяч. В итоге на каждый миллион запросов к «Яндексу» почти 90 приходилось про пухососы. Люди массово пытались выяснить, существует ли этот робот в реальности, искали фото и видео, а также вбивали ироничные формулировки вроде «пухосос это ии или нет», «пухосос купить» и «где встретить пухососа в Москве».
В ответ на этот тренд «Яндекс» интегрировал в «Поиск» тематическую игру, которая позволяет протестировать функционал главного мема этой недели и разогнать скопившийся пух прямо на экране своего устройства с помощью пухососа. Интерактив автоматически активируется, если пользователь вводит в строке «Поиска» запросы: «пухососы» или «пух тополя».
Поводом для новой волны обсуждений стал завирусившийся в соцсетях ролик с технологичными «роботами‑пухососами», которые якобы очищают улицы Москвы: видео выглядело настолько правдоподобно, что пользователи принялись активно обсуждать столичные инновации, хотя на самом деле кадры — результат удачной генерации нейросети.
Разработчики игры Squadika запретили играть в неё представителям внеземных цивилизаций, а так же коровам, мухам и искусственному интеллекту. Пометка "For humans only" добавлена, чтобы обеспечить наилучший игровой опыт!
По этому поводу релизнул бесплатный SGG PerfMeter (https://github.com/romanilyin/sgg-perfmeter) – это что-то типа умной измерялки FPS под Unity 6000.4+ URP 17.4+, но есть ряд отличий.
SGG Perfmeter
AI-first, т.е. там прям из коробки есть для агентов всё чтобы тулзу активно использовать, делать А/Б-тесты производительности, записывать сессии и анализировать их и т.п. Это инструмент, данные которого им удобно читать. Экспортирует структурированные данные через C# API и MCP-команды. Можно искать проблемные места без парсинга логов и разглядывания скриншотов. Можно работать и без AI, естественно.
Это штука именно под актуальный Rendergraph со всеми боттлнек-детектами, измерением CPU/GPU по отдельности, овердро, спайк-каунт, CPU загрузка по ядрам, запоминание положения и настройки камер при просадках и т.п. Включая визуальную heatmap-карту overdraw для URP Render Graph. Часть фишек доступна только в URP17.4, но пакет собирается с 2022.3 и выше (там не всё будет работать).
Куча виджетов и скинов сразу на UI Toolkit, можно писать свои и добавлять (специально делал модульно и с темами оформления), можно отключить нафиг некоторые виджеты и оставить только те метрики которые вам реально надо смотреть. Или вообще отключить оверлей, чисто из кода или агентами смотреть.
Работает в том числе в билде, а не только в редакторе. Можно получать реальные диагностические данные прямо на целевых устройствах. Zero code настройки есть в специальном окне (SGG\PerfMeter).
Установка простая: ставим пакет из гита, открываем окно настройки, оттуда всё настраиваем прожав кнопочки, копируем один cs-файл в проект (код генерируется прямо в окне, можно просто положить, можно встроить в ваш bootstrap) и всё.
Бесплатно, в том числе для коммерции.
Надеюсь, ваши игры от этого станут быстрее работать и мои инвестиции в монитор с большой частотой кадров были не зря 🙂
У меня два вопросах к подобным мне разработчикам open source, живущим в России.
Как вы осуществляете поддержку своих проектов?
Я - через github и свой дискордик. Не похоже, чтобы блокировка последнего нанесла сильный удар по русскоязычной аудитории. Я наблюдаю целые русскоязычные сервера, которые никуда не делись. И даже не похоже, чтобы поубавили в активности. Впрочем, справедливости ради, один человек обратился ко мне за саппортом через steam, поскольку через дискорд не мог. В общем, переформулируя вопрос: добавили ли вы новые каналы поддержки после официальной блокировки дискорда?
Как вы принимаете донаты?
Я - через бусти и telegram wallet. Интересно, какие есть ещё простые пути?
Doom запускался на 486-м процессоре с 4 МБ RAM ещё в 1993 году.
И самое интересное - весь мир игры рендерился через BSP-дерево, binary space partition tree.
Джон Кармак строил это дерево при загрузке уровня, а не на каждом кадре. Карта заранее делилась на области, а порядок отрисовки уже был сохранён внутри структуры.
Во время рендера движку не нужно было каждый раз заново вычислять видимость. Он просто проходил по дереву.
Как это работало:
• BSP-узел делит пространство на переднюю и заднюю часть
• если игрок спереди - сначала рендерится переднее поддерево
• если игрок сзади - сначала рендерится заднее поддерево
• порядок уже задан самой структурой дерева
Именно поэтому Doom не нуждался в z-buffer.
Корректная видимость появлялась не из трюков с глубиной, а из самого порядка обхода BSP-дерева.
Очень маленький код, но за ним стоит одна из самых красивых инженерных идей в истории игровых движков.
Представлен открытый проект OpenPixel-RPG, который генерирует игру в стиле RPG Maker прямо из реального города. Можно загрузить практически любое место на планете и получить из него играбельную JRPG-карту. На выходе получается «игра» с квестами, NPC и «живым» окружением. Система работает на нейродвижке WorldX и визуализации через Gemini.
Представлен открытый проект waylandcraft - это полнофункциональный композитор Wayland полностью интегрирован в мод Fabric для Minecraft Java 26.1.2.
«Запускайте приложения и открывайте окна прямо в вашем мире Minecraft. Перетаскивайте данные из одного окна в другое. Закрепите видеоплеер на вашем HUD. Выбор за вами. Важно: этот мод работает только под Linux! MacOS и Windows не поддерживаются», — пояснил автор проекта.
В Minecraft теперь можно создать идеальный мир — игроки нашли способ создать карту, на который вообще все биомы, ресурсы и ключевые структуры расположены в 1000 блоков от спавна. Магия реализуется с помощью сида — это специальный номер, который всегда будет генерировать один и тот же мир. Идеальную структуру искали почти 15 лет. При создании мира пишем сид: 8500081009970950196.
В Steam вышла бесплатная (2 кота без доплаты) игра Sill Cats, которая запускает пиксельных котов прямо у на рабочем столе. Питомцы бегают по окнам и мониторам, прыгают, играются с курсором и периодически устраивают полноценные ночные тыгдыки по экрану. Поведение тоже максимально кошачье: днём спят где-нибудь в углу, а под вечер начинают носиться как ненормальные.
Поиграть можно в браузере, ведь Ebitengine имеет неплохой экспорт в wasm. Она мало весит, быстро работает, и экспорт не требовал лишних усилий - это вам не шуточный игровой движок.
С этим шаблоном старт начала работы над игровой логикой и "мясом" игры становится ближе. Это позволяет +/- выйти на удобство какого-нибудь Godot, где не нужно первые несколько часов настраивать как у нас обрабатывается input, звук и сцены. Я этот шаблон буду дорабатывать по мере участия в джемах, за каждую мини-игру у меня копится TODO на то, что еще там можно было бы улучшить.
Если тема разработки игр на Go вам интересна, заходите в наше русскоязычное сообщество в телеграме. Мы там обсуждаем всякие библиотеки для геймдева, свои игры, и всё такое.
Кстати, ребята из чатика тоже сделали свои игры на Ebitengine, вот они:
Как разработчикам монетизировать свои игры в 2026?
Всем привет! Хотели похвастаться очередным сложным, но очень важным шагом на пути к возрождению российского геймдева и заодно спросить мнения окружающих (да, мы всегда сначала делаем, потом думаем).
Традиционный подход подразумевает, что разработчик заключает договор с площадкой (Steam, VK Play, Itch и т.д.). Игрок покупает игру, и деньги идут на счёт платформы. После этого в определенные даты происходит выплаты на счета разработчиков за вычетом комиссий. Где-то больше, где-то меньше, где-то по-другому. Но смысл тот же. Этот подход позволяет, во-первых, брать комиссии, во-вторых, легче работать с возвратами и в-третьих, быстрее распознавать отмывание денег и мошенничество.
Мы решили использовать схему маркетплейсов, где каждый разработчик приходит со своим статусом (ООО, ИП, смз). Но приходит он в первую очередь не к нам, а к платёжным агрегаторам типа Юкасса, Робокасса, любая …касса. Одним словом, подключает себе интернет-эквайринг, такое делает любой банк. Банк ему даёт API для подключения, ID магазина, ключи для проведения оплат и всё, действуй.
Где здесь мы? Мы предоставляем бесплатный хостинг для игр. Сама площадка + страница игры + страница разработчика. Всё тоже самое что у itch[.]io. Заодно есть консоль разработчика, в которую добавляется всё больше и больше возможностей. Соответственно, в этой консоли разработчик указывает тот самый идентификатор магазина, суперсекретный ключ и дальше надеется на магию.
Если магия происходит, то наш скрипт подставляет его данные в другой скрипт, только уже от платёжного агрегатора. Игрок видит кнопку обычную кнопку оплаты и оплачивает, после чего денюжки магическим образом летят на счёт разработчика. На этом магия заканчивается, начинается то ли математика, то ли бухгалтерия (я в этом не силён, не шарю).
Опережу (почти) все вопросы и сразу отвечу:
Q: На что вы будете существовать если у вас комиссии 0%?
A: При покупке игры рядом есть еще кнопочка “поддержать платформу”, надеемся, что это сработает
Q: Вы делаете очередного убийцу стима?
A: Нет
Q: Это точно не развод?
A: Точно нет, чесслово
На остальные вопросы обязательно ответим. Так как это не реклама, то прямо указывать название площадки не буду, но подскажу, что наш канал https://t.me/dustore_official
Что такое LDL? Это графическая библиотека с единым API для всех систем как старых, так и новых.
Раньше я писал её на C++98, что давало хорошую портабельность. Но сейчас я пересмотрел многие тезисы, которые декларировал на GitHub, чтобы наконец добраться до первого релиза.
Новая стратегия
Я решил выпускать релизы без реализации полного функционала (графика, звук, шрифты и т.д.) постепенно, итеративно.
Перешёл на C89 для максимальной переносимости. Это не только DOS или Windows 3.x, но и старые системы вроде Solaris, PlayStation 1 и другие.
Для первого релиза реализую минимальный базовый функционал: графику (OpenGL, Vulkan), окна и события. По возможностям аналог GLFW.
С каждым следующим релизом буду добавлять: 2D-рендер, звук, шрифты и прочее.
Лицензия и целевые платформы
Лицензия меняется на LGPLv3.
На старте поддерживаются Windows и Linux.
Качество и инструменты
При разработке использую:
AddressSanitizer (ASan)
UndefinedBehaviorSanitizer (UBSan)
Различные анализаторы кода
Я считаю, что такая стратегия полезнее, чем годами доводить библиотеку до версии 1.0 в офлайн-режиме.
Примеры и бэкенды
Добавлю десятки примеров с OpenGL 1.x, OpenGL 3.x и Vulkan.
Буду добавлять бэкенды для LDL: не только под ОС, но и поверх других графических библиотек — SDL, SFML, GLFW и т.д.
API остаётся единым для всех бэкендов.
Это позволит сразу добавить поддержку звука и шрифтов (через бэкенды), а в нативных версиях реализовывать их позже.
2D-рендер без границ
Одной из главных задач LDL я вижу создание единого 2D-интерфейса, который стирает различия между поколениями графики.
Вам не нужно думать о том, что находится в системе: современная видеокарта с Vulkan, старый ускоритель с OpenGL 1.2 или вообще только центральный процессор (Software Rendering).
Единый интерфейс: Вы используете одни и те же команды для рисования пикселей, линий и спрайтов.
Адаптивность: LDL сам выберет наиболее эффективный способ вывода изображения. На современной системе это будет аппаратное ускорение, а на «железе» без видеокарты оптимизированный программный растеризатор.
Визуальная честность: Ваш визуальный стиль останется неизменным, на чем бы он ни запускался. Это дает возможность делать игры и приложения, которые выглядят и работают одинаково и на ретро-ноутбуке, и на современном мониторе.
Философия: Машина времени в вашем коде
Зачем тратить силы на поддержку систем, которые многие считают «трупами»?
1. Борьба с цифровым забвением
Современный софт живет 3–5 лет. Мы выбрасываем железо не потому, что оно сломалось, а потому, что софт стал слишком тяжелым и ленивым. LDL — это протест против «запланированного устаревания». Я хочу, чтобы код, написанный сегодня, мог дышать в железе любой эпохи.
2. Инженерный аскетизм
Когда у тебя гигабайты памяти, ты перестаешь ценить каждый байт. Написание библиотеки под C89 для слабого железа — это духовная практика для программиста. Это возвращение к искусству находить изящные решения в условиях жестких ограничений. Каждый сэкономленный такт процессора — это дань уважения инженерам прошлого.
3. Преемственность поколений
Мы стоим на плечах гигантов, но часто забываем их имена. LDL сохраняет возможность для диалога между эпохами. Это инструмент, который позволяет современному разработчику почувствовать «металл» старых машин, не теряя связи с современными технологиями вроде Vulkan.
Итог
LDL — это Little Directmedia Layer. Он маленький не потому, что слабый, а потому, что в нем нет ничего лишнего. Это попытка создать код, который будет принадлежать не конкретной версии ОС, а истории программирования в целом.
Один API. Один код. Тридцать лет компьютерной истории.
Не раз замечал, что многие люди, даже заставшие эпоху DVD-дисков, до сих пор толком не понимают разницу между DVD+R и DVD-R. Что уж говорить о каких-нибудь сотрудниках больниц, которые требуют «правильные» диски для записи КТ или МРТ. Поэтому предлагаю немного разобраться в этом вопросе и кратко рассказать, как всё было. Да, эпоха DVD уже давно ушла, но разве не любопытно узнать что-то новое о такой, без преувеличения, олдфажной теме?
——————————————————
В конце 90-х и в нулевых, на фоне нового типа дисков случилась маленькая война форматов. Pioneer показала первый DVD-R привод ещё в 1997 году (нашёл для вас первоисточник), а сам формат продвигал DVD Forum — объединение, отвечавшее за «официальные» DVD-стандарты. В него входили такие фирмы как Hitachi, Panasonic, Mitsubishi Electric, Philips, Pioneer, Sony, Toshiba, JVC и еще несколько других компаний.
DVD+R пришёл позже, уже в 2002 году, и его развивала отдельная коалиция компаний, известная как DVD+RW Alliance, в основу ядра которой входили Dell, Hewlett-Packard, Mitsubishi Chemical/Verbatim, Philips, Sony, Thomson Multimedia и Yamaha и некоторые другие.
И если объяснять совсем просто, DVD-R и DVD+R — это одноразовые болванки почти для одних и тех же задач, но с разной логикой записи. У DVD-R используется метод адресации Land Pre-Pit, а у DVD+R — ADIP; второй считался менее чувствительным к помехам и лучше подходил для более скоростной записи. При этом у DVD+R была ещё одна полезная особенность: возможность выставить book type как DVD-ROM, что иногда улучшало совместимость со старыми проигрывателями. Но в эпоху ранних бытовых DVD-плееров именно DVD-R долго воспринимался как более надёжный и безопасный выбор с точки зрения совместимости, потому что этот формат появился раньше и быстрее стал массовым. Именно поэтому во многих государственных учреждениях до сих пор требуют именно DVD-R: их устаревшие приводы нередко банально не читают более поздний и технологически продвинутый формат DVD+R.
Олдфажный факт: если у Mitsubishi участие в обоих альянсах всё же было разведено по разным компаниям внутри большой Mitsubishi Group — речь о Mitsubishi Electric и Mitsubishi Chemical, — то про Sony такого уже не скажешь. Она, по сути, работала сразу на два фронта 😄
Я играю в игры больше 25 лет и запомнил их именно такими: душевными и затягивающими, с увлекательными механиками и интерактивностью, без внутриигровой валюты и попыток быть чем угодно, но не игрой. В моём Telegram канале тебя ждут не только обзоры на игры, но и актуальные новости, а также рассуждения о геймдеве. Присоединяйся к сообществу олдфагов!
Видеоигры помогают добиться успеха — Павел Дуров и основатель Coinbase рассказали об этом в Х. Предприниматели поделились своим опытом в гейминге: Брайан Армстронг в юности увлекался стратегиями вроде StarCraft и позже заметил, что бизнес во многом работает по тем же принципам. Павел Дуров согласился и добавил, что такие игры развивают планирование, тайминг и управление рисками — навыки, которые напрямую помогают в предпринимательстве.
Игра Resident Evil 9: Requiem перезагружает OLED-телевизоры — баг заметил один из игроков с LG C1. Оказалось, вспышка револьвера в игре настолько яркая, что дисплей умного ТВ просто не успевает обработать изображение. В итоге телевизор уходит в рестарт.