Офтоп Антон Самитов
7 754

Правители в Civilization VI оказались слишком религиозными из-за опечатки в коде

Разработчики уже признали ошибку.

В закладки

Поклонники Civilization обнаружили в коде игры ошибку, которая влияла на приоритеты лидеров под управлением ИИ.

Она оказалась не столько программной ошибкой, сколько опечаткой. В файле Leaders.xml можно найти пять строчек, предположительно, отвечающих за приоритеты правителей по умолчанию, которые меняются в зависимости от особенностей и целей каждого.

Фрагмент кода выглядит следующим образом:

<Row Item="YEILD_PRODUCTION" ListType="DefaultYieldBias" Value="25"/>

<Row Item="YEILD_SCIENCE" ListType="DefaultYieldBias" Value="10"/>

<Row Item="YEILD_CULTURE" ListType="DefaultYieldBias" Value="10"/>

<Row Item="YEILD_GOLD" ListType="DefaultYieldBias" Value="20"/>

<Row Item="YEILD_FAITH" ListType="DefaultYieldBias" Value="-25"/>

Слово «yield» («доход», «урожай» на английском) здесь написано с ошибкой: «yeild». Если бы это написание встречалось везде, то всё работало бы, как задумано, однако опечатка есть только в этих пяти строках.

Ещё до того, как ошибку обнаружили в Firaxis, пользователи выпустили собственные исправления для неё или просто редактировали файл самостоятельно.

Журналисты PC Gamer подтвердили, что правки действительно влияют на игру — государства под управлением компьютера производят куда меньше веры, но строят больше зданий и делают упор на науку.

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

График производства веры за ход после ста ходов (ошибки не исправлены)
График производства веры за ход после ста ходов (ошибки исправлены)

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

В результате, по словам автора PC Gamer, даже королева Виктория организовала в своём государстве священное место, несмотря на то, что в других тестах этого не происходило.

В Firaxis прокомментировали ситуацию, признав ошибку и пообещав исправить её.

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

Мы также удостоверились, что все наши сотрудники запомнили, что буква «I» ставится следом за «E» только в сочетаниях после «C». И ещё нескольких странных исключений.

Спасибо всем, кто сообщил нам об этом! Мы обязательно исправим баг в ближайшем обновлении.

из заявления Firaxis

#фан #civilization

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

Написать
Статьи по теме
Разработчики Civilization VI пообещали исправить «сексистское» поведение правителей
Civilization VI вышла на iPad
Первое крупное дополнение для Civilization VI выйдет 8 февраля
{ "author_name": "Антон Самитов", "author_type": "editor", "tags": ["civilization","\u0444\u0430\u043d"], "comments": 79, "likes": 41, "favorites": 1, "is_advertisement": false, "subsite_label": "flood", "id": 17381, "is_wide": false, "is_ugc": false, "date": "Fri, 16 Mar 2018 16:43:00 +0300" }
{ "id": 17381, "author_id": 24538, "diff_limit": 1000, "urls": {"diff":"\/comments\/17381\/get","add":"\/comments\/17381\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/17381"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 64955, "possessions": [] }

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

Популярные

По порядку

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

Ща бы xml-разметку кодом называть

Ответить
15

Да. Что за фигня? Давайте назовем текстурами или звуком.

Ответить
6

У меня есть идея получше, как на счёт "xml-разметка"?

Ответить
32

Конфиг же

Ответить
0

Сразу видно знающего человека :)

Ответить
3

Какой процент игроков кусок ресурсов будет называть xml-разметкой?)

Ответить
13

Ну ок. Ошибка в "файлах игры" звучало бы намного ближе к правде, чем в "коде игры"

Ответить
–11

Солнце вращается вокруг Земли или Земля вокруг солнца, для наблюдателя эти факты выглядят по разному?

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

Вот как эту фразу понимать?
«…предположительно, отвечающих приоритеты правителей по умолчанию…»

Ох уж эти граммар-nazi! Всем наплевать что вы там чем называете, обычные люди называют это просто кодом, обычные люди всю вашу стрепню называют кодом, потому что так проще.
Всё же это не стаковерхлоу чтобы такие претензии предъявлять.

