Comments 153
8 МБ хватит каждому!
Тестровщики: а что нужно протестировать в вашей игре?
Разработчики: ну так, побегайте полчасика, а то пора уже в продакшен, релиз горит!
Менеджмент: релизим, пофиг на всё!
Что за легкомысленные комментарии?
Вы себе хоть немного представляете, несколько невозможно сдвинуть ни на один день анонсированный международный релиз?
Тем не менее 2 раза уже переносили (или 3? я уже запутался).
А вот и менеджер подключился ;)
Ну… можно же, например, не запихивать упорно новые недотестированные фичи "ну ещё капельку, кисонька!" для отчётности о запихнутых фичах?
Поэтому есть такая фишка как feature togglers, ключи включения или выключения фич, которые ушли в релиз ветку, но еще не работают [стабильно].
С 2006 работаю в геймдеве, участвовал в самой разной крупности проектах.
Нигде о такой системе даже не слышал.
Расскажите?
Понятно, проекты возможно под NDA. Но есть много крупных проектов, исходные коды которых ушли в народ. Вероятно сможете привести пример рабоыт такого механизма?
Я почему спрашиваю:
Сложность проектирвоания, разработки и поддержки такого механизма в игровом движке и игровом проекте выглядит огромной.
Предполагаю что вы видели этот механизм где-то в другой области и решили, что он на геймдев тоже легко переносится. Насколько я могу судить — это не так.
www.martinfowler.com/bliki/FeatureToggle.html
В мобильном биллинге такое используется (в 2 из 4 ОПСОСов в РФ — точно).
В банковском софте такое тоже используется.
В инфраструктуре, где я сейчас работаю, тоже есть такая возможность. Релиз уезжает с фичами, но если обратная связь отрицательная, то фичи выключают. Или, если на предпроме в последний момент выявили какие-то моменты по новым фичам, или выкатывают с выключенными фичами или отменяют релиз целиком (релизы едут раз в 2 недели).
В играх, самый простой случай — ивенты. Все ивенты — включаемые и выключаемые фичи. Чаще всего фичи включаются удаленно через сервер, либо по каким-то датам автоматически, но тем не менее.
Впрочем, пара игр, из тех, что я играл, пересобирались прямо для ивентов.
Ну, вообще есть разница. Геймдев ближе, извините, к коробочной разработке. Когда релиз отдаётся потребителю и им управлять уже невозможно. Разве что предусмотреть в конфигурационном файле какие-то тогглы, но тогда их либо потребителю изменять (через инструкцию полученную в техподе), либо выпускать патч, но проконтролировать его доставку всем клиентам невозможно.
В случае онлайн игр со встроенным механизмом автообновления чуточку попроще. А тем более проще — если сама игра на удаленном сервере, а у пользователя грубо только устройства ввода и вывода. Но мне казалось, что облачный гейминг сейчас только зарождается.
Касательно банковского, биллинга, веб софта — там обычно все-таки нет разнообразия релизов. Есть условно последняя, она же — текущая версия софта. Которая через определенные ручки может экспоузить новые функционалы на часть клиентов, к примеру. И доставка изменений в этом случае в разы проще
А сервер, так или иначе, у очень многих игр уже есть — все эти доски лидеров, таблицы рекордов (глобальные), лобби, матчинг и все такое — это оно.
Что мешает довешать на сервер сигнальную функцию для включения-выключения — ничего.
А сервер, так или иначе, у очень многих игр уже есть — все эти доски лидеров, таблицы рекордов (глобальные), лобби, матчинг и все такое — это оно.
далеко не всегда — часто это реализуется через платформенные штуки, которые предоставляются Microsoft/Sony/Google (google play), apple (у них тоже есть вне приложения борды рекордов).
Что мешает довешать на сервер сигнальную функцию для включения-выключения — ничего.
в принципе — да, ничего.
а про ММОРПГ и игры, где часть функционала (например, мультиплеер и все ивенты) вынесены на сервер.
ok
Не слушайте тех кто не может. "Feature togglers" прекрасно используется в геймдеве и никаких проблем никогда не вызывали. Они изобретены для решения проблем, а не создания. Достаточно часто "togglers" являются ремоут переменными и используются для синхронизации фичлистов или АБ-тестирования на разных платформах.
У меня на первой работе все фичи (кроме уровня ядра) проходили через такие тогглеры.
Фичафлаги есть.
Я видел лично. И пользовался. На большой мультиплеерной игре (полноценная игра, не мобилка, масштабная) с десятками, а то и сотнями тысяч элементов и сотнями тысяч онлайна. Через фичафлаги закрывалось/открывалось очень многое — от апдейтов интерфейса до режимов и частей игры. Набор флагов отдавался при инициализации и загрузке профиля с сервера. На счёт трудоемкости — наверняка, но именно по этому поводу жалоб от разработчиков я не помню.
Да и как иначе обеспечить синхронное открытие механик допустим для всех? Как тестировать новые фичи, индивидуальный билд под каждую фичу то запаришься собирать. Поэтому изоляция фичи и флаг на включение. Правда изоляция не всегда возможна, поэтому они даже зависимые бывают:)
Проект не открыт, все ещё весьма успешно в проде, поэтому даже компанию упоминать не буду. Но это российский разработчик с полностью своим всем, включая движок. Их не так много:)
Зато процесс невпиливания нового, пока не доделано предыдущее, простой.
Digital Extremes (которые делают Warframe) в своих дневниках разработки комментировали этот момент примерно так(не дословно):
К вам на форум приходят игроки и говорят "почему вы не перестанете разрабатывать новый контент, пока не почините игру?"
Проблема в том, что пока у одних всё сломано, у других всё работает, и им скучно без нового контента. Поэтому, выбирая между устранением багов и добавлением фичей мы должны умудриться сделать и то, и то.
Да, можно сказать, что Warframe это немного другая история, у них free2play и live service(как бы отвратно это не звучало).
Однако процесс разработки и там, и там по сути один и тот же.
Любая игра неизбежно держится на костылях и честном слове. Если играть в перфекциониста, любой технически-сложный продукт можно делать до тепловой смерти вселенной(и так и не доделать).
Лично меня в киберпанке больше расстроило отсутствие некоторых ожидаемых фич, чем обилие багов.
Так что да, не делать новое пока не доделано старое — это просто. Но это тоже не правильный подход.
(p.s. я не говорю, что выпускать забагованную игру это нормально, я говорю, что ждать, пока все баги будут исправлены прежде чем делать что-то новое — это путь в никуда)
Не "выпиливание", а "не запихивать в релизный бранч". Тем более во вполне возможном в геймдеве режиме "быстренько потестили, там дополируем".
Немного разные вещи.
Да, одного этого скорее всего не было бы достаточно.
Сложность в новогодних/рождественских праздниках.
Консоли, видеокарты и игры любят релизить поближе к праздникам, потому что это увеличивает продажи во много раз. Так что им действительно было сложно отступать.
Сони пошла на беспрецидентный шаг. С фоллаутом 78 такого не было, не смотря на то, что в своё время его называли самым забагованным релизом ААА-калибра.
Возможно, менеджмент думал, что пронесёт. Не угадали.
Первоначально игра должна была выйти весной. Ни о каких новогодних праздников и речи не было. И есть далеко не один пример, когда игры с релизом весной/летом приносят хорошую прибыль.
С фоллаутом 78 такого не было, не смотря на то, что в своё время его называли самым забагованным релизом ААА-калибра.
Потому что разработчики фоллаута не обманывали покупателей.
(Например, Тодд обещал, что за микроплатежи будет исключительно косметика, но нет.)
Разница в объеме и эффекте лжи. С одной стороны — в игре ввели микроплатежи. Обидно, досадно, но все работает. С другой стороны — игра, практически, не работает на консоли, но всем показывали видео с PC версии, говорили, что все работает. Тут дело не столько в багах, сколько в том, что базовые консоли тупо не тянут игру.
Вряд ли сони пошло на такой беспрецедентный шаг без серьезных причин.
Запуск на прошлом поколении консолей был реально плохой идеей.
"Обидно, досадно, но всё работает"
Гайд со стима "Фарм, баги и много другое по Fallout 76"
Четыре минуса в карму за комментарий – это, конечно, сильно.
Ракетные пуски тоже легко и непринужденно переносят и новые пусковые окна запрашивают. А то взрыв ракеты с ПН на стартовом столе тоже провал по всем фронтам
Вы себе хоть немного представляете, несколько невозможно сдвинуть ни на один день анонсированный международный релиз?
Релиз Cyberpunk для PS4 переносили 4 раза. Причем один из них уже Sony после релиза.
Тестровщики: а что нужно протестировать в вашей игре?ну ограничение в 8 Мб должно быть где-то прописано в коде, причем явно. Это не бага по недосмотру.
Разработчики: ну так, побегайте полчасика, а то пора уже в продакшен, релиз горит!
Код для сохранения переехал из другого проекта вместе с волшебными константами.
"срубил Илья Муромец змею Горынычу 65536 голову и умер он, потому что unsigned short int был". А если точнее, то скорее всего 8388608 байт. Скорее где-то программная ошибка которая ломает сохранения по достижению этого размера, из-за того что об умерших вещах данные не стираются. Возможно читают файл просто до 8388608 байта, а дальше ошибка.
Ну уж не так топорно. Просто под запись длины какого-нибудь поля внутри бинарного файла отвели например 23 бита и подумали что этого хватит. Исправить легко, но надо тогда формат файла менять )
Исправить легко, но надо тогда формат файла менятьсуществуют решения, позволяющие не менять, ну или дающие обратную совместимость из коробки, тот же protobuf например.
почему не 24
Навскидку, потому что signed. Вроде где-то даже видел новость о том, что макс. размер увеличат (или уже увеличили) до 16 Мб. Что вполне себе подтверждает догадку.
или не 32
Вероятно потому что оставшийся байт в инте зарезервирован под что-то типа версии модели сохранения.
Да, кто-то на битах не экономит. А кто-то экономит. Это не делает разработку менее или более современной.
Если уж на то пошло, то упомянутый protobuf — это очень даже экономия на битах по сравнению с джейсончиком или xml-кой. Он недостаточно современный?
Навскидку, потому что signed.В смысле? Бит для знака или signed поле для заведомо неотрицательной длины? Это, простите, такой колхоз, от которого отучают ещё на уроках информатики в школе.
Да, кто-то на битах не экономит. А кто-то экономит.В игрострое сейчас — никто.
Если уж на то пошло, то упомянутый protobuf — это очень даже экономия на битах по сравнению с джейсончиком или xml-кой. Он недостаточно современный?Это просто первое, что пришло в голову. Конечно же, какой-нибудь тупой json+deflate решает проблему совместимости сэйвов ничуть не хуже.
Похоже происходит переполнение поля по имеющимся предметам, видимо это не протестировали совсем, типа да кто там что будет сам создавать, ну или хз по какой причине это не протестили нормально.
не типичный игровой кейс, которого нет в чеклисте. Еще и с огромными временными затратами на воспроизведение.
Однажды проект в котором я участвовал на несколько миллионов игроков вышел в релиз патч с включенными дев читами. Все знали что читы есть. Ими регулярно пользовались для отладки. Просто ни у кого не щелкнуло, что вообще-то их в shipping билде быть не должно.
И это крайне странно, что такое не тестировали. Потому что для прокачки навыка крафта там необходимо делать эти тысячи вещей. И не за всю игру, а для пары уровней навыка (из 20).
Так точно, а как ещё? У нас формальные способы верификации софта ещё в зачаточном состоянии )
Кстати, такие баги сплошь и рядом — помню в Вампиров играл, там был эпичный баг, что игра вылетала в определенный момент, но сам триггер бага происходил на начальных уровнях. Мне повезло — я не столкнулся, но многие напоролись и ощущения от игры у них были испорчены насовсем
Они не пробегали в своей игре и полчаса. Думаю, за пол часа, они бы нашли персонажей в Т-позе, клонов, ходящих по городу в пределах одного экрана, въезжающие в колизии и находящихся друг в друге машины, зависающих персонажей в мейн квестах, ИИ союзников уровня 2000-ых, растущие над землей деревья и мусорные мешки и многое другое. Баг с сэйвами, хоть видимо и является деятельностью кривых багоделов, хотя бы действительно трудно находим глазами.
Если бы они запустили консольную версию, то нашли бы проблемы с производительностью сразу же, но увы "Нам нужные деньги" сказало руководство и зарелизило бетку за фулл-прайс, чтобы потом отнекиваться на тему "Ну мы недооценили проблем")) Ну хоть сценаристы постарались.
К слову, тут предпатч на 1.5гб выходил, в котором они добавили f5 для быстрых сохранений, но видимо даже не задумались о такой фишке как быстрая загрузка, которая вроде как обычно ходит с Тамарой парой… Последний патч, быструю загрузку так же не добавил, но это так, лирика.
Думаю, через год, таки выйдет релизная версия игры, а пока, если хотите от души поржать, можно и поиграть)
К 2077 же.
в 2077 ее будут запускать на калькуляторах, часах, тостерах и микроволновках
Протезы как раз намечаются. Пока ближе к чему-то похожему на "ранние/старые образцы" из DEHR, то есть грубоватые и непродвинутые, но хоть что-то могущие.
Скейт, кстати, был пару лет назад. Жаль, что только над специально подготовленной площадкой и ни метра в сторону.
Откуда нам знать?
Может, они успели сделать только 40% всех задуманных фич и были вынуждены выбросить половину сюжета, и всё равно пришлось три раза откладывать релиз.
Это как они сохраняют предметы что они настольк начинают увеличивать предмет, с учетом что в игре кроме как при прокачке крафта по типам предметов много не на собираешь, инвеньтарь по типам предметов ограничен (их весом).
Вы не учитываете хранилище в домах и машине (багажник). Там весом инвентарь не ограничен.
Самое противное — после релиза — они БАБЛО УЖЕ ПОДНЯЛИ. Следовательно, баги можно чинить в ленивом режиме по остаточному принципу. Да, страдает репутация игродела. Да и пофиг.
если сохранение больше 8 МБ, оно повреждается

