комфортное программирование игр АЛЕКСАНДР ГЛАДЫШ Спецвыпуск: Хакер, номер #064, стр. 064-036-3 полезные советы Для всех случаев очень важна полноценная валидация скриптового кода и выдача подробных и исчерпывающих сообщений об ошибках. На стадии активной разработки, даже когда от кода требуется игнорирование ошибки и продолжение работы, обычно лучше обеспечивать вывод отладочного сообщения в лог. Не забывай, что геймдизайнеры, пишущие скрипты, обычно не имеют развитых навыков отладки. Если поведение игры просто отличается от того, которое они ожидают, если не выдаются какие-либо предупредительные сообщения (и даже если «виноват» их собственный код), часто геймдизайнеры, не разбираясь, обвиняют программиста: «А ты глючный движок написал» :). Выводы: ? РАЗРАБОТКА ИГРЫ НЕЭФФЕКТИВНА, КОГДА ГЕЙМДИЗАЙНЕРУ НУЖНЫ УСЛУГИ ПРОГРАММИСТА, ЧТОБЫ ВНЕСТИ ИЗМЕНЕНИЯ В ИГРОВОЙ ПРОЦЕСС. ? ГЕЙМДИЗАЙНЕРУ НЕОБХОДИМ ИНСТРУМЕНТАРИЙ ДЛЯ РЕАЛИЗАЦИИ ВЫСОКОУРОВНЕВОЙ ЛОГИКИ ИГРЫ И БАЛАНСИРОВКИ ГЕЙМПЛЕЯ. ? РЕШИТЬ ПРОБЛЕМУ МОЖЕТ НЕСЛОЖНЫЙ СКРИПТОВЫЙ ЯЗЫК, ПОДКЛЮЧЕННЫЙ К ДВИЖКУ ИГРЫ. ? КАК ПРАВИЛО, ВЫГОДНЕЕ ИСПОЛЬЗОВАТЬ ГОТОВЫЙ И ОТЛАЖЕННЫЙ СКРИПТОВЫЙ ЯЗЫК, А НЕ ПИСАТЬ СОБСТВЕННЫЙ С НУЛЯ. ? В НЕКОТОРЫХ СЛУЧАЯХ УДОБНЕЕ ПРОГРАММИРОВАТЬ СПЕЦИФИЧЕСКИЕ ЧАСТИ ИГРОВОЙ ЛОГИКИ В ГРАФИЧЕСКОМ, А НЕ ТЕКСТОВОМ ПРЕДСТАВЛЕНИИ. В ТАКИХ СЛУЧАЯХ МОЖЕТ ПОМОЧЬ ВИЗУАЛЬНЫЙ РЕДАКТОР, РЕАЛИЗОВАННЫЙ КАК ШИРМА ДЛЯ ГЕНЕРАТОРА КОДА НА ВЫБРАННОМ СКРИПТОВОМ ЯЗЫКЕ. популярные открытые скриптовые системы Готовых скриптовых систем множество, но в играх прижились единицы. Причина? В основном из-за специфических требований, предъявляемых играми к скриптам. К примеру, необходимость в высокой производительности интерпретатора. Python (www.python.org) Open Source Автор: Гвидо ван Россум (Guido van Rossum); www.python.org/~guido Год создания: 1990 Текущая версия: 2.4.2, выпущена 28 сентября 2005 г. Достоинства: ? БОГАТЕЙШАЯ ПО ФУНКЦИОНАЛЬНОСТИ БИБЛИОТЕКА; ? БОЛЬШОЙ ОБЪЕМ ДОСТУПНОЙ ДОКУМЕНТАЦИИ И ОБШИРНОЕ КОММЬЮНИТИ; ? ПРОСТОЙ СИНТАКСИС; ? УДОБСТВО ДЛЯ НАПИСАНИЯ МЕЛКИХ УТИЛИТ; ? ПОДДЕРЖКА ЮНИКОДА. Недостатки: ? ДОСТАТОЧНО ТРЕБОВАТЕЛЕН К ОБЪЕМУ ПАМЯТИ. ? ПРОИЗВОДИТЕЛЬНОСТЬ НЕВЫСОКАЯ. ? ОРИЕНТИРОВАН, СКОРЕЕ, НЕ НА РАСШИРЕНИЕ ФУНКЦИОНАЛЬНОСТИ ПРОГРАММ, А НА РАСШИРЕНИЕ СОБСТВЕННОЙ ФУНКЦИОНАЛЬНОСТИ ЗА СЧЕТ ВНЕШНИХ МОДУЛЕЙ. ? ОФИЦИАЛЬНАЯ ИДЕОЛОГИЯ ДИКТУЕТ ЕДИНСТВЕННЫЙ МЕТОД РЕШЕНИЯ КАЖДОЙ ПРОБЛЕМЫ. ? НЕТ ВОЗМОЖНОСТИ ЗАПУСКАТЬ СКРИПТЫ «В ПЕСОЧНИЦЕ», БЕЗ ДОСТУПА К ОПЕРАЦИОННОЙ СИСТЕМЕ. ? ЧУВСТВИТЕЛЕН К КОЛИЧЕСТВУ ПРОБЕЛОВ В НАЧАЛЕ СТРОКИ, КОТОРОЕ ОПРЕДЕЛЯЕТ УРОВЕНЬ ВЛОЖЕННОСТИ КОНСТРУКЦИИ (ВМЕСТО, НАПРИМЕР, ФИГУРНЫХ СКОБОК В C/C++). ВПРОЧЕМ, К ЭТОМУ МОЖНО ПРИВЫКНУТЬ. ? В БУДУЩЕЙ ВЕРСИИ, PYTHON 3000, ПЛАНИРУЕТСЯ СЕРЬЕЗНО НАРУШИТЬ ОБРАТНУЮ СОВМЕСТИМОСТЬ СО СТАРЫМ КОДОМ НА PYTHON 2.X. Ruby (www.ruby-lang.org) Open Source Автор: Юкихиро Мацумото (Yukihiro Matsumoto); en.wikipedia.org/wiki/Yukihiro_Matsumoto |