Обновить
237.88

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

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

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

Простая система частиц на SFML C++

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

Простая система частиц на SFML C++

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

Системы частиц — это мощный инструмент для генерации динамических визуальных эффектов. Они основаны на идее создания множества мелких объектов (частиц), каждый из которых обладает собственными параметрами, такими как положение, скорость, цвет, размер и время жизни. Управляя этими параметрами, можно добиться самых разнообразных результатов.

Создадим отдельный класс для управления системой частиц.

Назовём его ParticleSystem. Ниже реализация кода данного класса.

Читать далее

Крестики-нолики на printf

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

Представляем вам реализацию игры в крестики-нолики на С с помощью одного вызова printf. Написана для участия в IOCCC в 2020 году.

Читать далее

Как вывести приложение в топ Google Play и App Store: ASO, мотивированный трафик и реклама. Практические советы

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

На разработке приложений зарабатывают единицы! Я являюсь довольно опытным ASO‑специалистом и хочу раскрыть правду о мобильном маркетинге для широкой аудитории и помочь вам достичь желаемых результатов. В данной статье 80% практической информации и 20% воды, которая показывает, что все не так радужно, как вам рассказывают «эксперты».

Читать далее

Шейдер береговой линии для Unity

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

В своей работе я больше склоняюсь к стилизованной картинке, однако полученный в статье результат можно будет адаптировать и для реалистичного стиля/PBR. В этом посте мы поговорим о шейдере воды, относящемся к береговой линии, не касаясь материала песка и других деталей воды, например, преломления и каустики (о них можно прочитать в Water Shader Breakdown или по другим ссылкам в разделе Water на странице Resources). Впрочем, шейдер выполняет и смешение прозрачности/альфы, чтобы затенить материал под ним для симуляции мокрого песка.

Мы поговорим о двух способах наложения волн в сцене: при помощи текстуры глубин и ручных UV. Ниже я перечислю замечания, плюсы и минусы каждого способа. В последующих разделах мы поработаем над ними по очереди.

Читать далее

Game++. String interning

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

