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
  • Деловая литература 79
    • Деловая литература 1
    • Корпоративная культура 4
    • Личные финансы 9
    • Малый бизнес 1
    • Маркетинг, PR, реклама 14
    • О бизнесе популярно 45
    • Управление, подбор персонала 6
    • Экономика 8
  • Детективы и триллеры 1299
    • Боевики 158
    • Дамский детективный роман 12
    • Детективы 414
    • Иронические детективы 98
    • Исторические детективы 233
    • Классические детективы 95
    • Криминальные детективы 90
    • Крутой детектив 62
    • Маньяки 9
    • Политические детективы 28
    • Полицейские детективы 146
    • Прочие Детективы 374
    • Техно триллер 2
    • Триллеры 618
    • Шпионские детективы 45
  • Детские 187
    • Детская образовательная литература 5
    • Детская проза 69
    • Детские остросюжетные 27
    • Детские приключения 92
    • Детские стихи 4
    • Прочая детская литература 33
  • Детские книги 291
    • Детская фантастика 110
    • Детские детективы 3
    • Книги для подростков 23
    • Сказки 101
  • Документальная литература 386
    • Биографии и мемуары 241
    • Военная документалистика 2
    • Искусство и Дизайн 7
    • Критика 5
    • Научпоп 6
    • Прочая документальная литература 30
    • Публицистика 132
  • Дом и Семья 95
    • Домашние животные 5
    • Здоровье и красота 18
    • Кулинария 14
    • Прочее домоводство 3
    • Развлечения 3
    • Сад и Огород 3
    • Спорт 3
    • Хобби и ремесла 3
    • Эротика и секс 49
  • Драматургия 36
    • Драма 35
    • Киносценарии 1
  • Жанр не определен 1
    • Разное 1
  • Компьютеры и Интернет 3
    • Базы данных 1
    • Программное обеспечение 1
    • Прочая компьютерная литература 1
  • Любовные романы 14681
    • Исторические любовные романы 480
    • Короткие любовные романы 1248
    • Любовно-фантастические романы 6557
    • Остросюжетные любовные романы 360
    • Порно 44
    • Прочие любовные романы 32
    • Слеш 267
    • Современные любовные романы 6147
    • Фемслеш 27
    • Эротика 3228
  • Научно-образовательная 181
    • Альтернативная медицина 1
    • Астрономия и Космос 3
    • Биология 15
    • Биофизика 2
    • Биохимия 2
    • Ботаника 2
    • Военная история 2
    • Геология и география 3
    • Государство и право 1
    • Детская психология 4
    • Зоология 2
    • Культурология 27
    • Литературоведение 13
    • Медицина 23
    • Обществознание 4
    • Педагогика 7
    • Политика 14
    • Прочая научная литература 33
    • Психотерапия и консультирование 18
    • Религиоведение 5
    • Секс и семейная психология 7
    • Технические науки 1
    • Физика 5
    • Философия 13
    • Химия 2
    • Юриспруденция 5
    • Языкознание 6
  • Образование 321
    • Бизнес 45
    • Биография и мемуары 46
    • Здоровье 10
    • История 166
    • Карьера 4
    • Психология 158
  • Поэзия и драматургия 19
    • Басни 1
    • Драматургия 5
    • Лирика 1
    • Поэзия 13
  • Приключения 342
    • Вестерны 2
    • Исторические приключения 192
    • Морские приключения 38
    • Природа и животные 16
    • Прочие приключения 82
    • Путешествия и география 31
  • Проза 1108
    • Антисоветская литература 3
    • Афоризмы 1
    • Военная проза 52
    • Историческая проза 164
    • Классическая проза 73
    • Контркультура 9
    • Магический реализм 43
    • Новелла 5
    • Повесть 16
    • Проза прочее 11
    • Рассказ 44
    • Роман 64
    • Русская классическая проза 33
    • Семейный роман/Семейная сага 1
    • Сентиментальная проза 4
    • Советская классическая проза 36
    • Современная проза 971
    • Эпопея 1
    • Эссе, очерк, этюд, набросок 2
  • Прочее 687
    • Газеты и журналы 3
    • Изобразительное искусство, фотография 6
    • Кино 3
    • Музыка 2
    • Театр 1
    • Фанфик 673
  • Религия и духовность 126
    • Буддизм 1
    • Православие 1
    • Прочая религиозная литература 1
    • Религия 10
    • Самосовершенствование 38
    • Эзотерика 79
  • Справочная литература 27
    • Прочая справочная литература 2
    • Путеводители 8
    • Руководства 6
    • Справочники 8
    • Энциклопедии 6
  • Старинная литература 63
    • Античная литература 1
    • Древневосточная литература 4
    • Мифы. Легенды. Эпос 19
    • Прочая старинная литература 40
  • Техника 2
    • Автомобили и ПДД 1
    • Архитектура 1
  • Фантастика и фентези 14518
    • Альтернативная история 2051
    • Боевая фантастика 2970
    • Героическая фантастика 777
    • Городское фэнтези 975
    • Готический роман 3
    • Детективная фантастика 362
    • Ироническая фантастика 77
    • Ироническое фэнтези 61
    • Историческое фэнтези 241
    • Киберпанк 134
    • Космическая фантастика 886
    • Космоопера 18
    • ЛитРПГ 763
    • Любовная фантастика 183
    • Любовное фэнтези 113
    • Мистика 253
    • Научная фантастика 521
    • Попаданцы 4497
    • Постапокалипсис 466
    • Сказочная фантастика 11
    • Социально-философская фантастика 255
    • Стимпанк 71
    • Технофэнтези 40
    • Ужасы 103
    • Ужасы и мистика 391
    • Фантастика 250
    • Фантастика: прочее 135
    • Фэнтези 6868
    • Эпическая фантастика 153
    • Юмористическая фантастика 672
    • Юмористическое фэнтези 612
  • Фольклор 3
    • Народные сказки 3
  • Юмор 93
    • Анекдоты 1
    • Комедии 1
    • Прочий юмор 36
    • Сатира 1
    • Юмористическая проза 51
    • Юмористические стихи 3
CHITAT-KNIGI.COM

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

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