Продолжаю коллекцию игродельческих баек, из разных соурсов (и разной степени достоверности, конечно же).
ЛЕБЕДИНОЕ ОРКОЗЕРО

«Орки в игре на самом деле были не совсем орками — они и назывались по-другому, и выглядели иначе — но так как функционально это были обычные орки, то вся команда называла их орками. Для простоты. В общем-то это были довольно-таки простые виртуальные создания, без особых изысков. Например, типичный орк-стражник с арбалетом умел:
* Стоять на посту и бдить в оба в пределах своего сектора обзора, изредка покручиваясь из стороны в сторону;
* Обнаружив в секторе обзора героя — поворачиваться к нему сектором стрельбы (сектор обзора и сектор обстрела были разными параметрами) и стрелять из своего арбалета;
* Если герой пропадал из виду — прятался за что-нибудь, или делался невидимым — то орк-стражник бежал к последней точке, где видел героя, и начинал озираться по сторонам;
В общем-то этим небольшим набором функций смысл существования орка-стражника в игровом мире исчерпывался. И кто бы мог подумать, что такое простое создание вдруг обретет вкус к искусству? В особенности, к балету?...
Выглядело это следующим образом. Когда герой приближался к орку-стражнику, тот неожиданно начинал... кружиться на месте. Совершив примерно пол-оборота, орк срывался с места, пробегал несколько шагов, останавливался лицом к герою, вновь начинал поворачиваться, снова срывался с места — и так до бесконечности. Выглядело все это как некий своеобразный балет. А если этим занимались несколько орков одновременно, то возникало очень устойчивое ощущение некоего танцевального шоу.
Разгадка тайны танцующих орков (звучит как название фэнтезийного детектива) потребовала несколько раз тщательно перекопать код орка-стражника, и в итоге оказалось парадоксально простой. Все дело было в ровно одном неправильно проставленном значении ровно в одной ячейке — которая задавала ширину сектора обстрела орка. В силу некоторых особенностей движка — углы в котором отсчитывались сзади модели — это значение должно было быть отрицательным, чтобы сектор обстрела оказался спереди. А оно оказалось положительным. И в результате верный арбалет с точки зрения игровой логики был приделан орку на пятой точке.
Завидев игрока, орк, в полном соответствии со своим алгоритмом поведения, пытался повернуться к игроку сектором обстрела (который сзади). Поворачиваясь задом к игроку, орк, разумеется, терял игрока из своего сектора обзора (который спереди). Немедленно врубался алгоритм «следовать к последней точке, где видел игрока». Орк срывался с места, пробегал несколько шагов, разворачивался... и снова замечал игрока. И снова пытался развернуться к нему приделанным сзади арбалетом.
Исправить ошибку было делом одной минуты, но танцующие орки так понравились разработчикам, что они слёзно умоляли менеджеров разрешить им сделать секретную локацию с театром орочьего балета. К сожалению, времени на это не хватило...»
КАК ОВЦЫ СЪЕЛИ ТАНКИ

«Игра, о которой идет речь, была очень-очень старенькой стратегией в реальном времени. Стратегией еще спрайтовых времен, чтобы было понятнее. На определенной стадии разработки, в игру решили попробовать добавить нейтральных юнитов: всяких там фермеров, овечек, грузовичков и прочий антураж. Так как алгоритм игры не был нормально рассчитан на работу более чем с двумя фракциями, то нейтральные юниты на самом деле были вражескими. Только другой окраски, безоружными и незаметными для юнитов игрока. Незаметными в том плане, что юниты игрока на нейтралов не реагировали, если игрок сам не приказывал атаковать их.
Такое решение сразу породило массу интересных моментов — например, нейтральных юнитов нельзя было помещать на карты, где миссией игрока было уничтожить всех врагов (нейтралы ведь на самом деле были вражескими юнитами). Чтобы решить эту проблему — а также другие, вроде попытки компьютерного игрока командовать овцами и фермерами — пришлось использовать массу костылей, которые не лучшим образом сказывались на игровом коде, и в конечном итоге стали причиной, по которой нейтралов из него убрали. Но самое веселое было еще впереди...
А «веселое» было то, что юниты игрока временами начинали вдруг страдать и гибнуть безо всякого присутствия рядом неприятеля. Причем происходило это только за пределами экрана игрока. Пока игрок смотрел на участок карты — там ничего странного не происходило. Но стоило ему переместить экран... и по возвращении его ожидали спрайтовые трупы в лужах спрайтовой крови, дымящие танки, пылающие строения и прочие ужасы 16-битного разрешения.
Подозрение, разумеется, сразу же пало на нейтралов. Но им вроде бы стрелять было нечем. Но один из разработчиков заметил, что таинственные нападения из ниоткуда случаются только на картах с нейтралами. И скрупулезно изучая ситуацию, обратил внимание на следующее: каждый раз, когда юниты игрока страдали, рядом крутилась какая-нибудь овечка и только овечка.
Тщательное изучение овечки под микроскопом выявило занимательный факт: овечка была сделана на «шасси» легкого танка с нацепленным сверху пушистым спрайтом. Ну в принципе вполне нормально, для экономии времени и ресурсов. Но пушку овечке надо было отключить. А сделать это банально забыли.
Заметив юнит игрока, овечка — которая была, напомним, вражеским юнитом под управлением компьютера — вполне логично, решала его обстрелять. Запускала алгоритм выстрела, доходила до запуска анимации стрельбы, обнаруживала отсутствие нужного спрайта (никто, разумеется, не делал анимацию стреляющей овечки!) и на этом останавливалась. Внешне ничего не происходило.
Но. Когда овечка оказывалась за пределами экрана игрока, анимация (для экономии ресурсов) понятное дело, не запускалась. И отсутствие спрайтов совершенно не мешало овечке стрелять. Чем она и занималась.
Так что пока на овечку смотрел игрок, она мирно жевала травку. А стоило игроку перевести внимание — овечка тихо выдвигала из-под шерстки трёхдюймовую пушку...»
НЕУЛОВИМЫЙ САРАЙ ДЖО

