Среди свойств разбиений чисел на части можно указать одно, не называемое другими авторами, которое в ряде случаев оказывается весьма полезным. Речь идет о свойстве разбиений числа, закрепляющем за конкретными слагаемыми подмножества позиций (точек) дискретной плоскости, в котором эти слагаемые могут перемещаться, не выходя за его пределы. Например, рассмотрим такую задачу. Имеется 2 спицы длиной 12 ед и 7 шаровых бусин с диаметрами 2,2,2,3,3,4,4 ед и сквозными отверстиями, проходящими через центры бусин. Как распределить и нанизать бусины на спицы, чтобы спицы после вставки их в кольцо с диаметром большим 12 образовали симметричную фигуру?
Разработка игр *
Разработка игр
Vulkan. Руководство разработчика. Создание вершинного буфера
Я работаю переводчиком в ижевской IT-компании CG Tribe и занимаюсь переводом Vulkan Tutorial на русский язык. Оригинал тьюториала можно найти здесь.
В своей прошлой публикации я начала перевод раздела Vertex buffers, и сегодня хочу представить перевод главы, посвященной созданию буфера — «Vertex buffer creation».
2. Краткий обзор
3. Настройка окружения
4. Рисуем треугольник
- Подготовка к работе
- Отображение на экране
- Графический конвейер (pipeline)
- Отрисовка
- Пересоздание swap chain
5. Вершинные буферы
6. Uniform-буферы
- Layout дескрипторов и буфер
- Пул дескрипторов и сеты дескрипторов
7. Текстурирование
- Изображения
- Image view и image sampler
- Комбинированный image sampler
8. Буфер глубины
9. Загрузка моделей
10. Создание мип-карт
11. Multisampling
FAQ
Новая методика кэширования информации затенения в мировом пространстве
Альтернативы CDN: наша система доставки контента напрямую из стора в игру
War Robots всегда была игрой, насыщенной контентом, а потому места в памяти девайсов занимала немало. Раньше эти цифры колебались в районе 800 МБ, но масштабная переработка графики в ремастере игры, как бы ни хотелось, не смогла бы оставаться в тех же пределах и наверняка бы привела к увеличению размера приложения в несколько раз. Что и случилось в нашем случае: вес клиента достиг 2,3 ГБ — в три раза больше «ванильной» версии. В то же время мы понимали, что HD-пресет потянет далеко не каждый мобильный телефон, а значит — нет смысла заставлять игроков качать ненужные гигабайты и тем самым ломать себе воронку конверсий.
Выход? Базовое качество скачивать по умолчанию и выбирать при первом запуске, а HD-пресет предлагать пользователю позже — и только если устройство его поддерживает.
Все это подстегнуло нас на активное внедрение такой технологии в нашу игру.
Истории
Water Simulation
Появилась возможность рассказать о том как мы создавали жидкость для TReload. Нам всего лишь нужно было залить уровни кислотой. Кислоты должно быть много, площади затопления огромные :) Один из финальных результатов:
Пишем дизассемблер виртуальной машины из игры Clock Tower (PS1/PC) для IDA Pro
Всем привет. Тут такое дело: ещё одна моя реверсерская мечта сбылась - я написал процессорный модуль для IDA Pro с нуля, за два дня! Если вы когда-то тоже хотели написать свой модуль, но боялись начать - думаю, моя статья сможет помочь.
В качестве кода, который требуется дизасемблировать, будет выступать код виртуальной машины из очень крутого хоррора, который выходил сначала на SNES, потом на PS1, PC и Wonderswan - "Clock Tower - The First Fear". В игре имеется 9 концовок (sic!), атмосфера гнетущая, а в качестве главного злодея выступает "Scissorman" (человек с руками-ножницами). Заинтересовал? Тогда добро пожаловать...
Как мы переезжали на новую версию GitLab и внедряли LFS. А потом чинили бэкапы
Исторически мы использовали GitLab 8, который работал на хосте Mac на VirtualBox. Потом конфигурация перестала устраивать, поэтому в локальной сети завели отдельную полноценную Ubuntu-машину. Заодно и GitLab обновили до версии 11.2.1-ee.
Ставили все по официальному гайду. При установке postfix возникли ошибки из-за цифры в имени хоста (решилось переименованием), в остальном сложностей не было. Зато они появились позже: гит-машине перестало хватать памяти на объекты, мы подключили LFS и решили проблему, но потом сломались бэкапы. В общем, было весело. О том, как все это чинили — рассказал под катом.
Китайские госСМИ называют игры «духовным опиумом», который мешает получению образования и разрушает семьи
Правительство Китая в очередной раз выразило резкую неприязнь к играм, в результате чего одна из ключевых компаний на рынке ограничила время, которое можно проводить в играх.
Пекин всегда настороженно относился к играм. В 2013 г. Китай пытался дать определение игровой зависимости, чтобы ее можно было лечить. До этого правительство попыталось нормировать деятельность лагерей интернет-детоксикации — с целью обеспечить их эффективную работу и защитить от жестокого обращения тех, кому требуется помощь в ограничении онлайн-активности. В 2019 г. отраслевые аналитики предположили, что Китай был главным инициатором попыток Всемирной организация здравоохранения дать определение расстройств, связанных с видеоиграми, которое поставило бы их в один ряд с наркотиками и азартными играми.
Недельный геймдев: #31 — 15 августа, 2021
Из новостей на этой неделе: YoYo Games пересмотрела план подписок на GameMaker, создание игр с помощью AI, Nvidia представила плагин Substance 3D для Omniverse, сотрудники Xsolla о культуре страха в компании.
Из интересностей: про дизайн окружения в Doom Eternal, 5 способов улучшить работу с редактором Unity 2020 LTS, статья про оптимизацию .NET кода, руководство по Lumen из UE5, документалка о легендарном Thief.
Особенности прототипирования игр
Думаю, во многих компаниях есть свои R&D-команды, которые ищут новые продукты. Такую решили организовать и в нашей студии, и меня туда пригласили. Конечно же, поначалу мы все были окрылены идеей, что сейчас мы в команде экспериментальных проектов и будем писать ПРОТОТИПЫ. Звучит-то как! Мы будем экспериментировать с новыми библиотеками, так сказать «щупать» новые технологии и вообще делать что-то новое почти каждый месяц! Значит, нам не только не надоест какой-то проект, но и можно не заботиться о долгосрочной поддержке кода. Ведь это начальство разрешает забить на качество написания кода в угоду скорости разработки, ведь всё потом полетит в мусорку и будет переписываться с нуля. Но так ли всё радужно?
Меня зовут Андрей, я программист в студии IT Territory/My.Games, работаю в команде экспериментальных проектов. И хочу рассказать вам об особенностях нашего прототипирования игр.
Что наша жизнь? Игра
Что делает в отпуске директор группы программерских компаний? То, что не может делать на работе. Программирует. Всласть. :)
Мне много лет, я выполз из тьмы и в Transport Tycoon Deluxe я играл ещё в то время, когда эта игра только появилась (это 94-й год).
Создание шутера с LeoECS. Часть 1
Друзья, это первая статья по фреймворку LeoECS из предстоящей серии, которая позволит вам быстрее понять, как работать с LeoECS в Unity и решить некоторые виды проблем, возникающих на практике. Все советы, изложенные в них, не представляют собою какой-то свод правил, способы построения подходов, а скорее набор рекомендаций и best practices, которые помогут вам освоиться в работе с фреймворком. Перед чтением убедитесь, что вы понимаете принцип работы архитектурного паттерна Entity Component System (ECS), и ознакомьтесь с документацией LeoECS, так как в процессе изучения фреймворка мы создадим простую игру жанра Top-Down shooter, рассмотрим часто возникающие проблемы и способы решения, и отвлекаться на различные вопросы, связанные с концепцией ECS, не будем.
HighFleet: игра про битвы небесных кораблей
7 июля 2021 года на Steam вышел давно ожидавшийся инди-проект петербуржского геймдизайнера Константина Кошутина, автора культового стимпанкового HammerFight, поддержанный возрождённой MicroProse. Похоже, предварительные оценки попали в точку.
После долгого ожидания и не раз переносившихся дат выхода он всё же вышел в релиз.
Интерполяция — мать анимации — Твинеры в Unity
Одним из неотъемлемых элементов игровых приложений, обеспечивающих красочный пользовательский опыт, является анимация. Основным компонентом Unity для анимации является "Mecanim", имеющий более привычное название "Аниматор". Это очень мощный инструмент, позволяющий управлять сложнейшими системами объектов, совместимый со скелетными анимациями, экспортируемыми из 3D-пакетов, с инструментами для работы с IK, смешивания анимаций или частичного их проигрывания. И как только ты уверишься в том, что пробовал в аниматоре все, будь уверен - на следующий день ты найдешь новую функцию, с которой не сталкивался ранее. И это будет та самая функция, которой тебе так не хватало. Но не всегда...
Как за неделю до релиза переобуться и сократить размер билда в 3 раза
Современные AAA-тайтлы уже давно стали весить больше 100 ГБ, а их апдейт еще на 20 ГБ считается обычным делом. Тот же тренд разрастания билда постепенно просачивается в мидкорные и хардкорные мобильные игры. Впрочем, к тому, что уже не удивляет ПК- и консольных юзеров, мобильные геймеры все еще довольно чувствительны.
Размер игры на релизе может оказаться гораздо больше необходимого, такое бывает. И даже тогда, когда кажется, что в билде осталось все только нужное, всегда найдется то, что можно оптимизировать и сократить.
Как написать квестовую RPG
Чистый лист — челлендж не только для художников, но и для геймдизайнеров. Здорово просто следовать за вдохновением в разработке игр, но иногда его нет и спасает методология. Перевели статью, где автор по шагам разбирает процесс создания квестовой RPG — с чего начать, как не отвлечься от основной идеи и что поможет в работе.
Особенности создания клона Minecraft «DScraft» для маломощной консоли 2004 года, Nintendo DS
DScraft - это адаптация убер-популярной компьютерной игры Minecraft для Nintendo DS. Хотя DScraft даже близко не так популярен, как оригинальная игра, ему всё равно удалось собрать большое комьюнити, которое существует и сегодня, а саму игру загрузили более 500.000 раз только с одного моего сервера. Мне нравится думать, что это хотя бы частично из-за тех вещей в игре, которые обычно не казались возможными на платформе. Вся разработка заняла примерно полтора месяца. В основном было две вещи, которые раньше заставляли людей думать, что Minecraft на DS почти невозможен: GPU консоли и нехватка памяти.
Civilization Сида Мейера: баг «ядерного Ганди» в том, что его не было
Если бы я попыталась просто привести все самые интересные фрагменты книги, то мне пришлось бы просто процитировать около 85% текста. Так что я поделюсь только фактами, связанными с самой знаменитой игрой Сида Мейера. Под катом несколько фактов из истории создания Civilization, ошибки, фичи, от которых отказались в процессе создания игры, появление читов и объяснение мифа про «ядерного Ганди» от Сида Мейера.
У семи нянек дитя без глазу: локализация игр и волонтерский перевод
Локализация видеоигр (как и любой другой аспект разработки) хорошо описывается волшебным треугольником тройственной ограниченности: цена — время — качество.
Чтобы локализация была дешевой, нужно пожертвовать скоростью (понадобится много времени) или качеством (хороший перевод стоит дороже).
А если хотите получить высокое качество, то это будет либо дорого, либо очень долго.
Чтобы локализация была выполнена быстро, придется жертвовать качеством либо платить больше. (В зависимости от того, насколько сжатые сроки и сколько людей задействовано, может получиться, что вы и заплатите намного больше, и потеряете в качестве!)
В общем, смысл понятен.
Мне слишком часто приходится видеть, как разработчики привлекают к работе над локализацией игры волонтеров из «сообщества»: они хотят, чтобы локализация была дешевой и быстрой и думают, что если исходный английский текст написан хорошо, то и качество перевода будет высоким. Так же?
Ну… вообще-то нет.
Недельный геймдев: #30 — 8 августа, 2021
Из новостей на этой неделе: изменение лицензии Unity для публикации на консоли, Nvidia выпустила вторую версию книги «Ray Tracing Gems», вышел Blender 2.93.2, GameMaker Studio 2 теперь доступен и на Ubuntu.
Из интересного: бесплатный курс по работе со светом с Solaris в Houdini, подробное видео про глобальное освещение, полезный репозиторий, в котором собраны ссылки на различные материалы про Signed Distance Field.
Вклад авторов
-
alizar 5443.2 -
Milfgard 3716.0 -
Weilard 2229.0 -
HotWaterMusic 1802.8 -
haqreu 1682.0 -
ProductivityInside 1616.4 -
BasmanovDaniil 1367.2 -
Suvitruf 1352.3 -
GlukKazan 1211.8 -
soulburner 1014.0