Pull to refresh

От винта! Смотрим движок War Thunder и говорим с его создателями

Level of difficultyMedium
Reading time13 min
Views11K

Как говорил Юрий Гагарин: "В будущем мы будем летать, много летать". В определённой мере игровой движок Dagor Engine от Gaijin Entertainment позволяет это сделать. Давайте посмотрим, как он сделан, и поговорим с его создателями!

Поехали!
Total votes 23: ↑20 and ↓3+17
Comments12

Road Run, или как я свою первую игру делал. Часть 7

Level of difficultyEasy
Reading time13 min
Views3.6K

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

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments2

Итоги Retro Game Jam '21

Reading time5 min
Views1K

Рассказываем, как прошел Retro Game Jam '21 и какие команды получили призы.

В этом году объединяющей темой стало переосмысление классических ретро-игр — таких, как всем известный пакман, тетрис и танчики. 57 команд приняли вызов и трудились двое суток над браузерной онлайн-игрой. Но до финала дошли не все — фильтр отбора прошли лишь 20.

Чтобы усложнить задачу участникам, была проведена жеребьевка. По результатам каждой команде назначались референс игры, стилистика и эмоция, которую игра должна транслировать.
Читать дальше →
Total votes 31: ↑31 and ↓0+31
Comments0

Wargaming проведёт митап «UX in Game Development»

Reading time2 min
Views610

UPD: Мы вынуждены сообщить вам о переносе нашей онлайн-встречи на неопределенный срок. Будем держать вас в курсе новостей и сообщим новую дату проведения ивента, как только она будет определена.

Участники получат возможность устроиться на работу и получить welcome-bonus в размере 3000$. Для того чтобы стать участником мероприятия, необходимо пройти предварительную регистрацию по ссылке.

9 марта 2022 года состоится онлайн-митап «UX in Game Development». Организаторы мероприятия - UX-команда популярной онлайн-игры World of Tanks. Во время митапа можно будет узнать о специфике работы UX-команды, познакомиться со спектром задач и различными инструментами UX-специалистов в геймдев-компаниях, а также получить ответы на все интересующие вопросы из первых уст.  

Читать далее
Total votes 3: ↑3 and ↓0+3
Comments3

Разработка высоконагруженного игрового WebSocket сервера на Kotlin, Webflux с поддержкой BattleRoyale/Matchmaking

Level of difficultyHard
Reading time20 min
Views5.9K

Всем доброго времени суток. Некоторое время назад мною была написана статья, где я детально описал процесс разработки демо игрового вебсокет сервера. На этот раз, я хотел бы поделиться более усовершенствованным и оптимизированным материалом на Kotlin и реактивном стеке.

Читать далее
Total votes 6: ↑4 and ↓2+2
Comments1

Фреймворки Gymnasium + Stable-Baselines 3, VizDoom и платформа SMAC в геймдеве

Level of difficultyEasy
Reading time13 min
Views614

RL (Reinforcement Learning) или же обучение с подкреплением — это удивительный подход к обучению искусственного интеллекта, который позволяет игровым персонажам или ботам учиться, исходя из собственного опыта.

В основе обучения с подкреплением лежит принцип «trial and error» (проб и ошибок). RL‑агент, или бот, помещается в определенную среду, например, в игровой уровень. Задачи у RL‑агентов разные, но, если мы говорим о бота‑противниках, то здесь цель одна — усложнить игроку путь. При этом усложнить умеренно, чтобы игрок мог с ним справиться. При этом же агент не имеет никакой информации о том, как это сделать, и должен учиться. И о том, как ему это делать, сегодня пойдет речь.

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

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

Читать далее
Total votes 6: ↑6 and ↓0+6
Comments2

Road Run, или как я свою первую игру делал. Часть 6

Level of difficultyEasy
Reading time6 min
Views3.2K

Модели, сделанные в блендере, о которых я рассказывал в предыдущих частях, готовы и могут быть загружены в игровой движок. В этой части пойдёт речь о том, как собрать и заставить двигаться дорогу в Unity 3d.

Читать далее
Total votes 7: ↑6 and ↓1+5
Comments6

30 лет DOOM: новый код — новые баги

Level of difficultyMedium
Reading time19 min
Views20K

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

Читать далее
Total votes 72: ↑71 and ↓1+70
Comments24

