Всем ведь приходилось заниматься улучшением производительности? Для игр особенно актуально, ну может какая-то три-в-ряд не страдает этим. Как обычно серебряной пули нет, начинаем со структур данных, алгоритмов, спускаемся ниже если не помогает, придумываем SoA, AoS шаблоны. Если проблема не решается, подтягиваем профайлеры и предметно разбираем узкие места, но все чтобы мы не делали зачастую таким узким местом всегда будет "железо". Можно сколько угодно оптимизировать другие места, но CPU c его гигагерцами будет простаивать 90% времени если его неправильно "кормить" данными. Одной (только одной из проблем) проблемой организации эффективной работы с данными будет меньше, если знать и уметь работать с кэшами разных уровней. Тут на вики описано, как "на пальцах" быстренько убить перф на обходе массива, простого и общего решения для такого обхода нет. Можно и дальше увеличивать размер кэша, что собственно и делают (гдето здесь на хабре была новость, что Интел при переходе на L1 кэш размером 32кб, заново спроектировал блок доступа к нему, сорян не нашел ссылку), но это дорого, неэффективно на масштабах современных процов, и всегда найдутся данные, которые этот кэш отравят, опять. Интересно как починить? го под кат...
Разработка игр *
Разработка игр
Новости
Телепортация игрока в Unity с OpenXR
Продолжим серию статей про OpenXR. В конце концов получим контроллер игрока, обладающий базовыми навыками — перемещением, поворотом и взаимодействием с объектами. В этой же мы сделаем телепортацию игрока и его поворот.
Советы по работе с префабами в Unity
Всем привет! Меня зовут Григорий Дядиченко, и я технический продюсер. Сегодня хотелось бы обсудить работу с префабами, их организацию и несколько советов по тому, как работать с префабами и с вариантами. Насобирав несколько шишек на проектах у меня сформировалось некоторое число типовых проблем и советов при неправильной организации. Если хотите сделать работу с префабами удобнее, добро пожаловать под кат!
Производство креативов для мобильной игры с нуля
Изначально наш отдел маркетинга создавал большие видеролики про апдейты игры и разные трейлеры. Такой контент хорошо подходит для PR (например, показать на конференции или привлечь внимание игроков), но не для закупки трафика. К тому же было мало взаимодействий с продуктом, аналитикой и отчетами, что тоже стало проблемой.
Поэтому мы полностью переделали отдел маркетинга — организацию внутренних команд, воркфлоу и в том числе процесс создания креативов. Для этого написали собственный аналитический инструмент, разработали систему отбора идей и многое другое.
Как привлечь первых пользователей в свою игру или приложение
Многие начинающие разработчики впадают в довольно наивное заблуждение: сделаем игру, в которую интересно играть, и заработаем на этом денег. К сожалению, рынок мобильных игр перенасыщен, каждый день выходят сотни новых тайтлов, игрок же способен оценить «интересность» от силы десятка игр в неделю. И вряд ли ваш проект окажется в этой десятке, если не предпринять дополнительных усилий.
Написали на Хабре 8 лет назад. Если тогда рынок мобильных игр был перенасыщен, то сейчас я не знаю, какое слово назвать. А ещё я не знаю, что такое сдаваться, так что продолжаю разматывать клубок геймдева. Под катом подробнее про способы привлечения игроков:
- Условно-бесплатное
1.1. App Store Optimization;
1.2. Социальные сети;
1.3. Реферальные программы и приглашения. - С разовыми инвестициями
2.1. Инфлюенсеры;
2.2. PR + пресса. - Платное привлечение
3.1. Реклама в соцсетях VS контекстная реклама;
3.2. Платформы роста (отзывы про 4 самых популярных).
Ещё я веду канал в Telegram GameDEVils и блог на Substack , делюсь там материалами про геймдизайн, разработку и историю игр.
Пространство для маневра в Celeste
Привет всем! Изначально это был тред в Твиттере от 12 марта 2020 года за моим авторством. Я уже давно собирался сделать резервную копию в более читабельном и доступном формате, и вот сегодня я наконец-то почувствовал, что этот день настал.
Небольшая подборка решений, работающих на создание приятного ощущения от игрового процесса в Celeste :) Я не думаю, что мы изобрели что-либо из этого.
Пишем на Rust игры для Unreal Engine
Ссылки
Введение
Несколько месяцев назад я задался вопросом: что, если написать игру на Rust, но в качестве рендерера использовать Unreal? Поразмыслив, я пришёл к выводу, что раскрытие рендерера Unreal языку Rust при помощи FFI (Foreign function interface) языка C потребовало бы гораздо больше усилий, чем мне хотелось. Но что, если просто надстроить систему на Unreal? Я смогу просто перемещать акторов (gameobject из Unreal) при помощи Rust. Эта задача показалась гораздо более приемлемой, поэтому я приступил к работе.
Спустя неделю я раскрыл несколько функций, позволявших получать ввод, задавать и считывать позицию актора. Благодаря этому я наконец мог перемещать персонажа в Unreal.
Секретики Unity3d. Зачем нужен флаг STARTER_ASSETS_PACKAGES_CHECKED в стартовых ассетах
Кто устанавливал офицальные ассеты от Unity "Starter Assets - Third Person Character Controller" или "Starter Assets - First Person Character Controller" возможно замечал что в настройках проета (Project settings -> Player -> Other settings -> Script Compilation) появляется флаг STARTER_ASSETS_PACKAGES_CHECKED
, но зачем он нужен? Давайте разбираться.
Разбираем успех Fortnite: часть 1 — психология и UX
Бывший UX-директор в Epic Games поделится с нами в этой статье о том, как устроен мозг игрока и как эти знания были использованы в разработке Fortnite.
StbSharp: история ненужного проекта
В этой статье я бы хотел рассказать о своем хобби проекте под названием StbSharp.
Итак, в 2016 году мне пришла в голову весьма банальная идея - сделать собственный игровой кросс-платформенный движок на C#. И я озаботился поиском кросс-платформенной же библиотеки для загрузки картинок. Внезапно выяснилось, что подходящей просто не существовало. Было множество платформо-зависимых решений(напр. System.Drawing). А так же имелась SixLabors.ImageSharp. Но она была в состоянии ранней альфы. Мне же хотелось работать с решением, проверенным временем. Так я пришёл к идее портировать stb_image.h (очень популярной в геймдеве single-header библиотеки для загрузки картинок) на C#.
"А разве не легче было написать биндинги для нативной библиотеки? Хоть для той же stb_image?",- задаст справедливый вопрос читатель. Да, легче. И правильнее. О чём, собственно, и говорит заголовок этой статьи. Конечно, использование биндингов доставляет некоторые неудобства в плане того, что необходимо доставить соответствующий нативный бинарник на устройство конечного пользователя. Однако эти неудобства с лихвой окупаются достоинствами. А именно лучшим перформансом и портируемостью.
Однако, проект показался мне столь интересным, что я проигнорировал эти справедливые возражения.
Недельный геймдев: #85 — 4 сентября, 2022
Из новостей: создатели Crypt of the NecroDancer начнут издавать игры других инди-разработчиков, Sony купила Savage Game Studios, Google добавила сторонние способы оплаты в Play Store для ряда стран.
Из интересностей: «Если ты не можешь загуглить это, то не используй» — про разработку EVE Online, порт Another World под Linux на R, документалка о том, как Disco Elysium переводили на русский язык, доклад про VFX в Returnal, реалистичная версия LoFi Girl в Blender и UE5.
Какие технологии, процессы и решения мы используем при разработке на Unreal Engine 4 — опыт Allods Team
Всем привет, меня зовут Виктор Щепкин, я работаю Team Lead’ом в студии Allods Team. В этом тексте я расскажу про особенности работы с Unreal Engine, а также подробно опишу, какие решения и процессы мы используем при разработке проектов:
• как мы применяем Unreal Engine Modules и Plugins;
• cross-sharing технических решений;
• про стандартизацию и валидацию данных.
Flutter Flame: ускоряем в 32 раза работу со столкновениями
Как я уже писал ранее, на FPS в Flame в основном влияют операции, производимые на CPU. Если в вашей игре достаточно много взаимодействующих объектов, то одной из самых дорогих операций будет определение столкновений. Настолько дорогой, что на экране performance-метрики она закроет собой любые другие неоптимизированные участки.
Сами авторы Flame отлично осознают, что их алгоритм – не идеальный, а просто «дающий достаточную производительность». Достаточна она, видимо, для случаев, когда у вас всего объектов 10, не более. Если же у вас что-то более сложное – тогда приятного чтения!
Сайонара, Хабр
Не думал, что всё закончится вот так...
Надгробья современного геймдева. Идеальная модерация
Сэкономим для Винни-Пуха время: идеальная модерация в многопользовательских видеоиграх не возможна.
Независимо от выбранной цели (и методов), идеальная модерация ОБЯЗАТЕЛЬНО будет наступать на все доступные мозоли либо "бизнесу", либо игрокам, либо бедным замороченным людям, на которых обязанности модераторов будут возложены.
Всё.
А почему так?
Попробуем разобраться с применением длинных слов и абстрактных идей.
Первые шаги в Unity с OpenXR
Привет! Сегодня мы создадим VR-проект на Unity, работающий по стандарту OpenXR.
Время идёт, технологии не стоят на месте, и способов разработать свой VR-проект всё больше и больше. OpenXR позволяет получить полный контроль над своим VR-проектом и безболезненно перенести в виртуальную реальность свою игру.
Внеочередной урок по Godot 4.0: пиксели и RPG (часть первая, в которой человечек научился ходить)
Не являюсь гуру Godot, не претендую на абсолютные знания и не имею докторскую степень по чему-либо. Всячески приветствую советы по улучшению кода и прочим идеям. Следовать урокам исключительно на свой страх и риск.
Урок Серия уроков будет посвящена созданию простой RPG в 1bit пиксель-арт стиле, где я постараюсь рассмотреть всю ту боль и страдания, с которыми обычно встречаются новички - джиттер, расплывающиеся пиксели, борьба с разрешением и прочее.
Как команда из Татарстана создала IT-настолку «ProfIT»
В большинстве IT-компаний, где я работала, настолки были важной частью корпоративной культуры. Стандартно раз в неделю за «Катаном» и «Имаджинариумом» собираются многие команды. Самая популярная стратегия – приумножить богатства, стать успешным в бизнесе, сельском хозяйстве, управлении королевством. А что, если создать игру для айтишников про них самих — настолку, имитирующую их собственные карьерные пути? Такая мысль посетила одну креативную команду из Татарстана, и они создали настольную игру ProfIT.
Недельный геймдев: #84 — 28 августа, 2022
Из новостей: недельный геймдев в виде рассылки, в Godot 4.0 уберут визуальный скриптинг (останется только в 3.x), Масахиро Сакураи, известный по Kirby и Super Smash Bros, запустил канал на YouTube.
Из интересностей: советы и практики планирования, почему ИИ в F.E.A.R. по-прежнему остается лучшим в шутерах от первого лица, список кастомных игровых движков, использование TikTok’а, чтобы получить 120 миллионов просмотров и 60 тысяч добавлений в список желаемого Steam, симуляция тропической погоды в Far Cry 6.
Steam Deck — тетрис «на стероидах»
Несколько месяцев назад к нам в офис приехал Steam Deck. Мы его заказывали еще в прошлом году, в первую очередь — чтобы протестировать на нем наш флагман War Robots, который доступен в библиотеке Steam. Но, конечно, интерес к девайсу не ограничивался только этим, и хотелось прощупать абсолютно все, на что он способен. И в этой статье я расскажу о результатах нашего теста и первых впечатлениях от устройства.
Вклад авторов
-
alizar 5330.2 -
Milfgard 3716.0 -
Weilard 2229.0 -
HotWaterMusic 1802.8 -
haqreu 1682.0 -
ProductivityInside 1613.6 -
BasmanovDaniil 1367.2 -
GlukKazan 1211.8 -
soulburner 1014.0 -
Pixonic 924.8