Izibook.club
Читать онлайн книги!
  • Главная
  • Жанры
  • Авторы
  • ТОП книг
  • ТОП авторов
  • Контакты

Ошибки разработчиков видеоигр. От идеи до провала

Часть 10 из 58 Информация о книге

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

Другой показательный пример можно почерпнуть из заметок разработчиков третьей части «Ведьмака»: при выполнении одного из дополнительных заданий перед Ведьмаком закрываются все двери – по условиям миссии и сценарию ему нельзя заходить в помещения. По мере выполнения задания двери снова открываются. Но вот недочет: открывались вообще все двери в игровом мире, что приводило к немыслимому количеству багов. Состояние дверей учитывалось только в одном модуле, и, судя по всему, при его написании никто и не догадывался, что появятся миссии, где этот модуль не должен будет работать.

Вовлеченность

Как мы видим, подобную ошибку допускают не только новички, но и старожилы игровой индустрии, ибо прибегнуть к модульному стилю разработки может помешать еще одно когнитивное искажение – «наращивание вовлеченности».

Когда Терри Кавано, автор популярной в свое время игры VVVVV, опубликовал ее исходный код, пользователи были поражены количеству case в его работе (рис. 3). Лишних взаимосвязей в игре оказалось настолько много, что даже публикация исходного кода не дала проекту второй жизни в виде появления пользовательских модов и дополнений: разобраться в столь громоздком «макаронном монстре» и что-то туда добавить было не так-то просто.

Понятие case определяет, в каком состоянии находится игра: меню ли перед игроком, игровая сцена или финальные титры. Обычно их группируют вместе, но разработчик VVVVV, очевидно, не догадывался о том, сколько разных событий у него будет в игре, и под каждое состояние создавал свой case. В итоге «кейсов» у него вышло 4099. Тем не менее VVVVV – замечательная игра, заслужившая свой успех, и я ни в коем случае не пытаюсь обесценить талант Терри Кавано и высмеять его решения. Идеального кода не существует, каждый из нас лепит в свои проекты бессмысленный мусор. Я просто призываю к тому, чтобы заранее подумать хотя бы о том, сколько состояний будет у вашей игры, иначе вам придется страдать за свой продукт так же, как страдал Терри: он сам отзывался о своем коде как о держащемся «на слюнях и молитве» и выпившем у него немало крови. Игра работает, а значит, эти ужасные костыли не столь важны для конечного пользователя, но вот эмоциональному состоянию автора точно не позавидуешь.

Ошибки разработчиков видеоигр. От идеи до провала - img_12

Рис. 3. Часть исходного кода к игре VVVVV. Terry Cavanagh, 2010

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

Создание игры Yandere Simulator – симулятора школьницы-убийцы – ведется с 2012 года. Разработчик регулярно добавляет огромное количество абсолютно сумасшедших мелочей. Например, игрок может убить кого-нибудь ножом и тут же прижечь свежую рану жертвы горелкой – таким образом, когда он будет тащить труп по полу, тот не оставит кровавого следа. У каждого школьника есть свое расписание и даже своя обувь, которую он меняет при входе в здание образовательного учреждения.

Вся игра состоит из таких любопытных деталей, но вот уже больше десяти лет она никак не может перерасти в нечто большее. Разработчик-одиночка, стоящий за Yandere Simulator, уже прибегал к помощи издательства, но, когда к нему присоединился сторонний специалист, оказалось, что довести игру до ума почти невозможно: автор абсолютно все события, определяющие поведение сотни школьников в густонаселенном мире Yandere Simulator, выразил через простейшую и грубую связку операторов …if …else. В итоге имплементация каких-то глобальных новых механик оказалась невозможной, а сама игра, демоверсия которой тормозит так, словно запущенный на компьютере двадцатилетней давности Red Dead Redemption 2, всё еще не вышла в свет.

В Reflection of Mine по причине своей некомпетентности я абсолютно сумасшедшим образом реализовал меню паузы: в состоянии паузы скорость движения каждого игрового объекта умножалась на ноль шестьдесят раз в секунду. Объекты останавливались? Да. Но добавление любого движущегося элемента вынуждало меня возвращаться в «кейс» паузы и вписывать туда дополнительные условия. В итоге я подсознательно отговаривал себя от добавления новых подвижных игровых объектов во избежание необходимости тормошить этот собранный из костылей ворох, где малейшая опечатка ломала игру.

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

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

