Gamedev Никита Лосев
31 166

Один из разработчиков третьего «Ведьмака» случайно открыл в игре все двери

Автор книги о трудностях разработки игр Джейсон Шрайер (Jason Schreier) рассказал о забавном случае при создании DLC «Кровь и вино».

В закладки

Об этом сообщает Kotaku.

Сотрудники CD Projekt RED рассказали Шрайеру, что во время работы над DLC они обнаружили возможность зайти в любую дверь, у каждой из которых была разная цель — некоторые должны были открываться при наличии ключа, некоторые были всегда открыты, а некоторые никогда не должны были открываться.

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

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

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

«Ведьмак 3: Дикая охота» вышла в мае 2015 года на PlayStation 4, Xbox One и ПК. Игра получила высокие оценки игроков и прессы. Осенью 2015 года и в конце мая 2016 года вышли два дополнения к игре — «Каменные сердца» и «Кровь и вино», которые также были тепло приняты пользователями.

#фан #ведьмак

Материал опубликован пользователем. Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Никита Лосев", "author_type": "editor", "tags": ["\u0432\u0435\u0434\u044c\u043c\u0430\u043a","\u0444\u0430\u043d"], "comments": 25, "likes": 102, "favorites": 6, "is_advertisement": false, "subsite_label": "gamedev", "id": 8107, "is_wide": false, "is_ugc": false, "date": "Thu, 06 Jul 2017 22:42:55 +0300" }
{ "id": 8107, "author_id": 5402, "diff_limit": 1000, "urls": {"diff":"\/comments\/8107\/get","add":"\/comments\/8107\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/8107"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 64954, "possessions": [] }

25 комментариев 25 комм.

Популярные

По порядку

Написать комментарий...
15

Наверное это во время нападения вампиров на боклер , там закрываются двери

Ответить
14

У меня был забавный схожий случай, когда во время анимации добивания Геральт прошел сквозь дверь, от которой нужно было найти ключ, после этого я смог проходить сквозь ВООБЩЕ ВСЕ двери, даже те, которые не должны были открываться никогда

Ответить
0

Изощеренное наказание)) за то больше халтурить не будет

Ответить
18

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

Ответить
3

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

Ответить
0

Движок то тут при чём? Алексей про систему контроля версий.

Ответить
2

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

Но это, ясное дело, только предположение, мы же не знаем как там оно у них устроено. Вон, например, у Банжи в первой судьбине, в редакторе карт нельзя было просто так ящик какой-нибудь подвинуть, потому что после каждого изменения приходилось "перезапекать" карту, а это долго. Может у поляков, что-то похожее?

Ответить
1

Понимаю. Мы с таким сталкиваемся, когда несколько человек работают над одной сценой/префабом в Unity3d.

Ответить
1

зачем мучить сотрудника? откатить билд на состояние с нормальными дверями и выдернуть их положение скриптом.. средневековье какое-то, Ведьмак-с )

Ответить
2

А теперь представьте сколько было целой командой проделано работ, пока тестеры не заметили открытые двери :)
Либо так, либо всем пришлось бы переделывать всё остальное заново.

Ответить
12

не-не, я о том, что можно ведь вытащить старую версию из репозитория и выдернуть из нее состояние дверей, а потом скриптом накатить эти координаты дверей на двери в текущей версии?

Ответить
1

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

Ответить
0

Особенно если в тестовой сборке всё работает исключительно на костылях

Ответить
0

Да даже непонятно при чем тут билд, если это внутриигровая ситуация, а в игре обычно никакие изменения не сохраняются.
Конечно, неизвестно, как у них движок устроен, но это очень странно. А что, если кто-то запустит игру и откроет ключами другие двери, их тоже ручками придется возвращать в закрытое состояние? Ну глупость же.

Ответить
2

ШОК СЕНСАЦИЯ
Разработчикам пришлось заново делать всех боссов, потому, что один из тестеров их убил!

Ответить

0

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

Ответить

0

Причём тут перекомпиляция движка, если речь про файлы описывающие данные игры?
Ладно

Ответить
0

С чего ты взял ,что состояние дверей хранилось в скрипте?

Ответить
0

Я бы сделал три состояния для дверей: открыта, закрыта и всегда закрыта. И на этой сцене, после прохождения квеста, я бы всем дверям с состоянием "закрыта" вернул состояние "открыта"

Ответить
3

И был бы так же не прав. Некоторые двери возможно должны были остаться закрытыми, но не в состоянии "всегда закрыта".
Да тут ничего хитрого городить и не надо было. Банально сохранить состояние каждой двери по отдельности до этого евента с закрытием, а потом вернуть это состояние. При условии, что в квесте никакого взаимодействия с ними не происходит.

Ответить
0

Ээ, ну так все верно. Двери с состоянием "всегда закрыта" были бы впорядке, а остальные вернулись в свое обычное состояние. Нормальный, костыль, че ты ;)

Ответить
0

Ну метод в лоб: добавить предыдущее состоянии двери. Но вообще вся ситуация смахивает на недочёт самого движка, когда нельзя восстановить состоянии двери к предыдущему.

Ответить
0

Судя по всему именно так, иначе стали бы они так издеваться над провинившимся)

Ответить
0

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } } ]
Гейб Ньюэлл наконец-то анонсировал то,
чего все так долго ждали
Подписаться на push-уведомления