Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #64, МАРТ 2006 г.

комфортное программирование игр

АЛЕКСАНДР ГЛАДЫШ

Спецвыпуск: Хакер, номер #064, стр. 064-036-1


ВЕДУЩИЙ ПРОГРАММИСТ КОМПАНИИ STEP CREATIVE GROUP; WWW.STEPGAMES.RU

СКРИПТОВЫЕ ЯЗЫКИ

ЧТО ХОЧЕТ ОТДЕЛ ГЕЙМДИЗАЙНА ОТ ПРОГРАММИСТА? ОТДЕЛУ НУЖНО, ЧТОБЫ ПРОГРАММИСТ РЕАЛИЗОВАЛ ЛОГИКУ ИГРЫ КАК МОЖНО БЛИЖЕ К ОРИГИНАЛЬНОЙ ИДЕЕ. РАЗРАБОТКА ИГРЫ ВО МНОГОМ ЯВЛЯЕТСЯ ИТЕРАТИВНЫМ ПРОЦЕССОМ — НЕДОЧЕТЫ ОБНАРУЖИВАЮТСЯ НЕИЗБЕЖНО И В ЗАДУМКЕ ГЕЙМДИЗАЙНЕРА, И В ЕЕ РЕАЛИЗАЦИИ ПРОГРАММИСТОМ

Некоторые стадии процесса, такие как балансировка игры, сложно проводить до того, как появится возможность «пощупать» реализацию. Неизбежное следствие — необходимость малоэффективного итеративного взаимодействия: геймдизайнер объясняет программисту, что нужно изменить в игровом процессе, программист меняет, дизайнер обнаруживает, что хотел нечто совершенно другое, и идет объяснять заново. Чтобы повысить эффективность работы, геймдизайнеру нужен инструмент, при помощи которого он самостоятельно сможет влиять на то, что происходит в игровом мире.

какой язык выбрать

Если бы программист сам занимался геймдизайном или геймдизайнер был квалифицированным программистом, проблем бы не было. Казалось бы, самый мощный инструмент для реализации игровой логики — C++. Однако, к сожалению (скорее, к счастью), в современной игровой индустрии существует разделение труда. Следовательно, здесь работают в основном специалисты узкой квалификации. Редко встретишь хорошего геймдизайнера и квалифицированного программиста в одном лице.

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

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

Интерпретируемость языка, при наличии достаточно удобного API к интерпретатору, значительно облегчает его интеграцию в движок и ускоряет разработку, позволяя изменять код, написанный на скрипте, «на лету» без длительной перекомпиляции и, возможно, даже непосредственно во время выполнения программы.

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

Содержание  Вперед на стр. 064-036-2