Ответить
0

Хотя бы «скриптом» уж.

Ответить
5

Это не скрипт. Скрипт это какая-то выполняемая логика, а xml - это просто формат хранения данных.

Ответить
0

Которые потом используются где?)

Ответить
1

В коде игры. Но ошибка-то всё равно не в коде игры, а в конфигах, прописанных в xml-файле)

Ответить
0

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

Ответить
17

Я не могу молчать, это задевает мои девелоперские чувства!

Ответить
2

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

Ответить
0

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

Ответить
0

В случае с видеокартой да. Здесь нет. Конфигурационные файлы - не код игры. Можно было сказать "ошибка в файлах игры". А пока что, относительно вашего примера, отвалился конденсатор на видеокарте, а в статье написали, что сгорела микросхема.

Ответить
0

А если бы это была константа в коде, вы бы согласились, что это код игры?

Ответить
1

Я бы сказал, что это говнокод, параметры константить :D Но вообще да.

Ответить
5

А текст в ворде вы тоже кодом называете? Код так или иначе компилируется и выполняется процессором, а это просто файл с настройками.

Ответить
2

Ну можно же все, что угодно на изнанку такими фразамы вывернуть.
Из твоего комментария например следует, что интерпретируемые языки это не код :), а люди пишушие для FPGA уже и не код пишут :)

Ответить
0

Ну нет. У интепретируемых языков тоже есть компиляция, просто она JIT. Про FPGA ничего не знаю, но если там свой язык ассемблера, то и он компилируется, как ни странно, ассемблером, то есть программой-транслятором.

Ответить
2

Ну про FPGA акцент скорее был на слове *процессор* :)
JIT - не обязательное условие интерпретатора :)

Ответить
0

А каким образом тогда происходит перевод в машинные коды?

Ответить
1

Никак не происходит. Откомпилированная программа (интерпретатор) выполняет команды, которые вы ей написали. Это не JIT-компиляция. JIT-компиляцией называется отдельный процесс преобразования текста на языке программирования в промежуточный код.
А так можно сказать, что и HTML использует JIT компиляцию. И 1С. И любой внутренний язык. Более, тогда получается, что когда вы в калькуляторе, понимающем выражении, пишите (2+7)*3, вы тоже якобы программируете, ведь "как то же это превращается в машинные коды, чтобы получить результат".
Так что товарищ сверху абсолютно правильно написал, что JIT-компиляция, далеко не обязательное условие интерпретатора.

Ответить
0

Точно, я опять каким-то образом перепутал компиляцию и трансляцию. Именно её я и имел в виду. Надо было писать "переводит на язык, понятный процессору" :D Спасибо.

Ответить
6

Павел, вы не правы.
Цитата из Вики: "Код — взаимно однозначное отображение конечного упорядоченного множества символов, принадлежащих некоторому конечному алфавиту, на иное, не обязательно упорядоченное, как правило более обширное множество символов для кодирования передачи, хранения или преобразования информации"
XML разметка - способ кодирования информации. Содержимое XML файла - это код.
Тот факт, что это не исполняемый код ещё не значит, что содержимое XML файла нельзя называть по-русски кодом.

Ответить
3

Это "не тот" код. Это у вас определение кода в смысле шифрования. Просто слово похожее, ничего более.

Програмный код - это набор команд и операций, xml - это "данные", к коду они отношения не имеет.

Ответить
1

XML не кодирует информацию а размечает ее, вы же не кодируете текст если расставляете в нем знаки препинания. Кроме того в тексте пишется о "коде игры" а xml специально и нужен чтобы хранить некоторые данные отдельно от кода программы. Точнее было бы написать в "файлах игры".

Ответить
0

Я вам более того скажу - если я записываю информацию (включая знаки препинания, ага) я кодирую её в текстовом виде, используя алфавит языка.
Пример: у нас есть некоторая конкретная сущность (жираф), которая существует независимо от языка (алфавита). В русском языке эта сущность кодируется с помощью упорядоченного набора символов - "ж", "и", "р", "а", "ф".

Ответить
0

