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
  • Деловая литература 49
    • Деловая литература 1
    • Корпоративная культура 4
    • Личные финансы 7
    • Маркетинг, PR, реклама 9
    • О бизнесе популярно 24
    • Управление, подбор персонала 3
    • Экономика 5
  • Детективы и триллеры 906
    • Боевики 114
    • Дамский детективный роман 11
    • Детективы 414
    • Иронические детективы 80
    • Исторические детективы 178
    • Классические детективы 61
    • Криминальные детективы 65
    • Крутой детектив 42
    • Маньяки 8
    • Политические детективы 23
    • Полицейские детективы 123
    • Прочие Детективы 256
    • Техно триллер 2
    • Триллеры 484
    • Шпионские детективы 31
  • Детские 109
    • Детская образовательная литература 4
    • Детская проза 44
    • Детские остросюжетные 16
    • Детские приключения 49
    • Детские стихи 4
    • Прочая детская литература 14
  • Детские книги 224
    • Детская фантастика 80
    • Детские детективы 3
    • Книги для подростков 23
    • Сказки 61
  • Документальная литература 277
    • Биографии и мемуары 176
    • Военная документалистика 1
    • Искусство и Дизайн 4
    • Критика 3
    • Научпоп 3
    • Прочая документальная литература 25
    • Публицистика 90
  • Дом и Семья 55
    • Домашние животные 5
    • Здоровье и красота 11
    • Кулинария 6
    • Прочее домоводство 1
    • Развлечения 3
    • Сад и Огород 1
    • Спорт 2
    • Хобби и ремесла 3
    • Эротика и секс 27
  • Драматургия 16
    • Драма 15
    • Киносценарии 1
  • Жанр не определен 1
    • Разное 1
  • Компьютеры и Интернет 2
    • Базы данных 1
    • Программное обеспечение 1
  • Любовные романы 11484
    • Исторические любовные романы 361
    • Короткие любовные романы 902
    • Любовно-фантастические романы 5329
    • Остросюжетные любовные романы 193
    • Порно 30
    • Прочие любовные романы 24
    • Слеш 224
    • Современные любовные романы 4857
    • Фемслеш 19
    • Эротика 2346
  • Научно-образовательная 127
    • Альтернативная медицина 1
    • Астрономия и Космос 3
    • Биология 13
    • Биофизика 2
    • Биохимия 1
    • Ботаника 1
    • Военная история 2
    • Геология и география 3
    • Детская психология 2
    • Зоология 1
    • Культурология 15
    • Литературоведение 10
    • Медицина 14
    • Обществознание 3
    • Педагогика 5
    • Политика 13
    • Прочая научная литература 25
    • Психотерапия и консультирование 7
    • Религиоведение 2
    • Секс и семейная психология 5
    • Технические науки 1
    • Физика 5
    • Философия 10
    • Химия 1
    • Юриспруденция 3
    • Языкознание 6
  • Образование 265
    • Бизнес 45
    • Биография и мемуары 46
    • Здоровье 10
    • История 132
    • Карьера 4
    • Психология 135
  • Поэзия и драматургия 12
    • Драматургия 5
    • Поэзия 7
  • Приключения 241
    • Вестерны 2
    • Исторические приключения 137
    • Морские приключения 31
    • Природа и животные 15
    • Прочие приключения 52
    • Путешествия и география 17
  • Проза 750
    • Антисоветская литература 2
    • Военная проза 35
    • Историческая проза 120
    • Классическая проза 61
    • Контркультура 6
    • Магический реализм 31
    • Новелла 4
    • Повесть 13
    • Проза прочее 7
    • Рассказ 37
    • Роман 50
    • Русская классическая проза 23
    • Семейный роман/Семейная сага 1
    • Сентиментальная проза 3
    • Советская классическая проза 26
    • Современная проза 740
    • Эссе, очерк, этюд, набросок 1
  • Прочее 457
    • Газеты и журналы 1
    • Изобразительное искусство, фотография 6
    • Кино 2
    • Музыка 1
    • Театр 1
    • Фанфик 447
  • Религия и духовность 72
    • Буддизм 1
    • Православие 1
    • Религия 8
    • Самосовершенствование 19
    • Эзотерика 45
  • Справочная литература 21
    • Прочая справочная литература 2
    • Путеводители 5
    • Руководства 6
    • Справочники 8
    • Энциклопедии 3
  • Старинная литература 38
    • Античная литература 1
    • Древневосточная литература 4
    • Мифы. Легенды. Эпос 12
    • Прочая старинная литература 22
  • Техника 2
    • Автомобили и ПДД 1
    • Архитектура 1
  • Фантастика и фентези 10809
    • Альтернативная история 1512
    • Боевая фантастика 2369
    • Героическая фантастика 580
    • Городское фэнтези 632
    • Готический роман 2
    • Детективная фантастика 266
    • Ироническая фантастика 70
    • Ироническое фэнтези 57
    • Историческое фэнтези 162
    • Киберпанк 103
    • Космическая фантастика 668
    • Космоопера 12
    • ЛитРПГ 612
    • Любовная фантастика 183
    • Любовное фэнтези 113
    • Мистика 182
    • Научная фантастика 413
    • Попаданцы 3207
    • Постапокалипсис 346
    • Сказочная фантастика 3
    • Социально-философская фантастика 184
    • Стимпанк 53
    • Технофэнтези 19
    • Ужасы 103
    • Ужасы и мистика 287
    • Фантастика 250
    • Фантастика: прочее 98
    • Фэнтези 5560
    • Эпическая фантастика 122
    • Юмористическая фантастика 559
    • Юмористическое фэнтези 370
  • Фольклор 2
    • Народные сказки 2
  • Юмор 71
    • Анекдоты 1
    • Комедии 1
    • Прочий юмор 28
    • Сатира 1
    • Юмористическая проза 37
    • Юмористические стихи 3
CHITAT-KNIGI.COM

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

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