«String interning», иногда это называют «пулом строк» — это оптимизация (https://en.wikipedia.org/wiki/String_interning), при которой хранится только одна копия строки, независимо от того, сколько раз программа ссылается на нее. Среди других оптимизаций по работе со строками (SWAR, SIMD-cтроки, immutable strings, StrHash, Rope string, и немного других), часть которых была описана тут, она считается одной из самых полезных оптимизаций в игровых движках, есть правда небольшие недостатки у этого подхода, но экономия памяти и скорость работы при правильной подготовке ресурсов и работе с лихвой их перекрывают.

Вы 100% когда-нибудь писали одну и ту же строку несколько раз в одной программе. Например:pcstr color = "black"; А позже в коде пришлось написать: strcmp(color, "black");Как видите, строковый литерал "black" встречается несколько раз. Означает ли это, что программа содержит две копии строки "black"? Более того, означает ли это, что в оперативную память загружаются две копии этой строки? На оба вопроса ответ — зависит от компилятора и вендора. Благодаря некоторым оптимизациям в сlang (Sony) и GCC, каждая строка-литерал хранится в программе только в одном экземпляре, и, следовательно, только одна копия загружается в оперативную память, поэтому иногда cтановятся возможными разные фокусы.

Просто не копируй это...

Недельный геймдев: #208 — 12 января, 2025

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

Из новостей: игры становятся всё дороже из-за неэффективного управления, Assassin’s Creed Shadows ещё раз перенесли, Square Enix начала активнее защищать сотрудников от токсичных фанатов.

Из интересностей: первый взгляд на FSR4, создание прототипов игр на LÖVE, шахматный движок на 84688 регулярных выражениях.

Читать далее

Разбор рендеринга в Unity, часть первая: Built-in rendering

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

Наверное, все игровые разработчики знают, как происходит рендеринг. Ну там вертексы, треугольники, растеризация, буфер экрана... Но детали процесса для многих внезапно являются сюрпризом. Например, сколько раз рендерится объект в Unity (да и в других движках) в обычном случае? Один?... Если разработчик отключит все что можно, то да. Но как правило - минимум 2. А может быть и 8 раз. Как так? Добро пожаловать в удивительный мир рендеринга...

Читать далее

Создание прототипов игр на LÖVE

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

Одна из моих целей на 2025 год — создание завершённой игры. Завершённой, то есть её можно будет купить в Steam или App Store за $2,99 или около того. Я уже делал маленькие игры, но завершение и выпуск игры, вероятно, будет самым крупным моим проектом (если не считать блога).

В зимние каникулы я какое-то время писал прототипы игр на LÖVE — фреймворке для создания 2D-игр на Lua. Таким образом я хотел изучить инструменты разработки игр, подходящие к моему набору навыков, и определить свои сильные стороны, чтобы в 2025 году распоряжаться временем эффективно.

До работы над этими прототипами я написал примерно двести строк кода на Lua, но у меня не возникло никаких проблем в освоении нужного мне синтаксиса.

Оказалось, что API LÖVE простой и мощный. Одно из преимуществ использования фреймворка вместо игрового движка в том, что я могу показать вам полный пример всего в десяти строках кода (в отличие от игрового движка, где пришлось бы определять объекты сцены, прикреплять скрипты и так далее).

Читать далее

Шахматный движок на 84688 регулярных выражениях

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

В праздничные выходные мне пришло в голову, что я давно не занимался чем-то бессмысленным. Представляю вашем вниманию... Regex Chess: набор из 84688 регулярных выражений, которые при выполнении по порядку генерируют ход (валидный, то есть не совсем ужасный) для переданного в качестве входных данных состояния шахматной доски. [Прим. переводчика: здесь в оригинале статьи есть интерактивный виджет, позволяющий сыграть с движком.]

Вот вся программа, которая делает ходы против игрока (серьёзно, я не шучу, она действительно такая короткая):

let regex_list = [/* очень длинный список регулярных выражений */]
let board = "rnbqkbnr / pppppppp / 8 / 8 / 8 / 8 / PPPPPPPP / RNBQKBNR w KQkq - 0 1";
for (regex of regex_list) {
board = re.replace(regex.pattern, regex.target)
}
display(board)

Прочитав этот пост, вы поймёте (надеюсь), как возможна эта последовательность регулярных* выражений, а также что делают конкретные регулярные выражения.

* Снобы могут заявить что-то типа «Вы сказали, что будете использовать регулярные выражения, но они не регулярные!" Но меня это не волнует.

Как всегда, код проекта выложен на GitHub.

Читать далее

Коммерческий проект: механика обрезки кустов

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

В прошлом (уже) году я работал над интересным проектом в Unreal Engine с точки зрения реализации. Сделал почти весь проект в одиночку игру-симулятор и хотел бы поделиться как создавал главную механику игры. Я не программист, но опыт создания игр на Blueprints UE есть. 

Читать далее

Silent Hill 2 Remake: боевка, монстры и ностальгия

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

Бонджорно, мои золотые! Это Идар Табухов из МТС Диджитал. Сегодня будем окунаться в ностальгию. Как я говорил в посте про ожидаемые игры осени 24, прошлый год порадовал нас ремейком Silent Hill 2.

У меня были большие ожидания: все-таки с этой игрой связаны мои детские воспоминания. Отлично помню: сидели у друга в гостях и вместе смотрели, как его отец проходит Silent. Сначала это была первая часть франшизы, на старушке PS ONE, а потом уже на PS2. К сожалению, не сильно помню все уровни: прохождение не удавалось застать целиком. Но четко запомнил пирамидоголового и минимально одетых медсестер. Вспоминаю леденящую атмосферу — она не давала расслабиться вплоть до следующего места для сохранения. Музыку, которая сбивает с толку. Фиксированную камеру, не позволяющую заглянуть за угол и увидеть, что там происходит. Еще помню вечно косого ГГ — ну, или это мы просто всегда мазали. В общем, от ремейка хотелось той же атмосферы «одного места». Оправдались ли мои ожидания — расскажу дальше, но вы точно должны поиграть сами и получить свой опыт. Теперь погнали!

Читать далее

Недельный геймдев: #207 — 5 января, 2025

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

Из новостей: продажи Stardew Valley превысили 40 миллионов копий, Notch собирается заняться преемником Minecraft, Black Myth: Wukong не выходит на Xbox из-за проблем с оптимизацией.

Из интересностей: почему студии делают RPG с прохождением через насилие, про будущее повествования с Кеном Левином, героические цивилизации — гибрид двух легендарных игр, как продать более 1 миллион копий своей игры.

Читать далее

Как спроектировать игровую математическую модель, забалансить её и не сдуреть. Разбор на практических кейсах

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

Мы идём от общего к частному. Задаём системе вопросы на самом общем уровне и постепенно углубляемся в детализацию. Если на какой-то вопрос мы не смогли ответить, значит, скорее всего, мы пропустили какой-то более общий вопрос, от которого зависит рассматривая ступень детализации, в этом случае не стесняемся вернуться на один или несколько уровней абстракции назад.

Читать далее

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

Монетизационные механики AFK Journey

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

Здравствуйте, дорогие читатели!

Меня зовут Евгений Розанов. Я занимаюсь разработкой мобильных free-to-play игр, а точнее их продюсированием, достаточно большую часть времени я занимаюсь анализом рынка в поиске новых идей для механик, для удобства я собираю свою базу референсов и интересных решений.

В данной статье я собрал монетизационные механики из AFK Journey.

Приятного прочтения!

Читать далее

Дрессировка слона: как приручить инди-игру

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

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

Читать далее

GTA VI, Death Stranding 2 и другие самые ожидаемые игры 2025 года

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

В чем 2025 точно будет хорош, так это в игровых релизах. Нас ждут несколько громких премьер, продолжения культовых серий и ремейки старых игр. Вот на все это мы в этой статье и взглянем, а в некоторых случаях еще и попробуем разобраться, что и почему может пойти не так. Дамы и господа, прошу всех под кат, а потом — в комментарии, делиться своими мнениями и личными списками самых ожидаемых игр года.
Читать дальше →

Commandlet в Unreal Engine — что это и зачем?

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

Во время разработки на Unreal Engine могут возникнуть задачи, которые требуют автоматизации, повторяемых действий или пакетной обработки. Эти задачи могут варьироваться от компиляции Blueprint'ов до упаковки игры на удаленном сервере. В таких случаях на помощь приходят Commandlet'ы.

Я на них наткнулся случайно, когда при запаковке проекта было много ошибок и было нужно пройтись по всем Blueprint — классам в проекте чтобы проверить, правильно ли они компилируются после изменений в C++. В данной статье хотелось бы поделиться опытом своего знакомства с ними.

Читать далее

Игрокам приготовиться: как Fallout стал выгодной франшизой

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

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

Читать далее

Как понять Unity3d, если ты .NET разработчик

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

Ловили ли вы себя когда-нибудь на мысли, что, будучи C# .NET разработчиком, вы можете попробовать начать разрабатывать игры на Unity3d? Ведь язык используется тот же. А точно ли тот же? Точно ли код, написанный для .NET, может без проблем быть скопирован для выполнения в Unity3d приложении? Давайте в этом разберемся и поймем, какие дополнительные знания необходимы C# .NET разработчику, чтобы с комфортом разрабатывать игры.

Читать далее

Героические цивилизации — пишу гибрид двух легендарных игр

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

Всем привет! Я решил написать компьютерную игру и хочу в этой статье поделиться задумкой, тем, чего уже удалось добиться и пригласить желающих присоединиться. Идея - соединить две любимые стратегии: Цивилизацию и Героев меча и магии в единый концепт, чтобы объединить плюсы обоих игр и получить много новых игровых механик.

Читать, куда уже продвинулась игра

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