CHITAT-KNIGI.COM
Читать бесплатно хорошую книгу!
  • Главная
  • Жанры
  • Авторы
  • ТОП книг
  • ТОП авторов
  • Контакты

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

Часть 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, когда добавлял в игру английский и русский. Я что, зря тогда мучился?

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

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

Перейти к странице:
Предыдущая страница
Следующая страница
Жанры
  • Военное дело 2
    • Спецслужбы 2
  • Деловая литература 38
    • Корпоративная культура 4
    • Личные финансы 5
    • Маркетинг, PR, реклама 8
    • О бизнесе популярно 19
    • Управление, подбор персонала 2
    • Экономика 3
  • Детективы и триллеры 741
    • Боевики 105
    • Дамский детективный роман 9
    • Детективы 414
    • Иронические детективы 71
    • Исторические детективы 147
    • Классические детективы 48
    • Криминальные детективы 58
    • Крутой детектив 37
    • Маньяки 8
    • Политические детективы 20
    • Полицейские детективы 115
    • Прочие Детективы 202
    • Техно триллер 2
    • Триллеры 426
    • Шпионские детективы 28
  • Детские 93
    • Детская образовательная литература 3
    • Детская проза 38
    • Детские остросюжетные 14
    • Детские приключения 42
    • Детские стихи 3
    • Прочая детская литература 11
  • Детские книги 209
    • Детская фантастика 72
    • Детские детективы 3
    • Книги для подростков 23
    • Сказки 54
  • Документальная литература 223
    • Биографии и мемуары 146
    • Военная документалистика 1
    • Искусство и Дизайн 3
    • Критика 2
    • Научпоп 2
    • Прочая документальная литература 21
    • Публицистика 67
  • Дом и Семья 43
    • Домашние животные 3
    • Здоровье и красота 9
    • Кулинария 5
    • Развлечения 3
    • Сад и Огород 1
    • Спорт 2
    • Хобби и ремесла 2
    • Эротика и секс 21
  • Драматургия 9
    • Драма 9
  • Жанр не определен 1
    • Разное 1
  • Компьютеры и Интернет 1
    • Базы данных 1
  • Любовные романы 10107
    • Исторические любовные романы 306
    • Короткие любовные романы 792
    • Любовно-фантастические романы 4728
    • Остросюжетные любовные романы 144
    • Порно 26
    • Прочие любовные романы 20
    • Слеш 197
    • Современные любовные романы 4320
    • Фемслеш 15
    • Эротика 1987
  • Научно-образовательная 107
    • Альтернативная медицина 1
    • Астрономия и Космос 2
    • Биология 12
    • Биофизика 1
    • Ботаника 1
    • Военная история 2
    • Геология и география 3
    • Детская психология 2
    • Зоология 1
    • Культурология 13
    • Литературоведение 9
    • Медицина 13
    • Обществознание 2
    • Педагогика 2
    • Политика 12
    • Прочая научная литература 20
    • Психотерапия и консультирование 3
    • Религиоведение 2
    • Секс и семейная психология 4
    • Технические науки 1
    • Физика 5
    • Философия 8
    • Химия 1
    • Юриспруденция 3
    • Языкознание 6
  • Образование 236
    • Бизнес 45
    • Биография и мемуары 46
    • Здоровье 10
    • История 110
    • Карьера 4
    • Психология 128
  • Поэзия и драматургия 11
    • Драматургия 5
    • Поэзия 6
  • Приключения 201
    • Вестерны 2
    • Исторические приключения 112
    • Морские приключения 29
    • Природа и животные 13
    • Прочие приключения 43
    • Путешествия и география 11
  • Проза 627
    • Антисоветская литература 1
    • Военная проза 29
    • Историческая проза 101
    • Классическая проза 56
    • Контркультура 4
    • Магический реализм 24
    • Новелла 4
    • Повесть 10
    • Проза прочее 6
    • Рассказ 34
    • Роман 44
    • Русская классическая проза 21
    • Семейный роман/Семейная сага 1
    • Сентиментальная проза 2
    • Советская классическая проза 24
    • Современная проза 671
    • Эссе, очерк, этюд, набросок 1
  • Прочее 344
    • Газеты и журналы 1
    • Изобразительное искусство, фотография 5
    • Кино 1
    • Музыка 1
    • Фанфик 336
  • Религия и духовность 58
    • Буддизм 1
    • Религия 7
    • Самосовершенствование 14
    • Эзотерика 38
  • Справочная литература 15
    • Прочая справочная литература 2
    • Путеводители 4
    • Руководства 4
    • Справочники 6
    • Энциклопедии 2
  • Старинная литература 31
    • Античная литература 1
    • Древневосточная литература 4
    • Мифы. Легенды. Эпос 10
    • Прочая старинная литература 17
  • Техника 1
    • Автомобили и ПДД 1
  • Фантастика и фентези 9216
    • Альтернативная история 1260
    • Боевая фантастика 2105
    • Героическая фантастика 497
    • Городское фэнтези 514
    • Готический роман 1
    • Детективная фантастика 227
    • Ироническая фантастика 62
    • Ироническое фэнтези 50
    • Историческое фэнтези 140
    • Киберпанк 80
    • Космическая фантастика 554
    • Космоопера 10
    • ЛитРПГ 537
    • Любовная фантастика 183
    • Любовное фэнтези 113
    • Мистика 147
    • Научная фантастика 370
    • Попаданцы 2631
    • Постапокалипсис 295
    • Сказочная фантастика 2
    • Социально-философская фантастика 152
    • Стимпанк 43
    • Технофэнтези 13
    • Ужасы 103
    • Ужасы и мистика 250
    • Фантастика 250
    • Фантастика: прочее 84
    • Фэнтези 4946
    • Эпическая фантастика 104
    • Юмористическая фантастика 487
    • Юмористическое фэнтези 291
  • Фольклор 1
    • Народные сказки 1
  • Юмор 62
    • Анекдоты 1
    • Комедии 1
    • Прочий юмор 24
    • Сатира 1
    • Юмористическая проза 31
    • Юмористические стихи 3
CHITAT-KNIGI.COM

Читать онлайн бесплатно книги полностью без регистрации

Контакты
  • [email protected]
Информация:
  • Карта сайта
  • Слушать Аудиокниги
  • Руководства по ремонту автомобилей
© chitat-knigi.com, 2025. | Вход
Этот сайт использует cookie для хранения данных. Продолжая пользоваться сайтом, вы даете свое согласие на работу с этими данными в соответствии с нашей политикой конфиденциальности.
Я согласен