Планирую оживить в ближайшее время рубрику «Посиделки с инди» с интервью с нашими разработчиками игр.
Пока для теста d-fens помогла с текстовой расшифровкой одного старого выпуска с Алексеем Flazm Давыдовым.
Если всё ок пройдёт, то будем на регулярной основе работать.
#ПосиделкиСИнди
Пока для теста d-fens помогла с текстовой расшифровкой одного старого выпуска с Алексеем Flazm Давыдовым.
Если всё ок пройдёт, то будем на регулярной основе работать.
#ПосиделкиСИнди
🔥18👍3❤2👎1
На годовщину Ultima Online разработчики рассказали про занятный случай c дюпом предметов. Разобрал кратко в Твиттере. Самая вишенка в истории в том, что вместо какого-то фикса нормального, они помечали такие предметы, а потом после выкатки обновления разом их все удалили 😈
Баг проявлялся на границах зон. Если сократить, то суть бага: один игрок бросат сундук в лагающем участке (между зонами), а потом другой игрок пытается подобрать его одновременно с тем, как бросивший игрок пытается его же поднять.
В итоге у каждого оказывалась копия сундука.
В UO нету типичных зон с подгрузками, вместо них разработчики изобрели прямоугольные бесшовные «подкарты» с методом, позволяющим пройти от одной стороны к другой, в то время как вещи на другой стороне всё ещё видны и обновлялись в режиме реального времени.
Каждый игровой сервер фактически был разделён на районы, и был код, который обрабатывал передачу состояния игры, условий объектов и событий с одной стороны границы на другой. Но пересечение этих границ в качестве игрока иногда заметно тормозило.
Эти районы, по сути, копировали вашего игрового персонажа и отправляли друг другу в пакете, содержащем всю вашу информацию. Когда игрок пересекал границу, старая копия игрока на исходной стороне уничтожалась.
У игры не было привычной БД. Использовали дампы памяти 🤔
1. Каждый шард выполнял отключение/резервное копирование в определённое время.
2. Полное игровое состояние каждого ареасерверы сбрасывалось из памяти в большой двоичный файл.
3. Как только серверы завершали резервное копирование, они отключились, перезапускались и переходили в режим ожидания, в то время как «игровой сервер» делал то же самое.
4. Игровой сервер выключался, перезапускался, а затем инструктировал каждый ареасервер загрузить свою последнюю заведомо исправную резервную копию.
5. Каждый ареасервер загружал бинарную резервную копию и воссоздавал ранее сохранённое состояние игры; он также выполнял любые триггеры/хуки.
6. Куча других вещей, включая появление новых мобов или ежедневных редких предметов.
7. Ареасерверы инорфмировали, что всё в порядке, и сообщали игровому серверу, а он повторно объявлял о себе авторизационным серверам, что он доступен для игры.
П.2 был самой большой проблемой. Найти дубли в дампе нереально.
Но п.5 натолкнул разработчиков на идейку: на старте сервака помечать наиболее ценные предметы и сохранять их в глобальный хеш-реестр.
В общем, на ценных предметах висела уникальная метка. Когда по предмету проводилась логика какая-то по копированию, то на копии оставалась метка и можно было свериться с глобальным реестром. Если уже был предмет с такой меткой, то копия потом помечалась тегом «I AM DUPED».
За несколько недель скопилось много таких предметов и стали решать, что же делать.
Но когда начали общаться с директором и QA/КМ'ами, то те сразу дали понять, что дропать все дубли не самая лучшая идея, т. к. вызовет гнев очень большого числа игроков.
В итоге:
1. Нашли багоюзеров и их хранилища
2. Нашли всех причастных в «кольце дублирования»
3. Написал скрипт
4. Служба поддержки массово забанила мошенников
5. Остановили соединение gameserv/loginserv с теми же серверами, к каждому жилищу, прикрепили скрипт
Сам скрипт:
1. Удалить дом и его содержимое. Рекурсивно.
2. Заполнить область чёрным щебнем.
3. Создать кучу вечных огненных полей среди щебня.
4. В центре поставить соломенный манекен с надписью «An Effigy of a Traitor».
Мир игры вспыхнул, как и жопы игроков 😈
Поддержку завалили письмами.
С технической точки зрения, даже с отсутствием БД, странно, что не сделали какие-то программные транзакции с двухфазным коммитом, чтобы избежать клонирования в этих зонах.
#UltimaOnline
Баг проявлялся на границах зон. Если сократить, то суть бага: один игрок бросат сундук в лагающем участке (между зонами), а потом другой игрок пытается подобрать его одновременно с тем, как бросивший игрок пытается его же поднять.
В итоге у каждого оказывалась копия сундука.
В UO нету типичных зон с подгрузками, вместо них разработчики изобрели прямоугольные бесшовные «подкарты» с методом, позволяющим пройти от одной стороны к другой, в то время как вещи на другой стороне всё ещё видны и обновлялись в режиме реального времени.
Каждый игровой сервер фактически был разделён на районы, и был код, который обрабатывал передачу состояния игры, условий объектов и событий с одной стороны границы на другой. Но пересечение этих границ в качестве игрока иногда заметно тормозило.
Эти районы, по сути, копировали вашего игрового персонажа и отправляли друг другу в пакете, содержащем всю вашу информацию. Когда игрок пересекал границу, старая копия игрока на исходной стороне уничтожалась.
У игры не было привычной БД. Использовали дампы памяти 🤔
1. Каждый шард выполнял отключение/резервное копирование в определённое время.
2. Полное игровое состояние каждого ареасерверы сбрасывалось из памяти в большой двоичный файл.
3. Как только серверы завершали резервное копирование, они отключились, перезапускались и переходили в режим ожидания, в то время как «игровой сервер» делал то же самое.
4. Игровой сервер выключался, перезапускался, а затем инструктировал каждый ареасервер загрузить свою последнюю заведомо исправную резервную копию.
5. Каждый ареасервер загружал бинарную резервную копию и воссоздавал ранее сохранённое состояние игры; он также выполнял любые триггеры/хуки.
6. Куча других вещей, включая появление новых мобов или ежедневных редких предметов.
7. Ареасерверы инорфмировали, что всё в порядке, и сообщали игровому серверу, а он повторно объявлял о себе авторизационным серверам, что он доступен для игры.
П.2 был самой большой проблемой. Найти дубли в дампе нереально.
Но п.5 натолкнул разработчиков на идейку: на старте сервака помечать наиболее ценные предметы и сохранять их в глобальный хеш-реестр.
В общем, на ценных предметах висела уникальная метка. Когда по предмету проводилась логика какая-то по копированию, то на копии оставалась метка и можно было свериться с глобальным реестром. Если уже был предмет с такой меткой, то копия потом помечалась тегом «I AM DUPED».
За несколько недель скопилось много таких предметов и стали решать, что же делать.
Но когда начали общаться с директором и QA/КМ'ами, то те сразу дали понять, что дропать все дубли не самая лучшая идея, т. к. вызовет гнев очень большого числа игроков.
В итоге:
1. Нашли багоюзеров и их хранилища
2. Нашли всех причастных в «кольце дублирования»
3. Написал скрипт
4. Служба поддержки массово забанила мошенников
5. Остановили соединение gameserv/loginserv с теми же серверами, к каждому жилищу, прикрепили скрипт
Сам скрипт:
1. Удалить дом и его содержимое. Рекурсивно.
2. Заполнить область чёрным щебнем.
3. Создать кучу вечных огненных полей среди щебня.
4. В центре поставить соломенный манекен с надписью «An Effigy of a Traitor».
Мир игры вспыхнул, как и жопы игроков 😈
Поддержку завалили письмами.
С технической точки зрения, даже с отсутствием БД, странно, что не сделали какие-то программные транзакции с двухфазным коммитом, чтобы избежать клонирования в этих зонах.
#UltimaOnline
Please open Telegram to view this post
VIEW IN TELEGRAM
Medium
That Time We Burned Down Players’ Houses in Ultima Online
Ultima Online is celebrating its 25th anniversary! You know what that means, right? Story time!
👍10🔥6
Длинные посты (наподобие последнего про UO) лучше прям так публиковать или ссылкой на пост на другой платформе (DTF, Телеграф и т. п)? Как вам удобней читать?
Anonymous Poll
62%
Пост в Телеге
38%
На другой платформе, а в Телеге ссылку указывать
This media is not supported in your browser
VIEW IN TELEGRAM
UE 5.1 будет иметь на борту фреймворк ML Deformer для создания кастомных моделей и новую модель Neural Morph Model. Инструмент позволяет выполнять высококачественные деформации в режиме реального времени.
Персонаж c видео использует ~1 МБ ML-памяти и занимает менее 100 микросекунд на CPU и 40 микросекунд на GPU.
https://twitter.com/JohnEMotionFX/status/1578520855508058112
#UnrealEngine #UE5 #ML
Персонаж c видео использует ~1 МБ ML-памяти и занимает менее 100 микросекунд на CPU и 40 микросекунд на GPU.
https://twitter.com/JohnEMotionFX/status/1578520855508058112
#UnrealEngine #UE5 #ML
🔥15❤🔥2👍2
Йоханнес Бойвен поделился знаниями о скульптинге человеческих тел в ZBrush и Maya.
https://www.artstation.com/artwork/Je1qY0
https://www.artstation.com/artwork/Je1qY0
👍9❤1
Недельный геймдев: #90 — 9 октября, 2022
📜 Обновления/релизы/новости
- Вышла превью версия Unreal Engine 5.1
- UE 5.1 будет иметь на борту фреймворк ML Deformer для создания кастомных моделей и новую модель Neural Morph Model
- Российский разработчик Сультим Цырендашиев выпустил мод с трассировкой лучей для первой Quake
- Godot 2022 showreels
- Вышел GDevelop 5.1
- Крупное исследование русскоязычного Кипра от App2Top
🆓 Халява/раздачи/бандлы/курсы
- Бесплатные ассеты для UE за октябрь 2022
- Бандл книг для геймдизайнеров
📝 Интересные статьи/видео
- Горящие дома и жопы игроков в Ultima Online: как чинили баг с дюпом предметов
- Noclip Podcast 92: будущее Disco Elysium
- Поработал над игрой и не сошёл с ума, читая рецензии
- «Нефелия: Сквозь облака»: полезные ассеты для неба и погоды
- Пикселизирующая пушка как в Ratchet & Clank в Unity
- Введение в инструменты для пиксельарт-художников
- Чеклист, если хотите сделать отличный игровой трейлер
- Создание сцены с уютной таверной в Unreal Engine
- Неформальный Эксель: OpenGL, игры на GDI+ и инфографика теперь и в VBA
- Разработчики саги Remothered обсуждают создание Batora: Lost Haven
- Сочетание милого с оккультным в Cult of the Lamb
- Создание французской косы с помощью Maya XGen
- Практические советы по росту игр на различных рынках
- Стоит ли участвовать в Gamescom
- Скидка на ваши игры: 7 чётких правил
- Сказ о том, как разработчик свой воксельный 3д движок создавал
- Кватернионы: геометрическая интерпретация
- Создание стилизованной кожаной сумки в Maya, ZBrush и Substance 3D Painter
- Босс Ripple Effect: «мы должны принять тот факт, что некоторые люди будут работать полностью удалённо»
- Внедрение отслеживания пути в Justice: интервью с Динггеном Жаном из NetEase
- Дизайн уровней. Обучение игровым механикам
- Список советов и рекомендаций по 3D-скульптингу
- Green Hawk Platoon: переход с UE4 на UE5
- Вот почему вашей игре нужен LiveOps
- Алан Патмор из Humble Bundle рассказывает об издательском деле, разработке игр и инди-играх
- Декали с трипланарной проекцией, учитывающей положение, масштаб и вращение
- Ретаргетинг анимации
- Утраченное искусство портативных демейков
📙 Разное
- Эксперименты с технологией моделирования волос в Unity
- Игра JellyCar Worlds с физикой мягких тел и с использованием DOTS/ECS на Unity
- Объёмные облака в Unity
#дайджест #gamedevnews
📜 Обновления/релизы/новости
- Вышла превью версия Unreal Engine 5.1
- UE 5.1 будет иметь на борту фреймворк ML Deformer для создания кастомных моделей и новую модель Neural Morph Model
- Российский разработчик Сультим Цырендашиев выпустил мод с трассировкой лучей для первой Quake
- Godot 2022 showreels
- Вышел GDevelop 5.1
- Крупное исследование русскоязычного Кипра от App2Top
🆓 Халява/раздачи/бандлы/курсы
- Бесплатные ассеты для UE за октябрь 2022
- Бандл книг для геймдизайнеров
📝 Интересные статьи/видео
- Горящие дома и жопы игроков в Ultima Online: как чинили баг с дюпом предметов
- Noclip Podcast 92: будущее Disco Elysium
- Поработал над игрой и не сошёл с ума, читая рецензии
- «Нефелия: Сквозь облака»: полезные ассеты для неба и погоды
- Пикселизирующая пушка как в Ratchet & Clank в Unity
- Введение в инструменты для пиксельарт-художников
- Чеклист, если хотите сделать отличный игровой трейлер
- Создание сцены с уютной таверной в Unreal Engine
- Неформальный Эксель: OpenGL, игры на GDI+ и инфографика теперь и в VBA
- Разработчики саги Remothered обсуждают создание Batora: Lost Haven
- Сочетание милого с оккультным в Cult of the Lamb
- Создание французской косы с помощью Maya XGen
- Практические советы по росту игр на различных рынках
- Стоит ли участвовать в Gamescom
- Скидка на ваши игры: 7 чётких правил
- Сказ о том, как разработчик свой воксельный 3д движок создавал
- Кватернионы: геометрическая интерпретация
- Создание стилизованной кожаной сумки в Maya, ZBrush и Substance 3D Painter
- Босс Ripple Effect: «мы должны принять тот факт, что некоторые люди будут работать полностью удалённо»
- Внедрение отслеживания пути в Justice: интервью с Динггеном Жаном из NetEase
- Дизайн уровней. Обучение игровым механикам
- Список советов и рекомендаций по 3D-скульптингу
- Green Hawk Platoon: переход с UE4 на UE5
- Вот почему вашей игре нужен LiveOps
- Алан Патмор из Humble Bundle рассказывает об издательском деле, разработке игр и инди-играх
- Декали с трипланарной проекцией, учитывающей положение, масштаб и вращение
- Ретаргетинг анимации
- Утраченное искусство портативных демейков
📙 Разное
- Эксперименты с технологией моделирования волос в Unity
- Игра JellyCar Worlds с физикой мягких тел и с использованием DOTS/ECS на Unity
- Объёмные облака в Unity
#дайджест #gamedevnews
Suvitruf's Blog :: Gamedev suffering
Недельный геймдев: #90 — 9 октября, 2022 | Gamedev suffering
Из новостей: вышла превью версия Unreal Engine 5.1, мод с трассировкой лучей для первой Quake, Godot 2022 showreels, GDevelop 5.1. Из интересностей: бандл книг для геймдизайнеров, горящие дома и жопы игроков в Ultima Online — как чинили баг с дюпом предметов…
🔥4👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Немного Ранмы. Скетчи в Крите, риг и анимация в Блендере.
https://twitter.com/giwono0708/status/1578593014871920641
#anime #blender
https://twitter.com/giwono0708/status/1578593014871920641
#anime #blender
❤🔥16❤6👍1
Люблю такие обсуждения на Реддите, где люди делятся своими мыслями/идеями по какой-то теме.
В этот раз вопрос о том, не теряют ли люди удовольствия от прохождения игр и не появляются ли сложности при погружении из-за того, что мы сами создаём игры и знаем, как вся эта магия/хакки «дыма и зеркал» работает.
https://www.reddit.com/r/gamedev/comments/xxef9s/do_gamedevs_find_it_hard_to_immerse_themselves/
#reddit
В этот раз вопрос о том, не теряют ли люди удовольствия от прохождения игр и не появляются ли сложности при погружении из-за того, что мы сами создаём игры и знаем, как вся эта магия/хакки «дыма и зеркал» работает.
https://www.reddit.com/r/gamedev/comments/xxef9s/do_gamedevs_find_it_hard_to_immerse_themselves/
❤🔥9❤1👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Nanite в Unreal Engine 5.1 намного лучше справляется с мелкими объектами. Проблема с той же листвой была с момента выхода альфы UE5.
Видно, что команда UE усердно работает в этом направлении, что очень радует.
https://twitter.com/tasaki_yota/status/1578686510919872512
#UE5 #UnrealEngine #Nanite
Видно, что команда UE усердно работает в этом направлении, что очень радует.
https://twitter.com/tasaki_yota/status/1578686510919872512
#UE5 #UnrealEngine #Nanite
👍11🔥4❤2
На фоне выхода ремейка The Last of Us Part I сотрудники Naughty Dog поделились материалами по игре.
1. https://artstation.com/artwork/g8l0x8
2. https://artstation.com/artwork/zDL4Om
3. https://artstation.com/artwork/qQGDvy
4. https://artstation.com/artwork/o2wvR4
5. https://artstation.com/artwork/eJwnlY
#TheLastOfUs
1. https://artstation.com/artwork/g8l0x8
2. https://artstation.com/artwork/zDL4Om
3. https://artstation.com/artwork/qQGDvy
4. https://artstation.com/artwork/o2wvR4
5. https://artstation.com/artwork/eJwnlY
#TheLastOfUs
❤🔥7🔥5
Ребята из 80lv про нас статейку написали, про обновление недавнее, которое мы пилили почти 2 месяца последних. Переделали дизайн (нанимали для этого круто спеца) и базовые вещи заложили для A/B-тестов и собственной аналитики.
Напомню, что сейчас пилю сервис для разработчиков игр для лайвопса, A/B-тестов и анализу этого всего: https://balancy.co
Помимо этого у сервиса в принципе удобная админка для ведения конфигов/баланса. А для Unity есть плагин для автогенерации кода классов и всего кода по закачиванию json'ов с CDN и мапингу на классы.
Раньше для документов шаблонов была одинаковые странички с одинаковой табличкой. Сейчас в зависимости от типа шаблона/структуры сделали отдельные страницы с уникальным дизайном и своими метриками.
И да, мы всё ещё ищем людей на бекенд и фронтенд.
- На фронте Реакт и ts. Нужно как старые окна дорабатывать, так и кучу нового функционала пилить. Опыт с Реактом 3+
- На бэк нужен нодер (3 года+) с опытом хайлода, который умеет в SQL (конкретно сейчас у нас PostgreSQL). Если трогал TimeScale, то будем отличным плюсом.
З/п + опцион, удалённо, нужно физически находиться не в России/Беларуси (а то слишком большие риски 😔).
#Balancy
Напомню, что сейчас пилю сервис для разработчиков игр для лайвопса, A/B-тестов и анализу этого всего: https://balancy.co
Помимо этого у сервиса в принципе удобная админка для ведения конфигов/баланса. А для Unity есть плагин для автогенерации кода классов и всего кода по закачиванию json'ов с CDN и мапингу на классы.
Раньше для документов шаблонов была одинаковые странички с одинаковой табличкой. Сейчас в зависимости от типа шаблона/структуры сделали отдельные страницы с уникальным дизайном и своими метриками.
И да, мы всё ещё ищем людей на бекенд и фронтенд.
- На фронте Реакт и ts. Нужно как старые окна дорабатывать, так и кучу нового функционала пилить. Опыт с Реактом 3+
- На бэк нужен нодер (3 года+) с опытом хайлода, который умеет в SQL (конкретно сейчас у нас PostgreSQL). Если трогал TimeScale, то будем отличным плюсом.
З/п + опцион, удалённо, нужно физически находиться не в России/Беларуси (а то слишком большие риски 😔).
#Balancy
80LV
Pavel Ignatov Talks Balancy's Existing and Upcoming Features
Pavel Ignatov has told us about Balancy, a service that helps game developers run and analyze Live Operations, spoke about the service's newly-added features, and explained how they cooperate with developers.
❤🔥11❤4👍4😍2🤯1
Команда Unreal Engine выпустила руководство по Nanite в UE5 для учителей и студентов.
Компактно на 21 страницу расписано про технологию.
https://www.unrealengine.com/en-US/blog/download-the-new-nanite-teacher-s-guide
#unrealengine #nanite #UE5
Компактно на 21 страницу расписано про технологию.
https://www.unrealengine.com/en-US/blog/download-the-new-nanite-teacher-s-guide
#unrealengine #nanite #UE5
👍13⚡3❤2🔥2🏆1
К концу года выйдет DirectStorage 1.1. Появится распаковка на GPU.
В их примере: распаковка текстур заняла 0.8 сек на GPU с помощью GDeflate против 2.36 сек на CPU с помощью Zlib 🤯
https://devblogs.microsoft.com/directx/directstorage-1-1-coming-soon/
Для того, чтобы получить выигрыш от технологии, игра должна быть установлена на NVMe. Работает и в Windows 10, и в Windows 11, но в Windows 11 лучше 🤔
#DirectStorage
В их примере: распаковка текстур заняла 0.8 сек на GPU с помощью GDeflate против 2.36 сек на CPU с помощью Zlib 🤯
https://devblogs.microsoft.com/directx/directstorage-1-1-coming-soon/
Для того, чтобы получить выигрыш от технологии, игра должна быть установлена на NVMe. Работает и в Windows 10, и в Windows 11, но в Windows 11 лучше 🤔
#DirectStorage
🔥7🤯2