Публикация UPM-пакета в Unity Asset Store

Level of difficultyEasy
Reading time2 min
Views714

📘 Нативное решение Unity

В 2018 разработчики из Unity релизнули централизованное хранилище для итеративных обновлений движка и расширений Editor, которое получило название UPM - Unity Package Manager.

Читать далее
Total votes 3: ↑2 and ↓1+1
Comments0

SDL2: Основы

Reading time8 min
Views71K
К сожалению, даже на официальной вики почти не возможно найти каких либо примеров использования SDL2.x, что уж говорить о рунете. Пытаясь разобраться, я нашел всего лишь пару статей, которые не покрыли и трети моих вопросов.
SDL 2.x существенно отличается от 1.x и даже, если в прошлом вам приходилось с ним работать — теперь вы рискуете ничего не понять.

Сегодня мы напишем простенькую программу выводящую на экран фон и зумируемый спрайт персонажа перемещающегося с помощью WASD и стрелок. + разберемся как в SDL работать с мышкой.
Туториал ТУТ
Total votes 14: ↑12 and ↓2+10
Comments7

Паттерн конечные автоматы для Ash Entity System фреймворк

Reading time10 min
Views8.1K
Два года назад познакомился с замечательнейшим фреймворком для разработки игр на Actionscript Ash (почти сразу после знакомства с ним, пришло понимание, что фреймворк подойдет под любой язык. А еще чуть-чуть позже появились порты фреймворка под другие языки — на момент написания перевода имеется 7 штук). Некоторое время распирало желание поделиться находкой с русскоязычным сообществом, пока меня не опередили переводом на Хабре. Теперь вдогонку хочу выложить перевод касательно реализации почти незаменимого паттерна Finite-State Machine для Ash Entity System фреймворка.
Подробности
Total votes 4: ↑3 and ↓1+2
Comments1

«Галоп пикселя — часть первая» — базовые понятия, этапы взросления, прикладные упражнения

Reading time42 min
Views265K


«Галоп пикселя», часть I — базовые понятия, этапы взросления, прикладные упражнения (линк)
«Галоп пикселя», часть II — перспектива, цвет, анатомия и прикладные упражнения (линк)
«Галоп пикселя», часть III — Анимация (линк)
«Галоп пикселя», часть IV — Анимация света и тени (линк)
«Галоп пикселя», часть V — Анимация персонажей. Ходьба (линк)
«Галоп пикселя», часть VI — Анимация персонажей. Бег (линк)

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

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

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


Лопатить пиксели
Total votes 190: ↑185 and ↓5+180
Comments86

Как выпустить игру и обрести друзей

Reading time4 min
Views15K
Привет, пытливый читатель! Что пережили и какие решения приняли, что схожего и что совершенно разного у двух неодинаковых, но чем-то похожих инди-игр — это заслуживает отдельных двух статей. Но для улучшения аппетита перед вами легкая статья — пятничный мотиватор заниматься своими проектами.
Читать дальше →
Total votes 26: ↑13 and ↓130
Comments7

Как продвигать мобильные приложения ДО релиза. Часть 1

Reading time15 min
Views33K

Глава 1. Вступление


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

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

Хочется процитировать: “Когда человек занимается альтруистической деятельностью, отдача приходит в качестве сильнейшей эмоции ощущения смысла”. Меня вдохновляет и заряжает энергией размещение публикаций. Это дает мне сил на достижения другого порядка. Поэтому я стараюсь генерировать контент, который каждому читателю может дать исключительную пользу.
Читать дальше →
Total votes 22: ↑18 and ↓4+14
Comments16

Продвижение инди-игры на Steam Greenlight

Reading time11 min
Views96K
Всем, привет! Наша команда сейчас проходит важный этап становления любого разработчика игр — первый запуск игры на Steam Greenlight. Пока я готовил материал для этой статьи, наша игра вошла в ТОП-100 проектов на Greenlight, набрала почти 2000 голосов «ЗА» и через 12 дней получила зелёный свет.

В этой статье хочу поделиться информацией, которую «нарыл» в процессе подготовки к Greenlight'у, а также попробовать проанализировать, какие гипотезы по продвижению сработали, а какие пути оказались тупиковыми. Надеемся, эта информация окажется полезной и кому-то попадёт в избранное.

image
Читать дальше →
Total votes 33: ↑31 and ↓2+29
Comments14