Сокрушительная ошибка, допущенная мной при разработке Catmaze, заключалась в том, что весь текст (а его у меня, к слову, набралось двадцать тысяч строк) я вставлял прямо в код. Когда игру перевели на пять дополнительных языков и прислали мне огромную таблицу с переводом, мне пришлось сто тысяч раз нажать crtl+c и сто тысяч раз нажать ctrl+v. Чудовищная архитектура моего проекта не позволяла мне даже автоматизировать этот процесс, потому что некоторые строки приходилось вставлять «по-особому».

В самом начале этой утомительной работы я догадывался, что потрачу куда меньше времени и сил, если внедрю в игру адекватную диалоговую систему и автоматизирую появление текста на разных языках. Но, во-первых, мой синдром самозванца нашептал мне на ушко, что я не справлюсь с этой работой, ибо я же не программист (и плевать, что ровно месяц назад я сделал хорошую и удобную диалоговую систему для Fearmonium – мне же якобы просто повезло, что она работает, второй раз я такого сделать не смогу), а во-вторых, уровень моей вовлеченности в ужасную архитектуру Catmaze был уже слишком высок: я же уже нажал сорок тысяч раз на ctrl+c и столько же раз на ctrl+v, когда добавлял в игру английский и русский. Я что, зря тогда мучился?

По причине наращивания вовлеченности появление более правильного и изящного решения для интеграции новых языков казалось чем-то, что сводит на нет все мои предыдущие труды. «Если я сейчас исправлю архитектуру, – думал я, – то получается, что я напрасно страдал и работал столько дней!» Можно ли назвать это мышление иррациональным? Конечно, да.

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

