Все потоки
Поиск
Написать публикацию
Обновить
268.61

Разработка игр *

Разработка игр

Сначала показывать
Порог рейтинга
Уровень сложности

Пилим игровой мультиплеерный сервер на базе esp32: начало

Уровень сложностиСредний
Время на прочтение20 мин
Количество просмотров8.9K

Одно из самых приятных проявлений программирования — это создание игр. Почему бы и нам не запилить свою?

Тем более не так давно у меня появилась довольно странная мысль, которая уже который день не отпускает меня — а что если сделать многопользовательский игровой сервер на базе ESP32? О_о

Можно и на базе обычного вебсервера и хостинга, но это как-то уныло, как у всех, «а душа хочет гусарства» :-))) Понятно, что это наложит довольно жёсткие ограничения на максимальное количество игроков и объём передаваемых между ними данных из-за слабости аппаратной платформы, но мысль всё же занятная.

Проще говоря: игра хостится на ESP32, клиенты подключаются к ней, и ESP32 отдаёт им страницу с игрой. После этого начинается игровой процесс: клиенты обмениваются данными через ESP32, которая выступает в роли сервера, а все ресурсоёмкие задачи по максимуму обрабатываются на стороне клиентов. Теоретически, при таком подходе может что-то получиться. Попробуем…
Читать дальше →

Где соберутся разработчики игр в апреле?

Время на прочтение5 мин
Количество просмотров916

12 апреля в конференц-зале ВШБ НИУ ВШЭ соберутся разработчики игр, инвесторы и сотрудники игровых студий, чтобы поделиться опытом, показать свои проекты в Шоукейс-зоне и провести нетворкинг-сессии.

Конференция состоится в рамках программы профессиональной переподготовки «Менеджмент игровых проектов», и команда проекта подготовила для гостей множество активностей и насыщенную программу.

Подробности и регистрация

В этой статье мы расскажем о наших планах на фестиваль!

Встретим гостей круглым столом о трендах рынка разработки игр 2025 — популярность ретро-эстетики, генеративные модели как при проработке дизайна, так и попытки их внедрения в поведение NPC, рост рынка после стагнации, всё это с примерами и реальными кейсами действующих сотрудников и владельцев игровых студий.

Читать далее

Почему игродев остается на С++17

Уровень сложностиПростой
Время на прочтение15 мин
Количество просмотров34K

Последние пару-тройку лет на конференциях все чаще я слышу жалобы знакомых в игрострое о том, что текущий вектор развития "современного C++" не соответствует потребностям игровой разработки. Реальные полезные нововведения фактически закончились с выходом C++17, а попытки внедрить C++20 часто заканчиваются обнаружением множества "гейзенбагов" и существенным снижением производительности - критичные для нас на 10-15% от сборки к сборке. Пошатавшись по разным игровым студиям, блин, скоро будет 15 лет как я тут, у меня таки немножечко есть, что вам рассказать.

Все современные студии, что крупнее двух с половиной землекопов, пишущие игры на плюсах, шарпе или чем-то близком - используют Visual Studio или переходят со своих поделок на Unreal/Unity, который так-то тоже плюсы, хоть и со странностями. Так исторически сложилось, что винда и майки были, есть и в ближайшем будущем горизонта лет десяти останутся самым крупным рынком ПК-консольных игр, а сами консоли давно стали "ну совсем ПК", но чтобы не терять эксклюзивы (и шекели) вендоры в этом не признаются никогда.

Мобилки, как-бы отдельно, и там свои свои покемоны Mac с Android, но в Visual Studio в том или ином виде создаются, дебажатся и оптимайзятся 95% игр, остальное - погрешность. С момента начала золотой эры игростроя (где-то в конце 90-х), большинство игр писались с учетом того, что они будут выпущены на ПК, под ПК понимается - под винду. И наследие многих A+-студий так или иначе связано с Microsoft, даже для не-Microsoft консолей и мобилок.

Читать далее

Монетизация игр и приложений

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров3.6K

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

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

Читать далее

Игра, обучающая программированию для детей: почему геймификация важна в обучении + школы

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров1.3K

Привет! Я Ксения – автор в блоге «IT для детей». Рассказываю современным школьникам и их родителям о дополнительном айти-образовании на онлайн-курсах, реже – на очных, стараюсь делать это максимально просто и доступно.

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

Начать хочу с классического варианта определения.

Читать далее

Необычный интерфейс

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров16K

Собрал для вас подборку редких, необычных и малоизвестных UI-библиотек — для построения интерфейсов в играх, на устройствах и десктопном ПО.

Читать далее

Создание игры с помощью LLM более полугода назад и этой же игры теперь. Что изменилось?

Уровень сложностиПростой
Время на прочтение16 мин
Количество просмотров10K

И вот прошло 9 месяцев, модели стали значительно совершеннее, и качество написания кода улучшилось в разы, если не на порядок.

