fonzeppelin: (Default)
[personal profile] fonzeppelin

Продолжаю коллекцию игродельческих баек, из разных соурсов (и разной степени достоверности, конечно же).


ЛЕБЕДИНОЕ ОРКОЗЕРО










«Орки в игре на самом деле были не совсем орками — они и назывались по-другому, и выглядели иначе — но так как функционально это были обычные орки, то вся команда называла их орками. Для простоты. В общем-то это были довольно-таки простые виртуальные создания, без особых изысков. Например, типичный орк-стражник с арбалетом умел:


* Стоять на посту и бдить в оба в пределах своего сектора обзора, изредка покручиваясь из стороны в сторону;


* Обнаружив в секторе обзора героя — поворачиваться к нему сектором стрельбы (сектор обзора и сектор обстрела были разными параметрами) и стрелять из своего арбалета;


* Если герой пропадал из виду — прятался за что-нибудь, или делался невидимым — то орк-стражник бежал к последней точке, где видел героя, и начинал озираться по сторонам;


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



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


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


Завидев игрока, орк, в полном соответствии со своим алгоритмом поведения, пытался повернуться к игроку сектором обстрела (который сзади). Поворачиваясь задом к игроку, орк, разумеется, терял игрока из своего сектора обзора (который спереди). Немедленно врубался алгоритм «следовать к последней точке, где видел игрока». Орк срывался с места, пробегал несколько шагов, разворачивался... и снова замечал игрока. И снова пытался развернуться к нему приделанным сзади арбалетом.


Исправить ошибку было делом одной минуты, но танцующие орки так понравились разработчикам, что они слёзно умоляли менеджеров разрешить им сделать секретную локацию с театром орочьего балета. К сожалению, времени на это не хватило...»


КАК ОВЦЫ СЪЕЛИ ТАНКИ










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


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


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


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


Тщательное изучение овечки под микроскопом выявило занимательный факт: овечка была сделана на «шасси» легкого танка с нацепленным сверху пушистым спрайтом. Ну в принципе вполне нормально, для экономии времени и ресурсов. Но пушку овечке надо было отключить. А сделать это банально забыли.


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


Но. Когда овечка оказывалась за пределами экрана игрока, анимация (для экономии ресурсов) понятное дело, не запускалась. И отсутствие спрайтов совершенно не мешало овечке стрелять. Чем она и занималась.


Так что пока на овечку смотрел игрок, она мирно жевала травку. А стоило игроку перевести внимание — овечка тихо выдвигала из-под шерстки трёхдюймовую пушку...»


НЕУЛОВИМЫЙ САРАЙ ДЖО










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


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


Во время тестирования, тестеры с радостным изумлением выяснили, что пустой сарай — идеальное защитное сооружение.


Фича заключалась в том, что пустой сарай с точки зрения компьютера становился настоящим «неуловимым Джо»; он был абсолютно никому не нужен. Нападающий, имея совершенно любые другие цели для атаки, попросту игнорировал сарай.


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


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


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


Date: 2025-01-06 06:45 am (UTC)
From: [identity profile] prostak-1982.livejournal.com

"Когда овечка оказывалась за пределами экрана игрока, анимация (для экономии ресурсов) понятное дело, не запускалась. И отсутствие спрайтов совершенно не мешало овечке стрелять. Чем она и занималась.


Так что пока на овечку смотрел игрок, она мирно жевала травку. А стоило игроку перевести внимание — овечка тихо выдвигала из-под шерстки трёхдюймовую пушку..."



Edited Date: 2025-01-06 06:46 am (UTC)

Date: 2025-01-06 07:05 am (UTC)
From: [identity profile] shlemotechestva.livejournal.com
Image

Про овечку прям понравилось

Date: 2025-01-06 07:20 am (UTC)
From: [identity profile] starik-hayam.livejournal.com
Вторая история напомнила древнюю байку про тренажер вертолета для ВВС Австралии.
При сдаче заказчику, когда за штурвал тренажера сел тамошний генерал авиации, одна из виртуальных кенгуру вдруг пальнула по нему "Стингером"
Стали разбираться. Оказалось, что когда решили добавить для красоты кенгуру, не стали заморачиваться, а просто натянули текстуру кенгуру на логику пехотинца. Сделали это перед самой сдачей и не тестировали

Date: 2025-01-06 07:34 am (UTC)
From: [identity profile] fonzeppelin.livejournal.com

Ага, классика)

Date: 2025-01-06 07:47 am (UTC)
From: [identity profile] starik-hayam.livejournal.com
Я бы на их месте не стал бы это фиксить

Date: 2025-01-06 10:26 am (UTC)
From: [identity profile] caith-sith.livejournal.com
Вроде даже военные просили не исправлять — приучало вертолетчиков к осторожности.

Date: 2025-01-06 11:47 am (UTC)
From: [identity profile] morlok-ob.livejournal.com

когда пилоты привыкли использовать противостингерный манёвр "кенгурам" раздали бумеранги...

Date: 2025-01-06 11:14 am (UTC)
From: [identity profile] mad-lawyer.livejournal.com
Ничего удивительного.
В 1932-м австралийская армия вела войну со страусами эму. Фактически, эта операция закончилась поражением людей.
Похоже, что австралийский генеральный штаб готовил новую операцию против местной фауны, и подобные атаки должны были подготовить вертолетчиков к возможному противодействию.