Ладно, пусть будет так. Хотя в любом случае формулировка "в коде игры" применимо к xml-конфигу меня смущает.

Ответить
1

Если углубиться немного глубже в смысловую нагрузку понятийного аппарата, то понятие "xml разметка" или "html разметка" в первую очередь несёт определение функциональной задачи языка - грубо говоря присвоение мета информации элементам.
А вот форма записи информации в конкретном файле это код.
Честно говоря, меня тоже немного коробит отсутствие лексической возможности типизации содержимого файлов по функциональной задаче. Но, что делать)
Интересно, можно ли на английском назвать содержимое XML файл "code".

Ответить
0

А ведь вы правы. Тот же генетический код -- это genetic code, хотя он по своей структуре ближе к xml, а не тексту программы. Программа -- это уже source code, program и т.д. Так что «исходный код» было бы неправильно использовать, а «код» -- можно.

Ответить
0

DTD уже, наверное, лет 30?)

Ответить
0

Под ваше определение подходит и эта статья. И мой комментарий тогда код.

Ответить
0

Уж лучше так, чем на пустом месте снобски повыёбываться.

Ответить
0

Ну это да, это да, каюсь.

Ответить
0

Павел, не будь тряпкой, не поддавайся давлению непрофессионалов. Тут фактическая ошибка. Боги они, геймеры или обезьяны, это не мешало сделать более подходящее "файлы игры".
Разница между кодом и конфигом как между законом о прожиточном миниуме и данными росстата. Врать с помощью второго гораздо проще.

Ответить
1

Для начала, я бы порекомендовал "профессионалам" узнать значение выражения "фактическая ошибка", а после этого составить претензию нормально.

Ответить
–1

Почитай на досуге, что такое предметно-ориентированные языки программирования.

Ответить
1

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

Ответить
0

HTML-код не так коробит?

Ответить
3

HTML-разметка :)

Ответить
16

ИРЛ люди тоже слишком религиозны из-за опечатки в генетическом коде.

Ответить
0

опечатка все-таки скорее в культурном коде.

Ответить
3

Или в конфиге?

Ответить
8

Но Ганди с ядерными боеголовками навсегда в наших сердцах)

И что-то вспомнился старый анегдот на английском:
A new monk arrives at the monastery. He is assigned to help the other monks in copying the old texts by hand. He notices, however, that they are copying copies, and not the original books.
So, the new monk goes to the head monk to ask him about this. He points out that if there was an error in the first copy, that error would be continued in all of the other copies. The head monk says, "We have been copying from the copies for centuries, but you make a good point, my son."
So, he goes down into the cellar with one of the copies to check it against the original. Hours later, nobody has seen him. So, new monk goes downstairs to look for him and finaly saw a old one beating head against the wall. "Celebrate not celibate", he repeated.

Ответить
5

Тут должна быть шутка о программистах на 1С.

Ответить
0

Вместо этого будет шутка про программистов HP

Ответить
5

Правители в Civilization VI оказались слишком религиозными

Статьи по теме:
Разработчики Civilization VI пообещали исправить «сексистское» поведение правителей

Какое интересное совпадение.

Ответить
3

Это было божественное вмешательство. (с)

Ответить
1

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

незначительно влияет

А ребята знают, как держать лицо :D

Ответить
0

Павел выше все правильно писал, непрофессионалы накинулись на него и заставили изменить мнение. Не хорошо, dtf. Скоро будете как феминистки с неграми.

Ответить
0

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

Ответить
0

И какой из аргументов весомее?
"Дядя, ты слишком умный, иди отсюда":
Какой процент игроков кусок ресурсов будет называть xml-разметкой?)

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

Всем наплевать что вы там чем называете, обычные люди называют это просто кодом, обычные люди всю вашу стрепню называют кодом, потому что так проще.

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

Или "держи более общее определение кода вообще"
Код — взаимно однозначное отображение конечного упорядоченного множества символов, принадлежащих некоторому конечному алфавиту, на иное, не обязательно упорядоченное, как правило более обширное множество символов для кодирования передачи, хранения или преобразования информации