«...У осаждающих юнитов была четкая приоритизация целей, основанная на их стоимости. В первую очередь, атакующие стремились добраться до самых дорогих целей. А на дешевые переключались потом.
Вышло так, что самым дешевым строением в игре был пустой сарай. И, соответственно, самым не-приоритетным насколько только возможно. Нападающие брались целенаправленно громить пустые сараи только тогда, когда уже абсолютно все остальное в замке игрока было порушено. Разумеется, едва ли какой-то игрок продолжал бы проигрывать до этого момента. Но.
Во время тестирования, тестеры с радостным изумлением выяснили, что пустой сарай — идеальное защитное сооружение.
Фича заключалась в том, что пустой сарай с точки зрения компьютера становился настоящим «неуловимым Джо»; он был абсолютно никому не нужен. Нападающий, имея совершенно любые другие цели для атаки, попросту игнорировал сарай.
И поэтому кольцо из шатких сараев, возведенных вокруг замка игрока, становилось идеальным защитным барьером. Да, любой вражеский солдат мог развалить сарай буквально за пару ударов. Но зачем ему этим заниматься, если есть более привлекательные цели? Никому не нужный сарай ведь всегда можно обойти... пять сараев можно обойти... десять сараев можно обойти... пятьдесят сараев в ряд все-таки можно обойти... даже если за этими сараями стоят оборонительные башни и шмаляют в упор по обходящим... Чувствуете логику?
Единственно, в кольце сараев надо было-таки оставить проход (разумеется, защищенный самыми мощными башнями). Если полностью застроить замок сараями по периметру — не оставив для неприятеля никакой возможности их обойти — то тогда алгоритм поиска пути предписывал юнитам «разрушить ближайшее препятствие», и, как уже говорилось выше, любой юнит мог разнести сарай за пару ударов. Но до тех пор пока в оборонительных сараях существовал хотя бы какой-то проход, юниты с упорством обреченных устремлялись в него, исправно погибая под огнем башен.
Сарайное веселье длилось до тех пор, пока не сделали более совершенный алгоритм пути, имевший оптимизацию маршрута через устранение препятствий, если обход выглядел слишком долгим».
no subject
Date: 2025-01-06 06:45 am (UTC)"Когда овечка оказывалась за пределами экрана игрока, анимация (для экономии ресурсов) понятное дело, не запускалась. И отсутствие спрайтов совершенно не мешало овечке стрелять. Чем она и занималась.
Так что пока на овечку смотрел игрок, она мирно жевала травку. А стоило игроку перевести внимание — овечка тихо выдвигала из-под шерстки трёхдюймовую пушку..."
no subject
Date: 2025-01-06 07:05 am (UTC)Про овечку прям понравилось
no subject
Date: 2025-01-06 07:20 am (UTC)При сдаче заказчику, когда за штурвал тренажера сел тамошний генерал авиации, одна из виртуальных кенгуру вдруг пальнула по нему "Стингером"
Стали разбираться. Оказалось, что когда решили добавить для красоты кенгуру, не стали заморачиваться, а просто натянули текстуру кенгуру на логику пехотинца. Сделали это перед самой сдачей и не тестировали
no subject
Date: 2025-01-06 07:34 am (UTC)Ага, классика)
no subject
Date: 2025-01-06 07:47 am (UTC)no subject
Date: 2025-01-06 09:09 am (UTC)no subject
Date: 2025-01-06 09:15 am (UTC)?
no subject
Date: 2025-01-06 09:22 am (UTC)— углы в котором отсчитывались сзади модели
Еще додуматься надо!
А локацию зря не сделали- вышло прикольно.
no subject
Date: 2025-01-06 09:27 am (UTC)-Танк в овечьей шкуре. (с)
Есть в этом что-то цитатное...
no subject
Date: 2025-01-06 09:32 am (UTC)Причина была в том, что его не программировали с нуля, а взяли код какого-то стражника. И толком не модифицировали, а потом забыли.
no subject
Date: 2025-01-06 09:32 am (UTC)Я таки умоляю, условности движков — разговор отдельный)
no subject
Date: 2025-01-06 09:33 am (UTC)О, эту знаю, спасибо) Если я правильно помню, там решили сэкономить и основой меню игры сделать меню общения с NPC?
no subject
Date: 2025-01-06 09:35 am (UTC)Классическое:
no subject
Date: 2025-01-06 10:26 am (UTC)no subject
Date: 2025-01-06 10:38 am (UTC)В Аллодах Онлайн был одно время забавный баг — нпс в столице Империи отчего-то начинали летать. Низенько-низенько (примерно на высоте своего роста) и в горизонтальном положении — птч они на самом деле плавали, вместо анимации ходьбы включалась анимация плавания. Особенно впечатляли орки-городовые, летавшие стилем "брасс". Не помню, впрочем, дошёл ли этот баг до прода.
no subject
Date: 2025-01-06 11:14 am (UTC)В 1932-м австралийская армия вела войну со страусами эму. Фактически, эта операция закончилась поражением людей.
Похоже, что австралийский генеральный штаб готовил новую операцию против местной фауны, и подобные атаки должны были подготовить вертолетчиков к возможному противодействию.
no subject
Date: 2025-01-06 11:47 am (UTC)когда пилоты привыкли использовать противостингерный манёвр "кенгурам" раздали бумеранги...
no subject
Date: 2025-01-06 12:04 pm (UTC)no subject
Date: 2025-01-06 12:14 pm (UTC)Не помню, рассказывал ли про "гуманный резиновый крейсер" (который, к щщастью, не дошел до прода).
Морской бой, высокодетализированные трёхмерные кораблики в клубах спрайтового дыма лупят друг по другу всем, что есть в погребах. И тут наискосок через всё поле боя, игнорируя и острова, и корабли всех воюющих сторон, большими прыжками (!), взлетая метров на 50 над поверхностью, движется мультяшный кораблик вида "одна коробка на другой коробке и цилиндр в качестве дымовой трубы". Пересекает экран — и скрывается из виду.
Ковырялись долго. Выяснили, что у кораблей есть LODы (level of detail), и низкодетализированный кораблик — это явно "высший" LOD от какого-то "обычного" корабля, который отображается если этот корабль далеко от камеры. Ну и дальнейшее понятно: художники, редактируя "высший" LOD одного из корабликов, по ошибке сдвинули "центр модели" на километр в сторону. Поэтому этот кораблик игнорировал и острова, и всех бойцов: с точки зрения движка, он до этих бойцов и этих островов просто ещё не доехал.
А почему он прыгал? А потому, что кораблики в игре умели раскачиваться на волнах. Относительно точки "центр модели", разумеется. И если сама модель относительно "центра" была сдвинута на километр — то вот раскачка на пару градусов и превращалась в такие прыжки)).
no subject
Date: 2025-01-06 02:26 pm (UTC)no subject
Date: 2025-01-06 02:32 pm (UTC)-
"Столб с указателем в
главном меню — это объект, который стоит прямо
внутри сцены. В одной из тестовых версий "слома-
лась" логика, и в баг- листе появилась надпись: "Из-
вините, но мое главное меню ушло гулять по зоне".
На самом деле, этот столб — монстр, просто у него
висит флажок "Ыіе". Интересно, что будет, если
найти и убить главное меню? Наверное, записы-
ваться будет больше нельзя... "
no subject
Date: 2025-01-06 02:32 pm (UTC)no subject
Date: 2025-01-06 06:54 pm (UTC)no subject
Date: 2025-01-06 07:55 pm (UTC)no subject
Date: 2025-02-05 06:05 pm (UTC)