Date: 2025-01-06 09:22 am (UTC)
From: [identity profile] fon-rotbar.livejournal.com

— углы в котором отсчитывались сзади модели


Еще додуматься надо!


А локацию зря не сделали- вышло прикольно.

Edited Date: 2025-01-06 09:23 am (UTC)

Date: 2025-01-06 09:32 am (UTC)
From: [identity profile] fonzeppelin.livejournal.com

Я таки умоляю, условности движков — разговор отдельный)

Date: 2025-01-06 09:27 am (UTC)
From: [identity profile] fon-rotbar.livejournal.com

-Танк в овечьей шкуре. (с)


Есть в этом что-то цитатное...

Date: 2025-01-06 09:35 am (UTC)
From: [identity profile] fonzeppelin.livejournal.com

Классическое:




Date: 2025-01-06 09:32 am (UTC)
From: [identity profile] mithrilian.livejournal.com
В коллекцию. В игре "Проклятые земли" на последних этапах стал уходить придорожный столб-указатель, он же игровое меню. Он просто иногда уходил за пределы экрана. Не игра, а меню, открыть игру, сохранить игру, настройки.

Причина была в том, что его не программировали с нуля, а взяли код какого-то стражника. И толком не модифицировали, а потом забыли.

Date: 2025-01-06 09:33 am (UTC)
From: [identity profile] fonzeppelin.livejournal.com

О, эту знаю, спасибо) Если я правильно помню, там решили сэкономить и основой меню игры сделать меню общения с NPC?

Date: 2025-01-06 02:26 pm (UTC)
From: [identity profile] mithrilian.livejournal.com
Деталей не помню, сейчас поищу источник

Date: 2025-01-06 02:32 pm (UTC)
From: [identity profile] mithrilian.livejournal.com
https://archive.org/stream/Game.EXE_09_2000/Game.EXE_09_2000_djvu.txt
-
"Столб с указателем в
главном меню — это объект, который стоит прямо
внутри сцены. В одной из тестовых версий "слома-
лась" логика, и в баг- листе появилась надпись: "Из-
вините, но мое главное меню ушло гулять по зоне".
На самом деле, этот столб — монстр, просто у него
висит флажок "Ыіе". Интересно, что будет, если
найти и убить главное меню? Наверное, записы-
ваться будет больше нельзя... "

Date: 2025-01-06 02:32 pm (UTC)
From: [identity profile] mithrilian.livejournal.com
Был ещё подробный рассказ, но его не нахожу

Date: 2025-01-06 10:38 am (UTC)
From: [personal profile] alll

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

Edited Date: 2025-01-06 10:41 am (UTC)

Date: 2025-02-05 06:05 pm (UTC)
From: [identity profile] eyeofevil.livejournal.com
Я когда увидел в Скайриме летающих мамонтов, подумал: "хорошо, что они не гадят".

Date: 2025-01-06 12:04 pm (UTC)
From: [identity profile] vedomir-li.livejournal.com
Отличные истории. В идеале еще бы и ссылку на первоисточники, если это из открытого интернета.

Date: 2025-01-06 12:14 pm (UTC)
From: [identity profile] Антон Черниговский (from livejournal.com)

Не помню, рассказывал ли про "гуманный резиновый крейсер" (который, к щщастью, не дошел до прода).
Морской бой, высокодетализированные трёхмерные кораблики в клубах спрайтового дыма лупят друг по другу всем, что есть в погребах. И тут наискосок через всё поле боя, игнорируя и острова, и корабли всех воюющих сторон, большими прыжками (!), взлетая метров на 50 над поверхностью, движется мультяшный кораблик вида "одна коробка на другой коробке и цилиндр в качестве дымовой трубы". Пересекает экран — и скрывается из виду.
Ковырялись долго. Выяснили, что у кораблей есть LODы (level of detail), и низкодетализированный кораблик — это явно "высший" LOD от какого-то "обычного" корабля, который отображается если этот корабль далеко от камеры. Ну и дальнейшее понятно: художники, редактируя "высший" LOD одного из корабликов, по ошибке сдвинули "центр модели" на километр в сторону. Поэтому этот кораблик игнорировал и острова, и всех бойцов: с точки зрения движка, он до этих бойцов и этих островов просто ещё не доехал.
А почему он прыгал? А потому, что кораблики в игре умели раскачиваться на волнах. Относительно точки "центр модели", разумеется. И если сама модель относительно "центра" была сдвинута на километр — то вот раскачка на пару градусов и превращалась в такие прыжки)).

Date: 2025-01-06 06:54 pm (UTC)
From: [identity profile] lx-photos.livejournal.com
Офигенно, спасибо.

Date: 2025-01-06 07:55 pm (UTC)
From: [identity profile] john-jack.livejournal.com
Пустые сараи перекомпенсировали в Факторио. Тамошние набигающие жуки иногда начинают грыть камни и деревья. Как раз потому, что они атакуют любые препятствия, если их слишком далеко обходить. Обычная цель этого дела стены, но если какого жука сильно затоптали в толпе, он начинает расширять и естественные проходы.

Profile

fonzeppelin: (Default)
fonzeppelin

January 2026

S M T W T F S
     12 3
4 56 78910
1112131415 1617
18192021222324
25262728293031

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 19th, 2026 05:15 am
Powered by Dreamwidth Studios