GameDev: разработка игр
7.63K subscribers
818 photos
196 videos
1 file
1.15K links
Всё про геймдев для девелоперов, художников, левел- и геймдизайнеров, сценаристов

Разместить рекламу: @tproger_sales_bot

Другие каналы: @tproger_channels

Другие наши проекты: https://tprg.ru/media
Download Telegram
Каждый год во время конференции GDC площадка Sonniss делится бесплатной библиотекой звуковых эффектов для геймдева. Сейчас они выложили свежий архив на 7,5 гигабайт качественного аудио (ссылка на скачивание, лицензия).

Все аудио:
— royalty-free и полностью открыты для коммерции;
— указывать создателей в титрах не обязательно;
— ассеты остаются у вас навсегда для любого количества проектов.

Ссылки на предыдущие такие раздачи есть здесь.

@make_game (теперь в VK и Max)
🔥52
This media is not supported in your browser
VIEW IN TELEGRAM
Просто оставлю это здесь и дам ссылку где можно поиграть: https://eyebrow-tetris.sanderdesnaijer.com

@make_game (теперь в VK и Max)
1😁72🔥2
Ты заходишь в канал и видишь два варианта.

Синяя кнопка — молча листать чужие проекты и делать вид, что у тебя всё под контролем.

Красная кнопка — открыть папку с последним билдом, выбрать лучшие кадры и показать, насколько глубока кроличья нора твоего геймдева.

Сегодня у нас, как ты уже понял, красная кнопка. Субботний скриншотник открыт: делитесь прогрессом, кидайте демки, видео и ссылки. Посмотрим, что у вас по эту сторону рендера.

@make_game (теперь в VK и Max)
5👍3❤‍🔥1
Каждый раз страдаю от того, как они это называют

@make_game (теперь в VK и Max)
😁16
Разработчик Эрик Ленгьел (Eric Lengyel) сделал огромный подарок для индустрии графики и геймдева. Он досрочно, за 12 лет до истечения срока, передал патент на свой знаменитый алгоритм Slug в общественное достояние.

Slug — это метод рендеринга шрифтов (и векторной графики) на GPU напрямую из кривых Безье, вообще без использования предзапечённых текстур или атласов. Это позволяет отрисовывать идеально чёткий, сглаженный текст любого размера и под любым углом. Алгоритм уже 10 лет является индустриальным стандартом: лицензию на него покупали Blizzard, id Software, Adobe, Ubisoft и другие гиганты.

Главная математическая фишка последних версий Slug — это «динамическое расширение» (dynamic dilation). Вершинный шейдер на лету высчитывает матрицу трансформации и автоматически расширяет полигон каждого глифа ровно на полпикселя в экранном пространстве. Это гарантирует, что растеризатор не потеряет ни одного сглаженного пикселя на границах букв, и при этом не тратит ресурсы GPU на отрисовку лишнего пустого пространства (как это бывает при фиксированном отступе).

Теперь использовать эту технологию можно абсолютно бесплатно в любых проектах. Автор уже выложил эталонные шейдеры (вершинный и пиксельный) на GitHub под лицензией MIT: https://github.com/EricLengyel/Slug

@prog_stuff
❤‍🔥291
This media is not supported in your browser
VIEW IN TELEGRAM
Инди-разработчик выложил в открытый доступ полезную систему поиска пути (Pathfinding), которую он написал для своей 2D-игры про автоматизацию (где вместо конвейеров ресурсы таскают маленькие дроны).

Главная проблема, с которой он столкнулся — это конфликт двух разных типов движения. Нужно было объединить жёсткую логистику по сетке с плавным перемещением толпы (как в классических 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
8👍3😍1
Министерство геймдева уведомляет:
сегодня открывается Субботний скриншотник, и всем ученикам факультетов Программирования, Арта, Дизайна и Вечного Переписывания Туториалов надлежит явиться в комментарии.

Разрешается приносить скриншоты, демки, ролики, гифки и ссылки на собственные проекты. Даже если ваш проект пока похож не на магию, а на заклинание, произнесённое с ошибкой, — всё равно показывайте. Лучшие работы получают уважение, реакции и плюс к навыку «довести до релиза».

@make_game (теперь в VK и Max)
6👍1
Сервер Quake 3, который работает прямо в браузере. Проект доступен по адресу https://q3.pieter.com/. Вы можете просто перейти по ссылке и сразу начать играть вместе с другими людьми, устанавливать локальный клиент не нужно.

Технически все это работает на базе Q3JS. Это открытый порт оригинального движка на JavaScript. Разработчик взял готовый репозиторий, интегрировал в него свежие исправления для повышения стабильности и развернул игру на своих серверах. Оригинальные текстуры и карты подтягиваются из официальной демоверсии.

Текущий статус:
— полноценный мультиплеер работает без долгих загрузок;
— движок выдаёт стабильную частоту кадров прямо в браузере;
— в планах стоит добавление поддержки виртуальных геймпадов для игры со смартфонов.

@make_game (теперь в VK и Max)
👍82🔥1
Разработчик Нильс Линхир портировал Doom в браузер с 3D рендерингом на чистом CSS. Игровая логика написана на JavaScript, но для вывода графики автор принципиально отказался от Canvas и WebGL. Вся визуализация переложена на браузерный движок стилей.

Детали реализации:
— каждый объект и текстура представлены обычным тегом 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)
👍159👎2
Прямо в браузере: разработчик написал софтверный 3D-рендер в стиле Commodore 64 на чистом C и скомпилировал его в WebAssembly. Проект называется Pommidore64.

Никакого 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)
7🔥62
Разработчик на Reddit поделился болью, с которой рано или поздно сталкивается каждый, кто делает хардкорную игру. Он строил механику перманентной смерти как основу всего геймплея, где каждая смерть это прям событие. Пришли плейтестеры. Начали rage quit'ить и уходить.

Главный инсайт из треда: пермасмерть работает, когда игрок сам выбирает этот уровень риска, а не когда он навязан. Лучшие примеры (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)
🔥10👾1
Пропустил вчера пост, прошу прощения, ребят. Сегодня у нас будет воскресный праздничный скриншотник!

Что у вас нового по проектам? Делитесь скриншотами, видео, демками в комментариях. А мы будем смотреть и ставить огонёчки! 🔥
🔥8
Соло-разработчик 10 лет делает ARPG, которая выглядит как 3D, хотя она полностью 2D

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)
👍94
Давным-давно, в одной далеко не завершённой сборке...
Шла очередная неделя разработки. Одни сражались с UI, другие — с физикой, а третьи вели неравный бой с багом, который появляется только после полуночи.

Но сегодня силы комьюнити снова собираются здесь.
Несите в комментарии скриншоты, демки, ролики и ссылки на свои проекты.
Да пребудет с вашим билдом стабильный фреймрейт.

@make_game (теперь в VK и Max)
18
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
7👍4🔥3🤔1