Как создать мощную систему игровых достижений

Reading time9 min
Views40K
Признаюсь, раньше я испытывал особую неприязнь к игровым достижениям. Сейчас мне сложно вспомнить откуда растут ноги, но я не исключаю, что из-за ужасной реализации в большинстве игр. Кто старое помянет — тому глаз вон, поэтому просто признаем неоспоримый факт: геймдизайн с тех пор сильно эволюционировал.



Хотя игровые достижения не должны быть основной целью в вашей игре, это не мешает им существенно влиять на поведение игрока и его вовлеченность. Давным-давно, на одном из крупных проектов передо мной поставили масштабную задачу: создать мощную систему игровых достижений. В течении следующих 30 месяцев, я, как раб на галерах, провел за проектированием и тестированием различных систем достижений в сотнях игр. Меня поглотила бесконечная обработка данных: игровых комментариев, постов на форумах, непосредственное общение с игроками, изменения в игровых рейтингах. Я совершил и продолжаю совершать кучу ошибок, но я также усвоил несколько бесценных уроков. И эти знания нельзя держать в секрете…
Перейти к урокам
Total votes 34: ↑28 and ↓6+22
Comments23

Мини-обзор библиотек для Reflection в C++

Reading time5 min
Views25K
В силу скромной информации на эту тему, в данной статье проведу небольшой обзор и сравнение найденных библиотек для Reflection в C++. В первую очередь эта информация будет интереса разработчикам игр.

Благодаря reflection можно:
— Легко создавать редакторы, в том числе интерфейсов, так как есть удобный доступ к мета-информации о всех свойствах ваших объектов;
— Добавить binding для многих скриптовых языков сразу (Lua, Python, JavaScript и т.д.);
— Использовать мета-информацию для автоматической сериализаци;
— Использовать как фабрику объектов, создавая нужные экземпляры, имея лишь строку с именем тип;
— Использовать в качестве более легковесной замены dynamic_cast;
— И прочее прочее прочее, в зависимости от фантазии и потребностей.
Читать дальше →
Total votes 25: ↑23 and ↓2+21
Comments17

«Галоп пикселя — часть вторая» — перспектива, цвет, анатомия и прикладные упражнения

Reading time40 min
Views88K


«Галоп пикселя», часть I — базовые понятия, этапы взросления, прикладные упражнения (линк)
«Галоп пикселя», часть II — перспектива, цвет, анатомия и прикладные упражнения (линк)
«Галоп пикселя», часть III — Анимация (линк)
«Галоп пикселя», часть IV — Анимация света и тени (линк)
«Галоп пикселя», часть V — Анимация персонажей. Ходьба (линк)линк)

Первая статья данного цикла была воспринята тепло, вследствие чего затягивать с продолжением не имело никакого смысла, но, увы – это произошло. Зимнее наступление захлебнулось и плавно переросло в летнюю кампанию. В конце статьи я объясню почему, не хотелось бы вас огорчать с самых первых строк. Итак. Публика выразила желание ознакомиться с предметом глубже, чем предполагалось изначально. Большое количество писем пришло на почту, наряду с регулярными тычками в социальных сетях. В этом месте мне вспоминается одна фраза – «будьте осторожны в своих желаниях».

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

Не будем мешкать. Возьмем наши пиксельные лопатки и двинемся на врага сплоченной группой. Быть может, нам повезет, и кто-нибудь, выжив, расскажет потомкам о ещё одной битве Теоретического войска возле местечка, вошедшего в историю сети как Хаброва падь.


Лопатить пиксели
Total votes 112: ↑110 and ↓2+108
Comments27

Экспорт Terrain'а из WorldMachin в Unity3D

Reading time3 min
Views21K


Эта статья является адаптированным под современны редактор переводом на русский язык оригинальной инструкции: «Terrain export from world machine to unity».


World Machine может служить отличным генератором местности для Unity. Unity же имеет нативную поддержку текстур и splatmaps. Вы можете создать и использовать несколько слоёв текстур местности одновременно. Здесь представлен простой рабочий код для импорта в Unity местности из World Machine. Пожалуйста, обратите внимание, что, хотя этот метод работает для основных местностей в unity, многие продвинутые пользователи могут создать собственные шейдеры местности, которые могут потребовать другую технику исполнения.
Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments1
1
23 ...