Давным-давно, в одной далеко не завершённой сборке...
Шла очередная неделя разработки. Одни сражались с UI, другие — с физикой, а третьи вели неравный бой с багом, который появляется только после полуночи.
Но сегодня силы комьюнити снова собираются здесь.
Несите в комментарии скриншоты, демки, ролики и ссылки на свои проекты.
Да пребудет с вашим билдом стабильный фреймрейт.
@make_game (теперь в VK и Max)
Шла очередная неделя разработки. Одни сражались с UI, другие — с физикой, а третьи вели неравный бой с багом, который появляется только после полуночи.
Но сегодня силы комьюнити снова собираются здесь.
Несите в комментарии скриншоты, демки, ролики и ссылки на свои проекты.
Да пребудет с вашим билдом стабильный фреймрейт.
@make_game (теперь в VK и Max)
1❤8
Media is too big
VIEW IN TELEGRAM
Raylib — это open-source библиотека для разработки игр и графических приложений на C. Известна тем, что работает без внешних зависимостей, собирается из пары файлов и поддерживает кучу платформ — от Windows и Linux до веба и микроконтроллеров.
Так вот, на днях вышел raylib 6.0 — крупнейший релиз за 12 лет существования библиотеки. 2000 коммитов, 330 закрытых issues, 70 новых примеров и несколько изменений, которые стоит знать.
Главное, что появилось — софтверный рендерер rlsw. Раньше raylib требовал OpenGL и нормальной графики. Теперь он может работать на чистом CPU, без GPU. Это не эмуляция, отдельная библиотека, совместимая с OpenGL 1.1+, и она встраивается в существующий API без изменений в коде проекта. 30-60 FPS на базовых вещах.
Зачем это нужно? Уже работает порт для ESP32, микроконтроллеры без графического ускорителя теперь могут рендерить 2D и простую 3D. И это открывает дверь для RISC-V устройств, которые часто идут без GPU.
Три новых платформенных бэкенда:
— Memory — рендеринг в память без окна. Headless, серверная генерация изображений, экспорт кадров в файлы.
— Win32 — нативный Windows-бекенд без GLFW/SDL. Пока экспериментальный, но шаг к тому, чтобы библиотека была самодостаточной.
— Emscripten — веб без зависимостей. Поддерживает и WebGL, и 2D canvas для софтверного режима.
Переработанная скелетная анимация. Теперь можно смешивать анимации между кадрами и между разными клипами. Персонаж плавно переходит от бега к атаке, а не рубит глаз. GPU-скиннинг тоже оптимизировали.
Файловая система и работа с текстом. +40 функций для файлов, +30 для строк — всё собрали в один модуль, убрали старый utils. Полная библиотека теперь собирается из 6-7 исходников.
Система сборки. Новый config.h: отключаете ненужные модули флагом командной строки. И инструмент rexm для управления 200+ примерами.
Релиз набрал 280 реакций на GitHub за сутки. Сообщество активное: 850+ контрибьюторов за всю историю, 210 новых в этом релизе.
Полный ченжлог: https://github.com/raysan5/raylib/releases/tag/6.0
Кто-то уже использовал raylib в своих проектах?
@make_game
Так вот, на днях вышел raylib 6.0 — крупнейший релиз за 12 лет существования библиотеки. 2000 коммитов, 330 закрытых issues, 70 новых примеров и несколько изменений, которые стоит знать.
Главное, что появилось — софтверный рендерер rlsw. Раньше raylib требовал OpenGL и нормальной графики. Теперь он может работать на чистом CPU, без GPU. Это не эмуляция, отдельная библиотека, совместимая с OpenGL 1.1+, и она встраивается в существующий API без изменений в коде проекта. 30-60 FPS на базовых вещах.
Зачем это нужно? Уже работает порт для ESP32, микроконтроллеры без графического ускорителя теперь могут рендерить 2D и простую 3D. И это открывает дверь для RISC-V устройств, которые часто идут без GPU.
Три новых платформенных бэкенда:
— Memory — рендеринг в память без окна. Headless, серверная генерация изображений, экспорт кадров в файлы.
— Win32 — нативный Windows-бекенд без GLFW/SDL. Пока экспериментальный, но шаг к тому, чтобы библиотека была самодостаточной.
— Emscripten — веб без зависимостей. Поддерживает и WebGL, и 2D canvas для софтверного режима.
Переработанная скелетная анимация. Теперь можно смешивать анимации между кадрами и между разными клипами. Персонаж плавно переходит от бега к атаке, а не рубит глаз. GPU-скиннинг тоже оптимизировали.
Файловая система и работа с текстом. +40 функций для файлов, +30 для строк — всё собрали в один модуль, убрали старый utils. Полная библиотека теперь собирается из 6-7 исходников.
Система сборки. Новый config.h: отключаете ненужные модули флагом командной строки. И инструмент rexm для управления 200+ примерами.
Релиз набрал 280 реакций на GitHub за сутки. Сообщество активное: 850+ контрибьюторов за всю историю, 210 новых в этом релизе.
Полный ченжлог: https://github.com/raysan5/raylib/releases/tag/6.0
Кто-то уже использовал raylib в своих проектах?
@make_game
❤7👍4🔥3🤔1
Valve обновила GameNetworkingSockets впервые за 4 года
Библиотека, на которой держатся сети Counter-Strike и Dota 2, получила релиз 1.5 — первый тег с июня 2022. За это время накопилось около 350 коммитов.
GNS — транспортный слой для игр: UDP с надёжной доставкой, шифрованием end-to-end, congestion control и NAT traversal через ICE. По устройству близка к QUIC, но несовместима с RFC 9000 — Valve шла своим путём. С 2018 года библиотека open-source, и инди-разработчики получили боевой сетевой движок бесплатно.
Ключевое в 1.5: изменилась семантика
Native ICE-клиент пока в beta, для production P2P Valve рекомендует WebRTC ICE.
читать далее
@make_game (теперь в VK и Max)
Библиотека, на которой держатся сети Counter-Strike и Dota 2, получила релиз 1.5 — первый тег с июня 2022. За это время накопилось около 350 коммитов.
GNS — транспортный слой для игр: UDP с надёжной доставкой, шифрованием end-to-end, congestion control и NAT traversal через ICE. По устройству близка к QUIC, но несовместима с RFC 9000 — Valve шла своим путём. С 2018 года библиотека open-source, и инди-разработчики получили боевой сетевой движок бесплатно.
Ключевое в 1.5: изменилась семантика
SendMessages — каждое сообщение теперь возвращает собственный результат. Старый код «отправил и забыл» нужно пересмотреть. Добавлены конфиги ECN и jitter-метрики, ETW-диагностика на Windows, исправлены race-условия в P2P через WebRTC ICE, которые приводили к зависаниям. Появились community Rust bindings.Native ICE-клиент пока в beta, для production P2P Valve рекомендует WebRTC ICE.
читать далее
@make_game (теперь в VK и Max)
❤6👍2👎1
Разработка должна продолжаться. Скриншоты должны течь рекой.
Добро пожаловать в Воскресный скриншотник. Говорят, сам Лисан аль-Гаиб предвидел, что на этой неделе вы закроете таску, которая висела с прошлого месяца.
Оседлайте песчаного червя своего игрового движка и приносите в комментарии скриншоты, демки, гифки и ссылки на свои проекты. Помните: страх перед дедлайном убивает разум. Тот, кто контролирует прогресс — контролирует релиз!
Добро пожаловать в Воскресный скриншотник. Говорят, сам Лисан аль-Гаиб предвидел, что на этой неделе вы закроете таску, которая висела с прошлого месяца.
Оседлайте песчаного червя своего игрового движка и приносите в комментарии скриншоты, демки, гифки и ссылки на свои проекты. Помните: страх перед дедлайном убивает разум. Тот, кто контролирует прогресс — контролирует релиз!
❤4👍2🎉1
Balatro — рогалик-колодостроитель на Love2D, написанный одним человеком (LocalThunk). Игра стала хитом, а её исходники после утечки обрели мемный статус: мол, код ужасен. На деле всё интереснее — в нём полно математических трюков и неочевидных инженерных решений, которые держат игру на плаву.
На видео разбирают внутренности Balatro:
— Формула Chips х Mult: как игра распознаёт тип руки, накладывает эффекты джокеров и считает итоговый счёт с учётом модификаторов вроде foil и holo.
— Мышь как генератор случайности: позиция курсора используется как дешёвая энтропия для RNG. Просто и работает.
— Сортировка карт через float: ранг, масть и ID карты упаковываются в отдельные десятичные разряды одного числа с плавающей точкой. Элегантный способ сравнивать карты одним значением.
— Паттерны в коде: Flyweight, вариация Strategy и другие приёмы. Не всегда по учебнику, но прагматично.
— Сборка мусора: кастомный инкрементальный GC: 0,3 мс бюджета на кадр плюс emergency-проход, если память перевалила за 300 МБ. Заимствовано из nuGC Макса Кахилла.
Много технических деталей и объяснений, почему код устроен именно так, прикрепил к посту файлом или вот ютуб кому там удобнее.
@make_game (теперь в VK и Max)
На видео разбирают внутренности Balatro:
— Формула Chips х Mult: как игра распознаёт тип руки, накладывает эффекты джокеров и считает итоговый счёт с учётом модификаторов вроде foil и holo.
— Мышь как генератор случайности: позиция курсора используется как дешёвая энтропия для RNG. Просто и работает.
— Сортировка карт через float: ранг, масть и ID карты упаковываются в отдельные десятичные разряды одного числа с плавающей точкой. Элегантный способ сравнивать карты одним значением.
— Паттерны в коде: Flyweight, вариация Strategy и другие приёмы. Не всегда по учебнику, но прагматично.
— Сборка мусора: кастомный инкрементальный GC: 0,3 мс бюджета на кадр плюс emergency-проход, если память перевалила за 300 МБ. Заимствовано из nuGC Макса Кахилла.
Много технических деталей и объяснений, почему код устроен именно так, прикрепил к посту файлом или вот ютуб кому там удобнее.
@make_game (теперь в VK и Max)
Media is too big
VIEW IN TELEGRAM
6👍10❤6❤🔥2👏1🎉1
Видео от инди-разработчика, который выпустил собственную игру и собрал весь практический опыт в один инфо-дамп. Всё, что автор узнал о разработке, маркетинге и релизе, уложенное в полчаса.
Если планируете свой релиз или просто хотите понять, как устроена внутренняя кухня инди-разработки, то можно глянуть на ютубе или в этом посте.
@make_game (теперь в VK и Max)
Если планируете свой релиз или просто хотите понять, как устроена внутренняя кухня инди-разработки, то можно глянуть на ютубе или в этом посте.
@make_game (теперь в VK и Max)
Media is too big
VIEW IN TELEGRAM
❤5🔥4👏1
This media is not supported in your browser
VIEW IN TELEGRAM
Когда сцена должна выглядеть хорошо только с одного ракурса
😁29🗿5✍3
Наткнулся на статью аж 2019 года, но хорошо объясняющую как правильно рисовать линии в браузере. Правильно — это чтобы красиво и быстро.
Стандартный способ плох: толщину нормально не задашь, стыки между линиями и концы не оформишь. Автор предлагает вместо этого отправить в видеокарту одну простую заготовку и сказать: «размножь её для каждого участка линии, сам растяни и поверни, как нужно». Видеокарта делает это быстро, а программист получает полный контроль над толщиной, стыками и концами.
Не очень понятно объяснил, наверное, но вы лучше сами статью гляньте, там интерактивные демо внутри, хорошо сделано: https://wwwtyro.net/2019/11/18/instanced-lines.html
@make_game (теперь в VK и Max)
Стандартный способ плох: толщину нормально не задашь, стыки между линиями и концы не оформишь. Автор предлагает вместо этого отправить в видеокарту одну простую заготовку и сказать: «размножь её для каждого участка линии, сам растяни и поверни, как нужно». Видеокарта делает это быстро, а программист получает полный контроль над толщиной, стыками и концами.
Не очень понятно объяснил, наверное, но вы лучше сами статью гляньте, там интерактивные демо внутри, хорошо сделано: https://wwwtyro.net/2019/11/18/instanced-lines.html
@make_game (теперь в VK и Max)
❤6👍3
Открытый урок «Zenject в создании игр на Unity»
➡️ 21 мая в 20:00 МСК
Бесплатно. Урок в рамках старта курса «Unity-разработчик. Продвинутый уровень» от Otus.
Сначала всё просто, но со временем связи между объектами усложняются, изменения начинают ломать систему, а поддержка требует всё больше времени. Без управления зависимостями проект становится трудно масштабируемым.
На открытом уроке разберётесь, как использовать Zenject и подход DI, чтобы навести порядок в коде. Увидите, как структурировать проект, правильно связывать объекты и избежать типичных ошибок при работе с зависимостями.
📎 Ссылка на регистрацию: https://otus.ru
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Бесплатно. Урок в рамках старта курса «Unity-разработчик. Продвинутый уровень» от Otus.
Сначала всё просто, но со временем связи между объектами усложняются, изменения начинают ломать систему, а поддержка требует всё больше времени. Без управления зависимостями проект становится трудно масштабируемым.
На открытом уроке разберётесь, как использовать Zenject и подход DI, чтобы навести порядок в коде. Увидите, как структурировать проект, правильно связывать объекты и избежать типичных ошибок при работе с зависимостями.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3👎2❤1
В 2013 году Disney купил Lucasfilm и прикрыл LucasArts. Разработчики Raven Software поняли, что их код вот-вот закопают навсегда и в панике выложили на GitHub исходники Jedi Outcast и Jedi Academy. Прямо как есть, не успев вычистить комментарии.
Получился редкой красоты музей переработок и отчаяния. Несколько находок:
—
—
—
—
Вот тут более полная подборка интересного из их кода.
@make_game (теперь в VK и Max)
Получился редкой красоты музей переработок и отчаяния. Несколько находок:
—
bg_saber.c — вся система боя на световых мечах это один switch на 5000 строк;—
sv_savegame.cpp — пришлось писать фейковый busy-loop, чтобы окно «Saving» висело хотя бы секунду. И комментарий: «Брошусь под автобус, если ещё раз придётся делать такую дичь»;—
q_math.cpp — легендарный fast inverse square root из Quake 3, унаследованный от Кармака. Даже сами Raven годы спустя оставили в комментарии только «what the fuck?»;—
ModView — функция FuckingWellSetTheDocumentNameAndDontBloodyIgnoreMeYouCunt(), родившаяся в неравной борьбе с Win32 API.Вот тут более полная подборка интересного из их кода.
@make_game (теперь в VK и Max)
1❤27
Steam пересобрал теги — убрал 28 старых, добавил 17 новых, кое-что переименовал.
Из новых тегов:
— Bullet Heaven. Противоположность Bullet Hell: игрок прокачивает героя, а тот сам отстреливает толпы врагов. Жанр Vampire Survivors и её клонов, которые до этого валились в Bullet Hell.
— Desktop Companion. Игры, занимающие только часть экрана и работающие параллельно с другими задачами.
— Wuxia и Xianxia. Два жанра китайского фэнтези. Wuxia — историческое, про боевые искусства, школы и поединки. Xianxia — про культивацию ци и сверхспособностей.
— Falling Blocks. Жанр Тетриса и наследников.
— Cleaning, Organizing, Decorating. Уборка, разбор беспорядка, расстановка предметов и мебели. Под это попадают Powerwash Simulator, Unpacking и подобные.
— Espionage. Шпионаж как отдельный жанр, отдельно от стелса и триллеров.
Переименовали:
— Clicker стал Incremental. Тег теперь шире, про весь жанр игр, где числа растут.
— Conversation стал Dialogue Heavy.
— Pool стал Billiards. Под Pool разработчики начали постить игры с плавательным бассейном.
Из удалённых заметнее всего:
— Бренды: LEGO, Warhammer 40K, D&D, GameMaker, RPGMaker, Kickstarter.
— Masterpiece, который разработчики ставили себе самому.
— Mature, NSFW, Drama, Documentary, Foreign.
@make_game (теперь в VK и Max)
Из новых тегов:
— Bullet Heaven. Противоположность Bullet Hell: игрок прокачивает героя, а тот сам отстреливает толпы врагов. Жанр Vampire Survivors и её клонов, которые до этого валились в Bullet Hell.
— Desktop Companion. Игры, занимающие только часть экрана и работающие параллельно с другими задачами.
— Wuxia и Xianxia. Два жанра китайского фэнтези. Wuxia — историческое, про боевые искусства, школы и поединки. Xianxia — про культивацию ци и сверхспособностей.
— Falling Blocks. Жанр Тетриса и наследников.
— Cleaning, Organizing, Decorating. Уборка, разбор беспорядка, расстановка предметов и мебели. Под это попадают Powerwash Simulator, Unpacking и подобные.
— Espionage. Шпионаж как отдельный жанр, отдельно от стелса и триллеров.
Переименовали:
— Clicker стал Incremental. Тег теперь шире, про весь жанр игр, где числа растут.
— Conversation стал Dialogue Heavy.
— Pool стал Billiards. Под Pool разработчики начали постить игры с плавательным бассейном.
Из удалённых заметнее всего:
— Бренды: LEGO, Warhammer 40K, D&D, GameMaker, RPGMaker, Kickstarter.
— Masterpiece, который разработчики ставили себе самому.
— Mature, NSFW, Drama, Documentary, Foreign.
@make_game (теперь в VK и Max)
1🔥3
Если вы устали от бесконечных тасок и созвонов, то мы приготовили для вас игру, которая поможет отдохнуть
А заодно проверить вашу способность быстро запоминать новую инфу. Переходите по ссылке и играйте в нашу «Меморину». И делитесь результатами в комментариях!
Играть тут: https://tprg.ru/S1G2
@make_game (теперь в VK и Max)
А заодно проверить вашу способность быстро запоминать новую инфу. Переходите по ссылке и играйте в нашу «Меморину». И делитесь результатами в комментариях!
Играть тут: https://tprg.ru/S1G2
@make_game (теперь в VK и Max)
👍1
HDR output в Godot 4.7
Команда Godot подтвердила: в 4.7 движок получит нативный HDR-output на Windows, macOS, iOS, visionOS и Linux. Сейчас бета, релиз — летом.
Что даёт HDR. Монитор показывает одновременно очень тёмные и очень яркие участки кадра — солнечный блик на металле рядом с глубокой тенью. На SDR всё сжимается в 8 бит и теряет контраст. Движок отдаёт картинку в линейном пространстве, не клампя яркость.
Технические нюансы:
- scRGB и HDR10. Windows — через DXGI, Apple — через EDR.
- Pipeline остаётся прежним, переключение делается флагом в Project Settings — никакого rework шейдеров.
- Linux — через wlroots (Hyprland, KDE 6 уже умеют). X11 — нет.
RC 4.7 beta 2 доступен для тестов.
@make_game (теперь в VK и Max)
Команда Godot подтвердила: в 4.7 движок получит нативный HDR-output на Windows, macOS, iOS, visionOS и Linux. Сейчас бета, релиз — летом.
Что даёт HDR. Монитор показывает одновременно очень тёмные и очень яркие участки кадра — солнечный блик на металле рядом с глубокой тенью. На SDR всё сжимается в 8 бит и теряет контраст. Движок отдаёт картинку в линейном пространстве, не клампя яркость.
Технические нюансы:
- scRGB и HDR10. Windows — через DXGI, Apple — через EDR.
- Pipeline остаётся прежним, переключение делается флагом в Project Settings — никакого rework шейдеров.
- Linux — через wlroots (Hyprland, KDE 6 уже умеют). X11 — нет.
RC 4.7 beta 2 доступен для тестов.
@make_game (теперь в VK и Max)
🔥8
Джон Кармак ответил человеку, который собрался открывать игровую студию. Если коротко — не ждать благодарности от рынка:
Распределение возможных наград от старта игровой студии сегодня так себе. Рынок насыщен, ниша берётся только при сильном исполнении и в продукте, и в бизнесе — плюс изрядная удача. Готовьтесь сжечь семизначную сумму с не очень хорошими шансами её отбить.
Если всё-таки идти, то совет сводится к трём пунктам:
— Точно определить аудиторию. Конкретные люди, которых держишь в голове при каждом продуктовом решении. Никаких «инди-сообществ» и других абстракций.
— Сначала собрать самую маленькую игру, за которую кто-то готов заплатить. Даже она займёт сильно больше времени, чем кажется.
— Hill-climb the value: найти куски, где у игроков загораются глаза, и усилить их. Параллельно чинить то, что бесит или путает.
Звучит как стандартный стартап-совет. Только вот про семизначную сумму пугает, что сразу так жёстко то :)
@make_game (теперь в VK и Max)
Распределение возможных наград от старта игровой студии сегодня так себе. Рынок насыщен, ниша берётся только при сильном исполнении и в продукте, и в бизнесе — плюс изрядная удача. Готовьтесь сжечь семизначную сумму с не очень хорошими шансами её отбить.
Если всё-таки идти, то совет сводится к трём пунктам:
— Точно определить аудиторию. Конкретные люди, которых держишь в голове при каждом продуктовом решении. Никаких «инди-сообществ» и других абстракций.
— Сначала собрать самую маленькую игру, за которую кто-то готов заплатить. Даже она займёт сильно больше времени, чем кажется.
— Hill-climb the value: найти куски, где у игроков загораются глаза, и усилить их. Параллельно чинить то, что бесит или путает.
Звучит как стандартный стартап-совет. Только вот про семизначную сумму пугает, что сразу так жёстко то :)
@make_game (теперь в VK и Max)
😁7👍2
После почти годовой задержки наконец вышел новый LTS GameMaker. Это финальная стабильная версия текущего рантайма движка — дальше разработка движется в сторону нового рантайма GMRT.
Если вы уже сидели на свежих бетах 2024.14, то это по сути они же, только в релизном виде. А вот тем, кто переезжает со старой версии, стоит заранее заглянуть в release notes — там есть изменения, о которых лучше знать до обновления.
Все подробности расписаны в блоге GameMaker, а скачать сборку можно со страницы загрузки.
@make_game (теперь в VK и Max)
Если вы уже сидели на свежих бетах 2024.14, то это по сути они же, только в релизном виде. А вот тем, кто переезжает со старой версии, стоит заранее заглянуть в release notes — там есть изменения, о которых лучше знать до обновления.
Все подробности расписаны в блоге GameMaker, а скачать сборку можно со страницы загрузки.
@make_game (теперь в VK и Max)
❤1👍1
Ещё одна неделя позади! Что у вас нового в проектах? Делитесь демками и скриншотами своих игр в комментариях. Покажите сообществу над чем работаете!
Ссылки на свои каналы разрешены.
@make_game (теперь в VK и Max)
Ссылки на свои каналы разрешены.
@make_game (теперь в VK и Max)
1❤5👍2🔥2