которым во-первых прикрыть можно что угодно, хоть язык пришельцев, настолько оно общее, во-вторых речь идет именно об исполняемых файлах программы(игры) https://dic.academic.ru/dic.nsf/ruwiki/944982. А то ведь так можно и кодом игры рекламный слоган назвать - тоже конечный алфавит и тоже является способом кодирования сообщения морзянки и к игре относится
−• −−− •−− −•−− •−−− −−−− •−•• •− −−−• −−− −•− −−− − −− •− •−• •−− • •−•• •−•−•− − • •−−• • •−• −••− •• ••• •−−• ••− •−−• −•−− •−• −•−− −−−− −•− •− −− ••

Ответить
0

xml

во-вторых речь идет именно об исполняемых файлах программы(игры)

Мне кажется, или здесь что-то не так?

Ответить
1

Поклонники Civilization обнаружили в коде игры ошибку

речь идет именно об исполняемых файлах программы(игры)
Она оказалась не столько программной ошибкой, сколько опечаткой. В файле Leaders.xml

Так и я про то же. И Павел про это же говорил.
Ща бы xml-разметку кодом называть

Ответить
0

Мне кажется, вы путаете понятие кода и исходного кода. Профессиональная деформация :)

Ответить
0

Так я ж не зря дал ссылку на словарь с определением "исполняемый код".
Про исходный код вообще речь не ведется.
Вроде не должно быть деформации, я не так часто чего-нибудь собераю и профессия моя немного другая.

Ответить
0

Тогда замените в моём предыдущем сообщении исходный код на исполняемый :D
Нигде ни в заголовке ни в статье исполняемый код не упоминается.

Ответить
3

Слушайте, ну если НЕ уходить в софистику, то когда речь идёт о коде программы или коде игры, все имеют ввиду именно исполняемый код. Заголовок написан не верно. Слово "код" должно было быть заменено на "конфигурационный файл". Вы же сейчас пытаетесь доказать, что "Сократ вполне может считаться безперьей птицей, ведь тоже ходит на двух ногах".

Ответить
0

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

Ответить
0

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

Ответить
0

XML вполне может быть исходным кодом по вашей терминологии.

Ответить
0

Я пока знаю только Паскаль, поэтому вопрос: разве компилятор не должен был начать ругаться, так как переменной «yeild» не существует?

Ответить
1

И что? Это конфиг, компилятор код компилирует. Код смотрит в конфиг, и ищет переменную с правильным названием, программисты не дураки и позаботились о защите - если в конфиге нет значения переменной - присвоить значение по умолчанию. Код сработал правильно, компилятор скомпилировал. А то, что в конфиге лишние переменные - это как-то пофигу. Разве нет?

Ответить
0

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

Ответить
1

Ничего там не зависит. КОМПИЛЯТОР ругаться на XML не будет

Ответить
0

Ну так а я и не писал нигде что конкретно компилятор будет ругаться. А если говорить про проверки, то вполне можно сделать так, чтобы они выполнялись на этапе компиляции/сборки проекта.

Ответить
0

в теории должен, если разработчики его не игнорируют)

Ответить
0

Тут это не переменная, а параметр. Когда происходит обращение к несуществующему параметру - будет ошибка (но ее, скорее всего оборачивают). А вот существование "лишнего" параметра на игру никак влиять не будет.

Ответить
0

А в прошлой части, когда Ганди гасил всех ядерным оружием это что было?)

Ответить
0

Мир во всем мире то он в итоге принес?

Ответить
2

Кстати, да. Когда из-за ядерного заражения началось глобальное потепление, всем стало не до войн, выжить бы! Так что план работает :)

Ответить
0

Если я правильно помню, показатель агрессии у него уменьшался настолько сильно, что случался оверфлоу и агрессия становилась максимальной.

Ответить
0

«отвечающих приоритеты»… 😖 Как же больно читать это.

Ответить
0

Судя по поведению AI в шестой циве вся игра состоит из таких опечаток. "Незначительно" ахахахах

Ответить
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" } } } ]
В Steam появилась функция продажи
подержанных цифровых копий игр
Подписаться на push-уведомления