521
правка
Изменения
Перейти к навигации
Перейти к поиску
глава 5 Пишите, помня об отладке.
(Заметка: вы должно быть думаете, что не у каждого есть своя маленькая армия тестеров, выстраивающихся в очередь, чтобы потестить еще не законченную игру, как например у Дэвида Уилда. Без проблем. Найдите трех других людей, которые не Дэвид Уилд, и договоритесь быть тестерами в игровых проектах друг друга.)
== №4 Проводите свои эксперименты сначала на маленьких играх . ==
В ''Blue Lacuna'' не меньше дюжины странных и экспериментальных элементов. Через несколько лет разработки, я решил, что мне нужно знать чужое мнение о них: подсвечиваемых ключевых словах, диалоговой системе, некомпасной навигации. Я решил отправить предварительную версию на Spring Thing 2008 с готовыми основными системами, но лишь с первой половиной сценария. Я надеялся, что участие в конкурсе послужит толчком к публичному обсуждению и отзывам, и так я увижу, что люди думают о моих экспериментах.
Дело в том, что, во-первых, конкурсы IF-сообщества не место для незавершенных работ (не считая IntroComp). Во-вторых, мест для незавершенных работ в IF-сообществе явно не достаточно. Если хотите, можете создать несколько.
== №5 Пишите, помня об отладке. ==
Inform 7 отлично подходит для клепания игр с минимальным знанием о программировании. Но не так хорош в поощрении использования проверенных временем полезных навыков (например, "не использовать глобальные переменные"), что становится все большей проблемой с увеличением проекта. Вдобавок, он скрывает процесс компиляции и выполнения за ширмой дружелюбного интерфейса, и это усложняет понимание причин возникающих проблем.
Так как в I7 отсутствуют функции, присущие универсальным языкам, такие как пошаговое отслеживание или !profiling tools to help optimize for speed!, отладка становится проблематичной. Нет консоли для сообщений об ошибках, и вы не сможете проверить или изменить значения переменных на лету.
И при этом, вдвойне важно задумываться о предстоящей отладке, пока вы создаете дизайн и программируете. Напишите себе побольше вспомогательных глаголов, которые позволят изменять важные игровые переменные, быстро перемещаться во времени и пространстве, начинать и останавливать специальные события, менять внтуреннюю работу NPC. Воспользуйтесь существующими отладочными расширениями, такими как великолепный "Simple Debugger" от Майкла Хилборна, который позволяет вам создавать внутриигровые объекты в качестве !debugging foci!, а потом просто включать и выключать вывод отладочной информации, связанной с этими объектами.
Для Glulx-игр вы можете использовать расширение "Flexible Windows" от Йона Ингольда для создания тестирующих команд, которые открывают окна с беспрерывно выводящейся отладочной информацией. В Blue Lacuna у меня была команда для отслеживания главного NPC, которая открывала пятистрочное окно вверху экрана, показывающие несколько дюжин переменных, связанных с его состоянием, местонахождением, внутренними переменными, с участием в диалогах и со всем остальным, что мне могло понадобиться. Позже я создал "god mode", в котором через внутриигровое меню мог менять большинство из этих переменных.
Наконец, познакомьтесь поближе с уже существующими отладочными элементами. Они не очень хорошо задокументированы: на сайте I7 посмотрите документ "Appendix B", главу "Test Template" для полной информации. Бывают полезными ABSTRACT, ACTIONS, GONEAR, PURLOIN, RANDOM, RELATIONS, RULES и RULES ALL, SCENES, SCOPE, SHOWME и SHOWVERB. Используйте TEST и/или Skein, чтобы быстро проверять работоспособность частей вашей игры.
[[Категория:Статьи]]