Этого хватало чтобы запомнить детство
А вот и причина всплыла — поддержка PS5 протекла в PC версию :)

Т.е., написана большая «В», подразумевая «Байт». Но по факту, карта первой PS только 1 мебибит (128КиБиБайт). А те, что были 2, 4 или даже 8 по факту имели соответственно 2, 4 или 8 страниц по 1 мебибита. И, по идее, должны были помечаться как «1Mb/2Mb/4Mb и 8Mb», т.е. с маленькой буквой «b». Это правда, что в картах от PS2 объёмы значительно больше. Но путаница осталась и не понятно сразу, мебибиты там или мебибайты.
Метро строевцы бы наверно качественнее сделали.
Нет, это вряд ли, если речь о московском метро, тут уже норма, что пересадочная станция сдается без пересадки, а новые линии после открытия закрывают на год на реконструкцию.
Хотя сейчас и больше чем на год: большая кольцевая до сих пор периодически закрывается и закрыта сейчас частично.
Но в любом случае, из всех выходов после открытия будет работать только один.
Мне было бы интересно посмотреть на формат, в котором сохры хранятся, может есть способ восстановить файл, просто удалив битый предмет из сохраненки
Конечно, наверняка есть. Интересно только почему же CDPR не собираются фиксить сломанные сохранения в последующих патчах.
Наверное они тоже не видели формат, в котором сохры хранятся. Ну либо хотят напакостить своим игрокам чисто из вредности. Других вариантов быть не может.
Если счётчик переполнился, то самые первые элементы сохранения затираются теми, что идут в конце попытки сохранения. По идее, такое не лечится.
Косвенно эта наивная догадка подтверждается тем, что в новых сохранениях предел будет не 8 мегабайт, а 16. Такое впечатление, что счетчик M вместо условного signed чего-то-там по-быстрому переделали в unsigned.
Выделение памяти под предметы в файле ограничено каким то полем и оно переполняется. Вылетает при превышении 8мб только от созданных предметов же, если просто много бегать то 8мб тоже превышает но ничего не ломается.
Но это, если что справедливо для ПК. Если у вас вдруг консоль — я без понятия что там творится.
Вернуться к продолжению прерванного квеста или невозможно ( локация на него пропадает с карты и я не могу найти точку в городе куда вернуться надо ) или не получается сесть в машину потому что почему то не срабатывает триггер и F не обрабатывается.
Ну так а все, поезд ушел. Релизмъ :)
У них даже специальный тип оружия выделен для такого (помимо классических снайперских винтовок) — техническое. Дробовики, револьверы и прочее, которые позволяют пробивать стены.
Ну и из взломов есть ещё легендарный пинг, который подсвечивает вообще всех вокруг и позволяет взламывать через стены.
Стреляющее через стены оружие теоретически фича игры, прямо подчёркиваемая когда первый раз в руки игрока попадает "техническое оружие". Но там говорится про тонкие стены.
Другое дело, как эта фича взаимодействует с другими. Ну и нет ли ошибок в оценке пробиваемости/толщины преград.
Пришлось несколько раз грузиться по новой и терпеливо ждать когда все высадятся и разбегутся по территории и отстреливать их по одному.
О! Я думал, что у меня у одного такая проблема. Потому что в первый раз я и правда прокачал ЭМ-снайперку, отстрелял большую часть врагов ещё пока они были в вертолёте, в итоге потом 20 минут бегал по локации и проверял, где там оставшиеся 10 человек. Потом понял, перезагрузился по новой и подождал, пока они будут на земле.
Поэтому этот баг не зависит от системы (сам играл на ящике сХ)
Вернуться к продолжению прерванного квеста или невозможно ( локация на него пропадает с карты и я не могу найти точку в городе куда вернуться надо ) или не получается сесть в машину потому что почему то не срабатывает триггер и F не обрабатывается.
Устали ждать, вот и уехали. Или обиделись и закрылись.
Плюс есть ещё баг/фича с одним из заданий по рукопашке. Где надо победить борцунью из животных: если начать с ней бой, проиграть его, а потом решить перебить всю базу в рамках другого задания — она никогда не умрёт. Вообще никогда. Даже при нанесении 20К урона в голову, её здоровье будет составлять 1%.
А если изначально решить перебить всех — она спокойно умирает и засчитывается победа её в рукопашке.
Про сломанную механику с ЭМ-оружием, когда в некоторых случаях враги даже не пытаются тебя найти, я уже не говорю. Потому что, фактически, ЭМ-оружие (не беря в расчёт то, что некоторые стены/тонкие дверки/прочая фольга/некоторое стекло не пробиваются) это вполне себе рабочий чит.
P.s. пока писал, вы уже ответили. Пробиваемость и подсветка врагов это не баг. Это механика игры. Тяжёлые снайперки и ЭМ-винтовки/мощные пистолеты могут накапливать заряд и пробивать преграды. Но и там всё не так гладко, см. выше.
Ничто не ново под луной. Обычный случай в Скайриме
На самом деле ново. Там вы это делали из режима скрытности и вас не заметили.
Тут же никакой скрытности не надо. В некоторых случаях помогает забежать в другую комнату и закрыть двери. Или просто запрыгнуть на что-нибудь типа крыши.
В итоге враги, даже зная где вы (отправляя хак «запрос местоположения» и/или видя вас по камерам) будут просто стоять и ждать пока вы их убиваете через стены/потолок. Особо смешно это выглядит тогда, когда коса находит на камень и вас отделяет глючно непробиваемое стекло и именно в него лупят враги, а вы стреляете через капитальную стену под ним.
К слову, механика разыскиваемости тут ломается ещё проще, чем в какой-то из ГТА. Там надо было с помощью бага залетать на высокие здания, тут же достаточно на них просто запрыгнуть (лучше с усиленными протезами ног с мощным прыжком). В итоге, начиная с определённой высоты, появляющиеся из воздуха копы, перестают появляться вообще. Даже с четырьмя звёздами.
Ну а если кто решит попробовать постреляться с trauma-team — подумайте ещё раз, так как у них крайне читерские статы.
Я это не к тому, что игра — УГ. На самом деле мир мне там понравился, он реально прикольно проработан и мне действительно интересно его изучать. Но вот сырости в ней оооочень много.
Она убивается, у нее на спине что то типа светящесего шара, его нужно расстрелять(я катаной его срезал), и тогда все идет по маслу.
Хех. В одном из квестов было такое: подранили с напарницей второстепенного сюжетного гада, она спрашивает "Ну что, мне его прикончить, или сам решишь что делать?". Я: "ОК, прикончу, не нравится мне его морда". Достаю пистолет, бах, бах, бах. Три пули в голову. Он продолжает сидеть и стонать. Напарница: "Да господи боже мой, Ви" ("For Christ's sake, V") и бьёт его рукояткой пистолета по голове.
Один из фиксов из свежего патча звучит примерно "больше не ломается квест ### если к нему прыгнуть быстрым перемещением"(а не по городу идти/ехать).
30 часов игры с момента выхода, правда упустил счастливые минуты до момента выхода патча первого дня — безумного количества багов как-то даже не замечаю. Довольно много мелких огрехов — да. Не могу пройти ровно один побочный квест из-за отсутствия квестового предмета на положенном месте. Ужас-ужас.
В 3 ведьмаке багов тоже было довольно много, тем на официальном форуме с «bug» — список на 20 страниц, так что ждём.
Эммм, а у меня сохранение перевалило за 12 мб. И я спокойно играю. Может это просто бред, придуманный что ухудшить репутацию CDPR?
Недавно играл в первого ведьмака. Ок оставляет все сохранения, не перезаписывает их. Ещё там много автосейвов. К концу игры я с удивлением обнаружил, что папка сохранений занимает более 10 гб.
Давным давно в Morrowind были целые районы, где ты заботливо расставлял доспехи, раскладывал книжечки и посуду. И загружалось без проблем.
Лечилось обновлением видеодрайвера. Предполагаю, что при первом запуске в файле сохранялись какие-то некорректные для старого драйвера параметры. Т.е. одну из элементарных и важнейших вещей, валидацию данных из внешних источников (ввод пользователя, содержимое файлов, принятые данные по сети) они не делают. Скорее всего в остальном коде тоже отсутствуют подобные проверки, т.к. такое тупо завернули бы на код ревью, если бы в команде валидация данных считалась обязательной.
Для Cyberpunk 2077 вышло обновление 1.06, исправляющее проблему с сохранениями. Рекомендую включить в UPD статьи.
Разработчик Cyberpunk 2077 рекомендует не создавать лишние предметы: если сохранение больше 8 МБ, оно повреждается