Вебинар: C# разработка и статический анализ: в чем практическая польза? - 18.11
Многие психологи советуют проработать принятие. Например, принятие своих ошибок. Некоторые разработчики игр восприняли это всерьёз и решили: "А почему бы и нет?", — и сделали свои промахи частью геймплея. Попробуем научиться на их опыте!
Чтобы уметь принимать свои ошибки и учиться на них, нужно лишь каждый день принимать народное средство... Шучу. Никакого народного средства и шарлатанства не будет, но будут истории про то, как баги, допущенные разработчиками, потом стали вдохновением для новых фич.
Эти истории будут нежно пересказаны вам автором для поддержания вашего программистского духа. Не зря ведь я в начале сказала про принятие: многим тяжело даётся понять и осознать, что ошибки — это часть любого процесса, а в программировании тем более. Давайте же посмотрим на опыт других.
Пока мы не начали, сделаю оговорочку: к сожалению, в нашей жизни не всегда будут появляться такие прекрасные багофичи, которые мы сможем использовать в свою пользу. Некоторые ошибки — просто ошибки.
Кстати, раз уж речь зашла об играх, предлагаю развлечь себя квизом, созданным по мотивам статей Сергея Кушнеренко. В них Сергей как раз описывал различные интересные баги в коде игр. Попробуйте, сможете ли вы их найти.
После прохождения квиза вы, скорее всего, будете чувствовать себя примерно так:
Однако потом вы ощутите лёгкость и понимание того, что теперь все проблемы и ошибки просто пыль.
Как говорится, счастливых вам программистских игр, и пусть удача всегда будет с вами :)
Источник: CNET
Stardew Valley — медитативный симулятор фермера, где игрок может строить свою ферму, добывать руду и выстраивать отношения с жителями деревеньки Стардью.
Представьте: копаете вы себе грядки, никого не трогаете и вдруг решаете, что пора... найти себе вторую половинку. И вот она, прекрасная Абигейл с синими волосами, кажется очень привлекательной. Вы решаете ей подарить красивый камушек — целый алмаз на секундочку, — а она вам в ответ:
"Привет, ты как понял, что я проголодалась? Это выглядит очень вкусно!"
И стоит жуёт ваш алмаз.
Думаете, это смутило разработчиков? Ни в коем разе! Они не осудили поведение персонажа, выпилив этот глитч из игры, а даже поддержали его. Если вы решитесь на отважный шаг и предложите Абигейл руку и сердце, она с радостью после свадьбы расскажет об этом необычном пристрастии к поеданию разных камушков.
А говорят, что путь к сердцу мужчины лежит через желудок. Не только мужчины, получается :)
Источник: Reddit
Перевод: "Направляешься в шахты? Слушай... если ты найдёшь что-нибудь вкусненькое, не забудь принести мне немножко!"
Теперь нашему герою мотыги и самородка придётся ещё чаще спускаться в подземелья, чтобы избранница (или подруга) была довольна.
Источник: PCGAMER
Dwarf Fortress — симулятор строительства и управления, где вы контролируете поселение гномов и пытаетесь построить подземную крепость.
Дисклеймер! Алкоголь вредит вашему здоровью! Гномы взрослые, поэтому могут пить. Не берите пример с гномов.
Кто же мог подумать, что ошибки могут быть настолько вкусными? Вот вы думали, что невозможно сделать блюдо из крепких напитков? Не тут-то было. В Dwarf Fortress это возможно, и всё благодаря багу. Дело в том, что игроки начали пробовать жарить алкоголь и, удивительно, у них это получилось.
Разработчику настолько понравился этот баг, что он оставил возможность готовки из спиртных напитков, но исправил лишь одно: еда из алкоголя теперь не тает при температуре ниже комнатной.
Теперь у гномов больше возможностей в кулинарии, поздравляем!
Источник: Reddit
Minecraft — игра-песочница, выстроенная из кубов, где игрок может воплощать самые интересные идеи: от обычного выживания до воссоздания культурных достопримечательностей.
В нашей команде многие обожают это кубическое чудо (и я не исключение). Когда я ещё жила в общежитии, то любила поиграть в него, но недолго, ибо резко взрывающийся Крипер или орда зомби, появившихся из ниоткуда, заставляли меня вскрикивать, что не нравилось моим соседям. В общем, моё ментальное здоровье не готово к неожиданным штукам.
Да, я тот человек, который сильно пугался тех самых страшных звуков:
Вот и наш зелёный друг, Крипер, из-за которого я сидела вся в напряжении — это порождение от ошибки разработчика. Он захотел сделать модель свиньи длиннее по горизонтали, но вместо этого сделал это по вертикали, вытянув бедного свинтуса вверх. В итоге разработчику это так понравилось, что он сделал уже всеми известно Крипера частью игрового мира. И причиной многих подорванных... ну вы сами знаете :)
Источник: Reddit
Quake — революционная компьютерная игра в жанре шутера от первого лица, где необходимо уничтожить монстров и найти древние артефакты (а потом веселиться с друзьям в мультиплеере).
Вы думали, ошибки в математических расчётах могут привести только к плохим последствиям, из-за которых необходимо заново всё рассчитывать, переделывать, ломать голову? А вот и нет.
В Quake это сработало совершенно в обратную сторону: ошибки, сделанные разработчиками, создали аж две фичи, которые стали частью не только мира "кваки", но и будущих игровых миров.
Кто-то скажет, что на самом деле эти баги были ещё в Doom, но всё-таки мысль о том, что эти баги можно использовать как фичи, пошла с эпохи Quake.
Ну, например, вы знали, что всеми любимый rocket-jump, который есть в Team Fortress 2 и Overwatch — заслуга немножко ошибившихся разработчиков Quake? Вот теперь вы знаете. Держите гранатомёт и вперёд! Точнее вверх!
Лороведы TF2 резонно заявят, что rocket-jump изобрёл Шекспиракл, чтобы забраться на ступеньки. Спорить с этим не будем. Нет, ну вы видели этого "великого писателя", ну вы видели?
Ещё одна механика стала популярна благодаря багу в движке Quake.
Когда я играла в разные шутеры, то не понимала, в чём прикол того, что игроки распрыгиваются когда бегут. И только потом мне объяснили, что это значительно ускоряло передвижение по карте. Забавно, но это тоже заслуга ошибки разработчиков Quake: небольшая погрешность в математических расчётах привела к тому, что теперь вы можете скользить по площадкам игры как по маслу. Всё происходило после того, как игроки попеременно нажимали на кнопки "влево" и "вправо" с зажатой кнопкой "вперёд", тем самым получая прибавку в скорости в 1,41 раза, и прыгали как бешеные.
Кстати, говоря о "кваке". У нас вышла статья как раз про одно из обновлений Quake: "Ква! Как писали код во времена Quake".
Думаю, эта игра многое дала для развития современных шутеров от первого лица и в целом для разных игр. Возможно, подобные багофичи были и раньше, кто знает. Но именно благодаря популярности Quake появилось столько разных модов и соревнований.
Источник: Steam
Team Fortress Classic — многопользовательский онлайн-шутер, где вам предстоит сражаться за одну из команд: Синюю и Красную, — и победить, используя одного из множества героев.
В продолжение темы подскоков на ракетном выстреле нельзя не вспомнить Team Fortress. Разработчики TF, видимо, тоже взяли пример с разработчиков Quake в плане использования багов: так родился прекрасный персонаж — Шпион. И, кстати, баг опять пришёл из движка Quake, ибо изначально TF был модом на одноименную игру.
Всё произошло из-за того, что игрок команды соперника был окрашен в цвет союзной команды, тем самым делая вид, будто он свой. В результате этот игрок мог спокойно бегать среди врагов и устранять их. Разработчикам так понравился этот баг, что они сделали персонажа с такой механикой. Так появился Шпион.
Источник: Pinterest
Magicka — изометрическая action-адвенчура, где вам предстоит почувствовать на своей мантии какого это — колдовать настоящую магию.
Мы часто ошибаемся. Ну мы же можем хотя бы раз ошибиться, верно? И ошибки в коде можем допустить, так ведь? Все мы люди. И разработчики Magicka на первом патче тоже так подумали, и получилось, что игра вышла не в самом лучшем состоянии: на релизе была куча багов, вылетов, а у некоторых появлялся даже синий экран смерти. Брр, жуть.
Но что сделали разработчики? Они признали эти ошибки и сделали из них прикольную шутку. Это, конечно, не фича, но не упомянуть о таком "принятии" не могу.
Они добавили особое заклинание Crash to Desktop, которое случайным образом нацеливается на всех, у кого меньше 10,000 очков здоровья, и мгновенно устраняет их. Вместе с этим спеллом игроку были доступны новая мантия, которая состояла из лоскутков, как из глитчей и пикселей, отломанный до рукояти меч и посох, вызывающий жучков — багов.
Вот такая вот самоирония. Вот это я понимаю — отношение к своим ошибкам. А ещё посмотрите на то, как выглядит этот спелл:
Круто же вышло? :)
Источник: Nintendo
Известная своими крутыми комбо, огромным количество рангов крутости и пафосом серия игр Devil May Cry получила свой конечный вид со всеми вышеперечисленными механиками не сразу — демонические братья должны благодарить за это баг из другой игры. В предыдущей игре от CAPCOM под названием Onimusha: Warlords из-за бага врагов можно было подкидывать в воздух и жонглировать ими, при это нанося урон.
"А зачем убирать такую прикольную штуку?" — наверное, подумали разработчики CAPCOM и сделали это основой боевой системы уже всем известной серии Devil May Cry.
Представьте боёвку DMC без подкидов в воздух. Тяжело, не так ли? Хотя тяжелее представить Данте без его пафоса и пиццы.
Источник: Nintendo
Civilization — серия стратегических компьютерных игр с пошаговой механикой. Вы управляйте своей цивилизацией на протяжении всего времени: от сотворения мира и до наших дней, — и знакомитесь с величайшими в истории человечества людьми.
Когда я играла в Civilization, то не особо любила вступать в конфронтации с соседними странами. Строить дипломатические пути — да, выращивать рис — да, делать из жителей страны фанатиков — хе-хе, да. Но вот в войнушку играть мне не нравилось. Одного я боялась: а вдруг появится Ганди со своими ядерными пушками и превратит меня в радиоактивный пепел? Боялась, боялась я этого бага, а на самом деле-то... Его и не было!
Вкратце об этом баге, который не баг, но при этом фича.
Как-то давно в Civilization произошёл инцидент с тем, что один из главных правителей-пацифистов в истории человечества — Ганди из Индии — решил, что неплохо будет шмальнуть по игроку ядерной бомбой. Молва про то, что это баг (у Ганди уровень агрессии должен быть 1, то есть он не должен нападать вовсе), распространилась по интернету, запустив мем Nuclear Gandhi (дословно — Ядерный Ганди).
Все начали думать, в чём причина, и вот она: похоже, произошло целочисленное переполнение, точнее его частный случай. Всё объяснялось тем, что, когда игрок менял политический режим на "демократический", это автоматически меняло у всех правителей их агрессивность, делая её меньше на два пункта. А тут, если уж сложными математическими методами посчитать, выходит, что у Ганди агрессия становилась -1.
И тут в игру вступает то самое переполнение, превращая -1 в 255 и делая индийского пацифиста индийским диктатором-садистом.
Спустя много лет разработчик игры Сид Майер сказал, что ничего такого не было, и переполнения тоже не было. А то, что в последующих частях "цивы" игроки видели повышенную любовь Ганди к ядерке и войнам — это всего лишь пасхалка от разработчиков для раздувших прикол игроков.
Вдох-выдох. Сеанс окончен. Принятие проработано, поздравляю! Я надеюсь, что вы подчерпнули для себя что-то новое как в плане фактов о ваших любимых играх, так и в плане ошибок в целом.
*заиграла лирическая музыка, пошёл дождь*
Бывает так, что мы ошибаемся, потом видим эти ошибки и даже расстраиваемся из-за них, проливая горькие слёзы. Но не стоит этого делать. Улыбнитесь, ведь, как можно увидеть из этой заметки, даже ошибки могут стать зачатками чего-то нового и прекрасного. Используйте их, смотрите на них и растите вперёд и только вперёд.
Спасибо вам большое, что прочитали.
Если хотите узнать про ошибки в игропроме, которые действительно не стоило бы оставлять в стороне, приглашаю вас прочитать статьи моих коллег:
Чистого кода вам, здоровья, счастья и любви :)
0