Перейти к странице:
Предыдущая страница
Следующая страница
Жанры
  • Военное дело 3
    • Спецслужбы 3
  • Деловая литература 130
    • Банковское дело 2
    • Деловая литература 2
    • Корпоративная культура 7
    • Личные финансы 14
    • Малый бизнес 2
    • Маркетинг, PR, реклама 32
    • О бизнесе популярно 65
    • Управление, подбор персонала 12
    • Экономика 16
  • Детективы и триллеры 2007
    • Боевики 229
    • Дамский детективный роман 13
    • Детективы 424
    • Иронические детективы 125
    • Исторические детективы 343
    • Классические детективы 144
    • Криминальные детективы 127
    • Крутой детектив 91
    • Маньяки 14
    • Медицинский триллер 1
    • Политические детективы 34
    • Полицейские детективы 184
    • Прочие Детективы 626
    • Техно триллер 3
    • Триллеры 865
    • Шпионские детективы 69
  • Детские 308
    • Детская образовательная литература 12
    • Детская проза 115
    • Детские остросюжетные 43
    • Детские приключения 141
    • Детские стихи 6
    • Детский фольклор 1
    • Книга-игра 1
    • Прочая детская литература 58
  • Детские книги 385
    • Детская фантастика 160
    • Детские детективы 3
    • Книги для подростков 23
    • Сказки 150
  • Документальная литература 642
    • Биографии и мемуары 409
    • Военная документалистика 6
    • Искусство и Дизайн 13
    • Критика 7
    • Научпоп 6
    • Прочая документальная литература 60
    • Публицистика 217
  • Дом и Семья 157
    • Домашние животные 13
    • Здоровье и красота 28
    • Кулинария 20
    • Прочее домоводство 8
    • Развлечения 3
    • Сад и Огород 6
    • Сделай сам 1
    • Спорт 5
    • Хобби и ремесла 6
    • Эротика и секс 78
  • Драматургия 80
    • Драма 77
    • Киносценарии 3
    • Мистерия 1
    • Трагедия 1
  • Жанр не определен 7
    • Разное 7
  • Компьютеры и Интернет 13
    • Базы данных 3
    • Интернет 2
    • Программное обеспечение 1
    • Прочая компьютерная литература 9
  • Любовные романы 22797
    • Исторические любовные романы 795
    • Короткие любовные романы 2066
    • Любовно-фантастические романы 9917
    • Остросюжетные любовные романы 654
    • Порно 71
    • Прочие любовные романы 48
    • Слеш 402
    • Современные любовные романы 9369
    • Фемслеш 38
    • Эротика 5289
  • Научно-образовательная 299
    • Альтернативная медицина 5
    • Астрономия и Космос 6
    • Биология 26
    • Биофизика 2
    • Биохимия 1
    • Ботаника 3
    • Военная история 3
    • Геология и география 2
    • Детская психология 10
    • Зоология 2
    • Иностранные языки 2
    • Культурология 35
    • Литературоведение 18
    • Медицина 26
    • Обществознание 6
    • Педагогика 15
    • Политика 20
    • Прочая научная литература 53
    • Психотерапия и консультирование 33
    • Религиоведение 7
    • Секс и семейная психология 20
    • Технические науки 3
    • Физика 8
    • Философия 30
    • Химия 3
    • Экология 3
    • Юриспруденция 5
    • Языкознание 16
  • Образование 475
    • Бизнес 45
    • Биография и мемуары 46
    • Здоровье 10
    • История 269
    • Карьера 4
    • Психология 209
  • Поэзия и драматургия 33
    • Басни 1
    • Драматургия 9
    • Лирика 1
    • Поэзия 24
  • Приключения 620
    • Вестерны 13
    • Исторические приключения 332
    • Морские приключения 62
    • Природа и животные 25
    • Прочие приключения 175
    • Путешествия и география 47
  • Проза 1833
    • Антисоветская литература 5
    • Афоризмы 1
    • Военная проза 87
    • Историческая проза 266
    • Классическая проза 111
    • Контркультура 12
    • Магический реализм 69
    • Новелла 12
    • Повесть 23
    • Проза прочее 17
    • Рассказ 66
    • Роман 98
    • Русская классическая проза 70
    • Семейный роман/Семейная сага 3
    • Сентиментальная проза 10
    • Советская классическая проза 41
    • Современная проза 1411
    • Эпистолярная проза 2
    • Эпопея 2
    • Эссе, очерк, этюд, набросок 2
  • Прочее 1269
    • Газеты и журналы 5
    • Изобразительное искусство, фотография 7
    • Кино 9
    • Музыка 9
    • Подростковая литература 3
    • Театр 4
    • Фанфик 1235
  • Религия и духовность 253
    • Астрология 1
    • Буддизм 4
    • Православие 1
    • Прочая религиозная литература 3
    • Религия 18
    • Самосовершенствование 98
    • Хиромантия 1
    • Эзотерика 144
    • Язычество 1
  • Справочная литература 35
    • Прочая справочная литература 2
    • Путеводители 8
    • Руководства 11
    • Справочники 15
    • Энциклопедии 5
  • Старинная литература 88
    • Античная литература 1
    • Древневосточная литература 5
    • Мифы. Легенды. Эпос 26
    • Прочая старинная литература 57
  • Техника 1
    • Автомобили и ПДД 1
  • Фантастика и фентези 23828
    • Альтернативная история 3377
    • Боевая фантастика 4534
    • Героическая фантастика 1263
    • Городское фэнтези 1632
    • Готический роман 8
    • Детективная фантастика 622
    • Ироническая фантастика 96
    • Ироническое фэнтези 79
    • Историческое фэнтези 400
    • Киберпанк 251
    • Космическая фантастика 1460
    • Космоопера 31
    • ЛитРПГ 1187
    • Любовная фантастика 186
    • Любовное фэнтези 115
    • Мистика 421
    • Научная фантастика 748
    • Попаданцы 7785
    • Постапокалипсис 739
    • Сказочная фантастика 23
    • Социально-философская фантастика 396
    • Стимпанк 120
    • Технофэнтези 84
    • Ужасы 103
    • Ужасы и мистика 640
    • Фантастика 254
    • Фантастика: прочее 203
    • Фэнтези 10559
    • Эпическая фантастика 204
    • Юмористическая фантастика 987
    • Юмористическое фэнтези 1202
  • Фольклор 7
    • Загадки 1
    • Народные сказки 5
    • Фольклор: прочее 2
  • Юмор 157
    • Комедии 1
    • Прочий юмор 57
    • Сатира 3
    • Юмористическая проза 95
    • Юмористические стихи 4
Izibook.club

Бесплатная онлайн библиотека для чтения книг без регистрации с телефона или компьютера. У нас собраны последние новинки, мировые бестселлеры книжного мира.

Контакты
  • pereezdsayta@yandex.ru
Информация
  • Карта сайта
© izibook.club, 2026. | Вход
Этот сайт использует cookie для хранения данных. Продолжая пользоваться сайтом, вы даете свое согласие на работу с этими данными в соответствии с нашей политикой конфиденциальности.
Я согласен