This media is not supported in your browser
VIEW IN TELEGRAM
Инди-разработчик выложил в открытый доступ полезную систему поиска пути (Pathfinding), которую он написал для своей 2D-игры про автоматизацию (где вместо конвейеров ресурсы таскают маленькие дроны).
Главная проблема, с которой он столкнулся — это конфликт двух разных типов движения. Нужно было объединить жёсткую логистику по сетке с плавным перемещением толпы (как в классических RTS).
В итоге получилась гибридная система, которая умеет работать в двух режимах:
— RTS Mode: Вы можете выделить сразу толпу агентов и отправить их в одну точку. Они плавно огибают препятствия с помощью стандартного
— Strict Route: Режим для фабричной логистики. Агенты идут по жёстко заданным направляющим на карте. Они заранее резервируют за собой клетки в матрице по пути следования, чтобы умно регулировать трафик и избегать столкновений на перекрёстках.
Исходный код полностью открыт на GitHub, можно свободно забирать в свои проекты или дорабатывать математику векторов: https://github.com/T-Toni/AGENT_SYSTEM
@make_game
Главная проблема, с которой он столкнулся — это конфликт двух разных типов движения. Нужно было объединить жёсткую логистику по сетке с плавным перемещением толпы (как в классических RTS).
В итоге получилась гибридная система, которая умеет работать в двух режимах:
— RTS Mode: Вы можете выделить сразу толпу агентов и отправить их в одну точку. Они плавно огибают препятствия с помощью стандартного
mp_grid, но в движении отвязываются от сетки. Чтобы толпа не слипалась в одну точку по прибытии, автор прикрутил алгоритм Бойдсов (Boids) для отталкивания и спираль Улама для поиска свободных парковочных мест вокруг цели.
— Strict Route: Режим для фабричной логистики. Агенты идут по жёстко заданным направляющим на карте. Они заранее резервируют за собой клетки в матрице по пути следования, чтобы умно регулировать трафик и избегать столкновений на перекрёстках.
Исходный код полностью открыт на GitHub, можно свободно забирать в свои проекты или дорабатывать математику векторов: https://github.com/T-Toni/AGENT_SYSTEM
@make_game
❤10❤🔥3👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Релиз, который я пропустил на прошлой неделе, но вот исправляюсь — picoCAD 2. Это небольшая программа для создания низкополигональных 3D моделей. Первая часть была написана на PICO-8 и стала довольно популярной, но упёрлась в ограничения платформы. Сиквел перевели на фреймворк LÖVE, поэтому редактор теперь работает намного плавнее.
Инструмент создавался как простая альтернатива большим 3D редакторам вроде Blender. Если вы работаете с пиксельной графикой и хотите без лишних сложностей добавить элементы 3D в свой проект, это отличный вариант.
Программа доступна на Steam и Itch.io. Обе версии продаются без DRM и работают полностью оффлайн.
@make_game
Инструмент создавался как простая альтернатива большим 3D редакторам вроде Blender. Если вы работаете с пиксельной графикой и хотите без лишних сложностей добавить элементы 3D в свой проект, это отличный вариант.
Программа доступна на Steam и Itch.io. Обе версии продаются без DRM и работают полностью оффлайн.
@make_game
❤8👍3😍1
Министерство геймдева уведомляет:
сегодня открывается Субботний скриншотник, и всем ученикам факультетов Программирования, Арта, Дизайна и Вечного Переписывания Туториалов надлежит явиться в комментарии.
Разрешается приносить скриншоты, демки, ролики, гифки и ссылки на собственные проекты. Даже если ваш проект пока похож не на магию, а на заклинание, произнесённое с ошибкой, — всё равно показывайте. Лучшие работы получают уважение, реакции и плюс к навыку «довести до релиза».
@make_game (теперь в VK и Max)
сегодня открывается Субботний скриншотник, и всем ученикам факультетов Программирования, Арта, Дизайна и Вечного Переписывания Туториалов надлежит явиться в комментарии.
Разрешается приносить скриншоты, демки, ролики, гифки и ссылки на собственные проекты. Даже если ваш проект пока похож не на магию, а на заклинание, произнесённое с ошибкой, — всё равно показывайте. Лучшие работы получают уважение, реакции и плюс к навыку «довести до релиза».
@make_game (теперь в VK и Max)
❤6👍1
Сервер Quake 3, который работает прямо в браузере. Проект доступен по адресу https://q3.pieter.com/. Вы можете просто перейти по ссылке и сразу начать играть вместе с другими людьми, устанавливать локальный клиент не нужно.
Технически все это работает на базе Q3JS. Это открытый порт оригинального движка на JavaScript. Разработчик взял готовый репозиторий, интегрировал в него свежие исправления для повышения стабильности и развернул игру на своих серверах. Оригинальные текстуры и карты подтягиваются из официальной демоверсии.
Текущий статус:
— полноценный мультиплеер работает без долгих загрузок;
— движок выдаёт стабильную частоту кадров прямо в браузере;
— в планах стоит добавление поддержки виртуальных геймпадов для игры со смартфонов.
@make_game (теперь в VK и Max)
Технически все это работает на базе Q3JS. Это открытый порт оригинального движка на JavaScript. Разработчик взял готовый репозиторий, интегрировал в него свежие исправления для повышения стабильности и развернул игру на своих серверах. Оригинальные текстуры и карты подтягиваются из официальной демоверсии.
Текущий статус:
— полноценный мультиплеер работает без долгих загрузок;
— движок выдаёт стабильную частоту кадров прямо в браузере;
— в планах стоит добавление поддержки виртуальных геймпадов для игры со смартфонов.
@make_game (теперь в VK и Max)
👍8❤2🔥1
Разработчик Нильс Линхир портировал Doom в браузер с 3D рендерингом на чистом CSS. Игровая логика написана на JavaScript, но для вывода графики автор принципиально отказался от Canvas и WebGL. Вся визуализация переложена на браузерный движок стилей.
Детали реализации:
— каждый объект и текстура представлены обычным тегом div;
— позиционирование в пространстве работает через CSS-трансформации;
— геометрия вычисляется нативными CSS-функциями
— сложная архитектура уровней вырезается свойством
Технический разбор архитектуры и нюансов производительности: https://tprg.ru/yGpg
@make_game (теперь в VK и Max)
Детали реализации:
— каждый объект и текстура представлены обычным тегом div;
— позиционирование в пространстве работает через CSS-трансформации;
— геометрия вычисляется нативными CSS-функциями
hypot и atan2;— сложная архитектура уровней вырезается свойством
clip-path.Технический разбор архитектуры и нюансов производительности: https://tprg.ru/yGpg
@make_game (теперь в VK и Max)
🔥16🤪5🥱1🤣1
Разработчик-плейтестер поиграл в 22+ инди-игры от разных авторов и выкатил базу — список самых частых ошибок, которые кочуют из проекта в проект.
— Анимируйте главное меню. Статичный экран сразу кричит «недоделано». Даже зацикленные частицы на фоне добавляют жизни. И да — не забывайте крупно писать в меню название игры, вы удивитесь, как часто инди-разрабы это упускают.
— Динамическое управление. Если игра поддерживает и клавиатуру, и геймпад, кнопки в интерфейсе должны переключаться на лету. Нет ничего хуже, чем видеть в туториале Press X, сидя за клавиатурой.
— Короткое демо без багов лучше длинного сломанного. Оставили забагованный уровень в публичной демке «просто чтобы показать масштаб»? Игроки запомнят только баги. Если уровень сырой — безжалостно вырезайте.
— Хардкор должен быть честным. Если игра внезапно убивает ваншотом из-за новой механики, игнорируя полоску ХП — это бесит. Игрок должен чётко понимать, что смерть была его ошибкой, а не произволом геймдизайнера.
— Туториалы — боль. То, что кажется вам очевидным спустя год разработки, абсолютно непонятно новичку. Но «стены текста» не работают: если на объяснение уходит абзац, его просто скипнут. Вводите механики постепенно через геймплей (show, don't tell).
— Весело на бумаге, скучно в билде. Механика может звучать гениально в диздоке, но если вам самому скучно тестировать её дольше 20 минут — смело переделывайте. Игрокам она тоже не зайдет.
Оригинальный тред на английском.
@make_game (теперь в VK и Max)
— Анимируйте главное меню. Статичный экран сразу кричит «недоделано». Даже зацикленные частицы на фоне добавляют жизни. И да — не забывайте крупно писать в меню название игры, вы удивитесь, как часто инди-разрабы это упускают.
— Динамическое управление. Если игра поддерживает и клавиатуру, и геймпад, кнопки в интерфейсе должны переключаться на лету. Нет ничего хуже, чем видеть в туториале Press X, сидя за клавиатурой.
— Короткое демо без багов лучше длинного сломанного. Оставили забагованный уровень в публичной демке «просто чтобы показать масштаб»? Игроки запомнят только баги. Если уровень сырой — безжалостно вырезайте.
— Хардкор должен быть честным. Если игра внезапно убивает ваншотом из-за новой механики, игнорируя полоску ХП — это бесит. Игрок должен чётко понимать, что смерть была его ошибкой, а не произволом геймдизайнера.
— Туториалы — боль. То, что кажется вам очевидным спустя год разработки, абсолютно непонятно новичку. Но «стены текста» не работают: если на объяснение уходит абзац, его просто скипнут. Вводите механики постепенно через геймплей (show, don't tell).
— Весело на бумаге, скучно в билде. Механика может звучать гениально в диздоке, но если вам самому скучно тестировать её дольше 20 минут — смело переделывайте. Игрокам она тоже не зайдет.
Оригинальный тред на английском.
@make_game (теперь в VK и Max)
👍15❤9👎2
Прямо в браузере: разработчик написал софтверный 3D-рендер в стиле Commodore 64 на чистом C и скомпилировал его в WebAssembly. Проект называется Pommidore64.
Никакого WebGL или аппаратного ускорения, всё рисуется исключительно силами процессора. Движок умеет парсить стандартные
Самое приятное, что из-за WebAssembly всё это работает полностью в оффлайне на стороне клиента. Можно закинуть свою модельку и посмотреть, как бы она выглядела на железе из 80-х.
Пример того, как сегодня можно использовать Wasm для переноса низкоуровневого графического кода прямо в веб.
Пощупать движок:
https://kureca8.github.io/Pommidore64/
@make_game (теперь в VK и Max)
Никакого WebGL или аппаратного ускорения, всё рисуется исключительно силами процессора. Движок умеет парсить стандартные
.OBJ модели и рендерить их в эстетике ретро-машин: поддерживается отрисовка сплошными полигонами (solid), wireframe-каркасы и несколько алгоритмов дизеринга для имитации ограниченной цветовой палитры C64.Самое приятное, что из-за WebAssembly всё это работает полностью в оффлайне на стороне клиента. Можно закинуть свою модельку и посмотреть, как бы она выглядела на железе из 80-х.
Пример того, как сегодня можно использовать Wasm для переноса низкоуровневого графического кода прямо в веб.
Пощупать движок:
https://kureca8.github.io/Pommidore64/
@make_game (теперь в VK и Max)
❤13😁4👍2😍1
Итак, что мы имеем?
Следы ночной сборки, отпечатки дедлайна на календаре, подозрительно молчащий трекер задач и папку, полную скриншотов, которые явно кто-то собирался показать ещё вчера.
Вывод очевиден: настало время Субботнего скриншотника.
Публикуйте в комментариях свои демки, гифки, видео, скриншоты и ссылки на проекты.
Никакая улика не будет проигнорирована, особенно если она работает в 60 FPS.
@make_game (теперь в VK и Max)
Следы ночной сборки, отпечатки дедлайна на календаре, подозрительно молчащий трекер задач и папку, полную скриншотов, которые явно кто-то собирался показать ещё вчера.
Вывод очевиден: настало время Субботнего скриншотника.
Публикуйте в комментариях свои демки, гифки, видео, скриншоты и ссылки на проекты.
Никакая улика не будет проигнорирована, особенно если она работает в 60 FPS.
@make_game (теперь в VK и Max)
✍7🔥6❤2
Разработчик на Reddit поделился болью, с которой рано или поздно сталкивается каждый, кто делает хардкорную игру. Он строил механику перманентной смерти как основу всего геймплея, где каждая смерть это прям событие. Пришли плейтестеры. Начали rage quit'ить и уходить.
Главный инсайт из треда: пермасмерть работает, когда игрок сам выбирает этот уровень риска, а не когда он навязан. Лучшие примеры (Path of Exile Hardcore, Baldur's Gate 3) — это всегда опция, а не единственный режим.
Что реально помогает, если хочется сохранить напряжение без потери аудитории:
— Мета-прогрессия. Часть достижений сохраняется между ранами, игрок чувствует рост, даже умирая. Hades как классический пример.
— Короткие сессии. Если рана занимает 20 минут, смерть болезненна, но не катастрофична. Если вечер, то теряете игрока навсегда.
— Честный онбординг. Игрок должен понимать ставки ещё до того, как инвестировал несколько часов.
Раздел комментариев в треде — отличный срез мнений для всех, кто сейчас принимает эти решения в дизайне своей игры.
@make_game (теперь в VK и Max)
Главный инсайт из треда: пермасмерть работает, когда игрок сам выбирает этот уровень риска, а не когда он навязан. Лучшие примеры (Path of Exile Hardcore, Baldur's Gate 3) — это всегда опция, а не единственный режим.
Что реально помогает, если хочется сохранить напряжение без потери аудитории:
— Мета-прогрессия. Часть достижений сохраняется между ранами, игрок чувствует рост, даже умирая. Hades как классический пример.
— Короткие сессии. Если рана занимает 20 минут, смерть болезненна, но не катастрофична. Если вечер, то теряете игрока навсегда.
— Честный онбординг. Игрок должен понимать ставки ещё до того, как инвестировал несколько часов.
Раздел комментариев в треде — отличный срез мнений для всех, кто сейчас принимает эти решения в дизайне своей игры.
@make_game (теперь в VK и Max)
👍10🏆3❤🔥1🆒1
Как Pizza Tycoon крутила городской трафик на 25 МГц 486-м
Если в вашей симуляции 25 сущностей уже упёрлись в pathfinding и граф сцены — возможно, вы решаете не ту задачу. Автор реимплементации Pizza Tycoon залез в оригинальный ассемблер 1994 года и нашёл три трюка, которые утаскиваются в любой проект хоть сегодня.
Первый: направление зашито прямо в тип тайла дороги. Машинам не нужен поиск пути — они просто читают клетку под собой.
Второй: коллизии — наивный O(n²), 625 пар на 25 машинах, но с ранним выходом по направлению. Восточная и западная не могут оказаться на одной односторонней дороге, пара отваливается за пару инструкций.
Третий: движение — пиксель за такт, тяжёлая тайловая логика срабатывает раз в 16 тактов, причём счётчик у каждой машины стартует со случайного значения — нагрузка размазана. Мораль: ограничения домена дают упрощения, о которых с современным мозгом не подумаешь.
@make_game (теперь в VK и Max)
Если в вашей симуляции 25 сущностей уже упёрлись в pathfinding и граф сцены — возможно, вы решаете не ту задачу. Автор реимплементации Pizza Tycoon залез в оригинальный ассемблер 1994 года и нашёл три трюка, которые утаскиваются в любой проект хоть сегодня.
Первый: направление зашито прямо в тип тайла дороги. Машинам не нужен поиск пути — они просто читают клетку под собой.
Второй: коллизии — наивный O(n²), 625 пар на 25 машинах, но с ранним выходом по направлению. Восточная и западная не могут оказаться на одной односторонней дороге, пара отваливается за пару инструкций.
Третий: движение — пиксель за такт, тяжёлая тайловая логика срабатывает раз в 16 тактов, причём счётчик у каждой машины стартует со случайного значения — нагрузка размазана. Мораль: ограничения домена дают упрощения, о которых с современным мозгом не подумаешь.
@make_game (теперь в VK и Max)
🔥10👾1
Соло-разработчик 10 лет делает ARPG, которая выглядит как 3D, хотя она полностью 2D
Bridgebourn — нарисованная от руки action-RPG в духе Diablo 2. Никаких 3D-моделей, никаких ригов: всё — плоские спрайты, разложенные на десятки параллакс-слоёв. Ближние деревья проматываются быстрее, дальние холмы — еле-еле, и глаз читает сцену как объёмную.
Второй трюк — манипуляция вершинами 2D-спрайтов в шейдере. Дерево остаётся одной текстурой, но его верхушка слегка наклоняется и покачивается — и плоская декорация внезапно читается как объект с геометрией. То же работает с травой, водой, башнями.
Всё это делает один человек под ником 2HeadedHero — около десяти лет, в соло. Разбираем технику подробно: как параллакс и sprite vert складываются в живую боёвку, не разваливаясь при летающей камере.
@make_game (теперь в VK и Max)
Bridgebourn — нарисованная от руки action-RPG в духе Diablo 2. Никаких 3D-моделей, никаких ригов: всё — плоские спрайты, разложенные на десятки параллакс-слоёв. Ближние деревья проматываются быстрее, дальние холмы — еле-еле, и глаз читает сцену как объёмную.
Второй трюк — манипуляция вершинами 2D-спрайтов в шейдере. Дерево остаётся одной текстурой, но его верхушка слегка наклоняется и покачивается — и плоская декорация внезапно читается как объект с геометрией. То же работает с травой, водой, башнями.
Всё это делает один человек под ником 2HeadedHero — около десяти лет, в соло. Разбираем технику подробно: как параллакс и sprite vert складываются в живую боёвку, не разваливаясь при летающей камере.
@make_game (теперь в VK и Max)
1🆒7👍3🔥2
На седьмой день новой недели ваш герой вступает на клетку под названием «Субботний скриншотник».
Перед вами открываются три пути: показать скриншоты, выложить демку или снова уйти собирать ресурсы, делая вид, что интерфейс ещё не готов.
Выберите мудро, но лучше всё сразу.
Несите в комментарии видео, гифки, сборки и ссылки на свои игры.
Даже если в армии пока только один юнит по имени «рабочий прототип», это уже достойно хода.
Перед вами открываются три пути: показать скриншоты, выложить демку или снова уйти собирать ресурсы, делая вид, что интерфейс ещё не готов.
Выберите мудро, но лучше всё сразу.
Несите в комментарии видео, гифки, сборки и ссылки на свои игры.
Даже если в армии пока только один юнит по имени «рабочий прототип», это уже достойно хода.
❤7🔥1
Разработчик поделился историей о том, как стратегия, принёсшая ему 40к долларов и 10 млн просмотров на первой игре, полностью провалилась на второй.
Его первая игра (Spellmasons) была пошаговым рогаликом про крафт заклинаний. Разработчик сделал ставку на TikTok, YouTube Shorts и Reels. Он записывал короткие ролики с процессом создания заклинаний: зритель видел, как собирается магия, а потом смотрел на сочный визуальный результат. Это сработало великолепно.
Когда он начал продвигать вторую игру (Some of You May Die — автобаттлер в том же визуальном стиле), он применил ту же тактику. Но просмотры упали с миллионов до ~20 тысяч на ролик.
В чем оказалась проблема?
Разработчик понял критически важную вещь: у каждой игры есть свой «edge» (уникальная цепляющая фича), и она должна быть визуально читаемой (legible).
В первой игре магия была наглядной. Во второй игре суть в глубоких синергиях героев. На видео это выглядит как хаотичная мешанина из пикселей, где 8 моделек бьют друг друга. Зритель просто не успевает считать, что происходит, нет визуального прогресса и развязки.
Как только он сделал ролик про конкретного героя-суммонера, где было чётко видно, как из одного юнита постепенно вырастает огромная армия (понятный визуальный прогресс), ролик сразу собрал в 7 раз больше просмотров.
Главные выводы из его опыта для инди-разработчиков:
— Плохое качество видео с хорошей историей всегда бьёт идеальный продакшен с плохой историей.
— Делайте ставку на количество на старте. Лучше выпустить 8 шортсов и научиться на них, чем 2 месяца пилить один лонгрид.
— Первые 10 секунд шортса решают всё. Тратьте на них непропорционально много времени.
— Создавайте «любопытный зазор» (curiosity gap). Название «Я чуть не удалил этого персонажа из игры» работает лучше любых прямых вопросов, потому что заставляет зрителя самого спросить себя: «А почему?».
— Формула успеха = (Фан от игры) х (Визуал/упаковка) х (Охват). Маркетинг влияет только на последний множитель. Если первые два стремятся к нулю, маркетинг не спасёт.
@make_game (теперь в VK и Max)
Его первая игра (Spellmasons) была пошаговым рогаликом про крафт заклинаний. Разработчик сделал ставку на TikTok, YouTube Shorts и Reels. Он записывал короткие ролики с процессом создания заклинаний: зритель видел, как собирается магия, а потом смотрел на сочный визуальный результат. Это сработало великолепно.
Когда он начал продвигать вторую игру (Some of You May Die — автобаттлер в том же визуальном стиле), он применил ту же тактику. Но просмотры упали с миллионов до ~20 тысяч на ролик.
В чем оказалась проблема?
Разработчик понял критически важную вещь: у каждой игры есть свой «edge» (уникальная цепляющая фича), и она должна быть визуально читаемой (legible).
В первой игре магия была наглядной. Во второй игре суть в глубоких синергиях героев. На видео это выглядит как хаотичная мешанина из пикселей, где 8 моделек бьют друг друга. Зритель просто не успевает считать, что происходит, нет визуального прогресса и развязки.
Как только он сделал ролик про конкретного героя-суммонера, где было чётко видно, как из одного юнита постепенно вырастает огромная армия (понятный визуальный прогресс), ролик сразу собрал в 7 раз больше просмотров.
Главные выводы из его опыта для инди-разработчиков:
— Плохое качество видео с хорошей историей всегда бьёт идеальный продакшен с плохой историей.
— Делайте ставку на количество на старте. Лучше выпустить 8 шортсов и научиться на них, чем 2 месяца пилить один лонгрид.
— Первые 10 секунд шортса решают всё. Тратьте на них непропорционально много времени.
— Создавайте «любопытный зазор» (curiosity gap). Название «Я чуть не удалил этого персонажа из игры» работает лучше любых прямых вопросов, потому что заставляет зрителя самого спросить себя: «А почему?».
— Формула успеха = (Фан от игры) х (Визуал/упаковка) х (Охват). Маркетинг влияет только на последний множитель. Если первые два стремятся к нулю, маркетинг не спасёт.
@make_game (теперь в VK и Max)
👍9❤4
Давным-давно, в одной далеко не завершённой сборке...
Шла очередная неделя разработки. Одни сражались с 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