Тогда в своей статье «Кажется, LLM программирует лучше меня» я с изрядной долей самоиронии описал в подробностях пошагово написание кода игры «Шарики», Lenes (Color Lines).

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

Поэтому проведем такой же эксперимент с новейшей моделью такого же размера и попробуем на экспертном уровне оценить степень прогресса в данной области.

Что изменилось за это время?

Для тех, кто хочет сразу получить конечный ответ: в прошлый раз эта игра была создана за 15 шагов, теперь за 2 шага.

Читать далее

Звуки музыки Sega Mega Drive

Уровень сложностиПростой
Время на прочтение25 мин
Количество просмотров13K

Сегодня в центре нашего внимания Sega Mega Drive, она же Genesis — называйте как хотите, всё равно все понимают, что речь идёт о некогда популярнейшей в наших краях 16-битной консоли. Comix Zone, Sonic the Hedgehog, Ultimate Mortal Kombat 3 — вот это вот всё. Но речь пойдёт не о платформе в целом, а об одной специфической её части: звуковой системе и звуках, которые она издавала. Изучим железную и программную части, вспомним холивары, послушаем кое-какую музыку.

Как обычно, я занимаюсь не простым пересказом сомнительных источников, а сложным: пропускаю их через личный опыт. Когда-то давно я разработал несколько homebrew-игр для этой платформы, а также пару музыкальных редакторов — ныне забытых, но в определённый исторический период сыгравших свою роль. Этот бэкграунд даёт мне возможность сорвать покровы и рассказать всю правду о некоторых не самых очевидных моментах. Приступим!
Читать дальше →

Школа программирования игр для детей: геймдев с 6 лет и почему это реализуемо

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров448

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

Сегодня хочу поговорить о том, почему разработка игр в 6 лет – это реально, а также затронуть смежные вопросы.

Начну с самого спорного момента и попытаюсь объяснить, почему эта статья вообще имеет место.

Читать далее

Недельный геймдев: #218 — 23 марта, 2025

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров1.5K

Из новостей: Blender 4.4, Balatro стала триумфатором GDC Awards 2025, PC-игроки проводят 92% времени в играх старше 2-х лет, хакеры создали эксплойт для взлома Xbox 360 через USB, GIMP 3.0.

Из интересностей: как менеджеры Disco Elysium разрушили разработку, 100к вишлистов на игре для ботаников, стоит ли ваша игра того, чтобы быть сделанной.

Читать далее

Про демоверсии на Steam фестивале «Играм быть»

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров1.2K

Поиграл в существенное количество демоверсий на февральском «Играм быть», и у заметил многих демоверсий общие недостатки и проблемы, они достаточно очевидные, но раз их всё же допускают, то стоит про них рассказать. И к сожалению, некоторые игры выходят в релиз с этими же проблемами.

Читать далее

Auction Souls — почему он?

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров5.9K

Экономика без трейда, боевка без классов, ремесло как часть персонажа – как мы меняем привычные механики MMORPG

Читать далее

Архитектура диалоговой системы в Unity

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров4.2K

Когда я начинал разработку своей игры, то не смог найти каких‑то внятных гайдов с описанием архитектуры диалоговой системы. Зачастую авторы упоминали верстку да логику UI, но не отвечали на вопросы «как менять сюжетные стейджи», «как работать с разными типами диалогов», «как менять статус персонажам на сцене» и т. п. Мне не хватало найденной информации и я потратил какое‑то время на написание диалоговой системы самостоятельно. Для опыта конечно же… но и, будем честными, денег я зажал на готовые плагины. Надеюсь, что эта статья поможет таким же новичкам в Unity как и я, кто решил учиться разработке через практику и прототипирование. Небольшая оговор очка: я занимаюсь автоматизацией тестирования и мой основной язык python. Так что заранее прошу извинить за не самые лучшие конструкции C#. Также хочу упомянуть, что статья эта не про код, а про архитектуру, так что первого в принципе будет не так уж и много. А что за игру я делаю? Сюжетное 2д приключение, где я решил брать не механиками, а историей.

Часть 1. Планирование архитектуры

Без четкого ТЗ результат ХЗ. Для начала планируем и фиксируем, что хочется вообще сделать. На моем примере:

1) Система линейная, диалоги без вариантов ответа;

2) Каждая сцена — это грубо говоря отдельная игра, которая не связана с другими сценами, их все можно запускать независимо. Сохранения реализованы в момент перехода между сценами;

3) На каждой сцене есть n стейджей. На каждом стейдже m диалогов. Заканчиваются стейджи — на этой сцене заканчивается сюжет, можно переходить на новую сцену;

Читать далее

Ближайшие события

Книга: «Blueprints. Визуальный скриптинг игр в Unreal Engine 5. 3-е изд.»

Время на прочтение5 мин
Количество просмотров5.1K
Привет, Хаброжители!

Мы хотим поделиться с вами постом о новинке, но решили, что лучше всего может рассказать о ней Константин Ламбрианидис (сеньор-ментор левел артист), который не просто в теме, но и имеет реальный опыт в игровой индустрии.

Меня зовут Константин, в геймдеве я уже около 5 лет, из которых 3,5 года работаю левел-артистом в ААА-проектах. Разработка игр интересовала меня с детства, но определиться с конкретной специальностью было непросто — хотелось попробовать себя во всем понемногу. В итоге я выбрал направление 3D, по которому сейчас и работаю. Тем не менее спустя годы меня не отпускает желание углубиться в геймдизайн и позаниматься личными проектами. Так как опыта реального программирования у меня немного, взгляд, естественно, падает в сторону разработки на блупринтах в Unreal Engine.

Собственно, с ними нас и знакомит книга «Blueprints. Визуальный скриптинг игр в Unreal Engine 5», поэтапно объясняя всю необходимую базу для комплексного понимания их возможностей.
Читать дальше →

Процедурная генерация двухмерной полигональной карты

Время на прочтение14 мин
Количество просмотров6.9K

Привет Хабр ! Это моя первая статья на тему процедурной генерации. Здесь я рассмотрю конкретную задачу по генерации, её решение и опишу ключевые использованные принципы. Пишу эту статью для того, чтобы поделиться идеями и опытом, которых мне не хватало, когда я взялся за дело две недели назад. Я не буду делать полный разбор проекта, а лишь опишу и визуализирую принцип.

Читать далее

Почему инди MMORPG — приговор

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров9.6K

Привет, Хабр! Меня зовут TrashPony и я делаю свою MMORPG. Увидел статью, решил тоже поделиться.

Мы — команда из одного человека и нескольких личностей. У нас нет крупных бюджетов, нет издателя, но есть идеи, которые мы хотим воплотить в жизнь.

Читать далее

Чтение на выходные: подборка книг о компьютерных играх, их создателях и философии

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1.7K

Вы любите игры — мы находим книги о них и приносим в рубрику. За год-другой у нас уже собралось больше десятка материалов о создании видеоигр и конкретных франшиз. Сегодня предлагаем к чтению литературу по отдельным вселенным: одна книга — одна игра.

Читать далее

Основы Ren'Py: система репутации

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров4.4K

В 2024-м я начал разработку приключенческой игры "Азраил, вестник смерти". Будучи инди, я писал сценарий, геймдизайн и код сам. Теперь я хочу поделиться своими наработками, чтобы вам не пришлось писать это заново. В этой заметке выкладываю код системы репутации и гайд по его использованию.

Читать далее

Генератор случайных чисел, застрявший на одном значении

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров6.2K

Моё исследование посвящено мини-игре Green Toad House в New Super Mario Bros (NSMB). В этой мини-игре используется случайность, поэтому в процессе я изучил генератор случайных чисел (RNG) NSMB.

Чтобы пост не был слишком длинным, будем считать, что вы знаете, что такое RNG, а также о концепции порождающих значений (seed). Если нет, то вот хорошие ресурсы для изучения: pannenkoek2012 в YouTube (SM64)Retro Game Mechanics Explained в YouTube (SMW)Википедия.

Читать далее

Game++. Unpacking containers

Уровень сложностиПростой
Время на прочтение40 мин
Количество просмотров4.2K

Независимо от того, начинаете ли вы разрабатывать свою игру или присоединяетесь к уже существующему проекту, когда приходит время оптимизировать память и заниматься разным улучшайзингом, то всегда встают одни и те же вопросы. Стоит ли использовать собственные контейнеры? Если использовать свои, то какой лучше выбрать - похожий на vector, или больше подойдет map? Является ли связный список наилучшим выбором при частых вставках и удалениях элементов? А откуда эти вставки вообще взялись, но это конечно другой вопрос.

В большинстве случаев студии начинают реализовывать свои решения, заточенные под игру, это со временем приводит к появлению библиотеки решений, а частенько и полной замене всего STL стека. Основная причина - это добиться непрерывного размещения элементов в памяти, чтобы максимизировать локальность кэша при их обходе. Надеюсь, понятно для чего это делают: часто быстрее обойти 1000 элементов, которые лежат друг за другом, чем дюжину, которая раскидана по разным частям оперативки.

Если вы не готовы писать и поддерживать свою STL, старайтесь, использовать vector, он хотя бы предсказуем по времени на всех платформах. Так вам скажет большинство разработчиков игр на C++, но проблема в том, что vector перераспределяет хранимые объекты в памяти при вставке новых элементов, а также при удалении любого элемента, кроме последнего. Это означает, что указатели на элементы вектора становятся недействительными, и тогда все зависимости и взаимодействия между элементами перестают работать.

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

Читать далее

Вклад авторов