Игры — это просто. Обзор Dark Basic Pro
Кто в нашей стране не слышал иностранного слова BASIC? Наверное, слышали все, поскольку школьная программа “всероссийской компьютерной грамотности” настаивает на изучении основ программирования на примере этого языка…
Труд учителей информатики, особенно при отсутствии в школах компьютеров, благодарным не назовешь. Если в промежутках между уроками макраме, изготовлением табуреток и прыжками через “коня” ученики помнят из курса хотя бы название изучаемого предмета — три балла на экзамене уже, считай, честно заработано. А вот про “темного однофамильца” — Dark Basic — знают далеко не все. Хотя предназначен он для широкого круга любителей, поскольку позволяет… делать компьютерные игры.
Возможности весьма широки: поддержка DirectX , широкий набор различных типов данных и многое другое. Учитывая, что лицензионный пакет стоит недорого, это настоящая находка для всерьез увлекающихся созданием 3D-игр. Недавно вышла новая версия Dark Basic Pro (далее DB Pro), которую у нас распространяет компания “ МедиаХауз ”. Тактико-технические данные у нового продукта очень заманчивые.
Мы попросили поделиться впечатлениями двух программистов, Дмитрия Корабельникова Владислава Яременко , знакомых с “темным” предметом нашего разговора очень давно.
Классик или Профессионал?
“Игромания” [И]: Многие уверены, что компьютерные игры делают только на С++ или Delphi. С Dark Basic знакомы далеко не все, поэтому первый вопрос — что это такое?
Владислав Яременко [ВЯ]: Dark Basic — это язык высокого уровня. Он максимально понятен программисту. Поэтому программировать в этой среде разработки очень легко. Главной задачей, для которой создавался этот язык, были компьютерные игры. Причем разного направления и реализации — хоть в 2D, хоть в 3D.
Жанр не имеет никакого значения. Язык чрезвычайно прост в освоении, что обеспечивает его устойчивую популярность у начинающих программистов. Известно, что для разработки игры на “Си” или Delphi нужно знать множество вещей: это и DirectX последней версии, и ядро операционной системы, и много чего еще.
Кроме того, нельзя забывать про высокую стоимость этих пакетов разработки и лицензионных отчислениях, если вы надумаете игру продавать. С Dark Basic (далее DB) все гораздо проще.
Дмитрий Корабельников [ДК]: Вообще, есть Dark Basic Classic (далее DB Classic) — очень оригинальный, но, к сожалению, не доведенный до ума язык программирования. С этим инструментом реально можно писать небольшие 3D-игры и музыкальные demo.
А есть DB Pro, который предназначен для более серьезных проектов. Однако он находится в стадии непрерывной доработки. Постоянно выпускаются пакеты обновлений, в которых убита очередная порция багов. Рекомендовать его “людям без интернета” по меньшей мере рискованно.
Тем не менее перспективы у DB Pro очень хорошие. Сам проект интересен попыткой авторов создать сообщество творческих людей, которых не устраивает потребительское отношение к компьютерам. Освоение DB в значительной мере осложняется как незавершенностью (пресловутыми “особенностями”) самого языка, так и отсутствием нормальных учебников.
Но в целом это прорыв и пример того, как всего несколько человек из TGC противопоставили себя (или, по крайней мере, попытались) Microsoft с ее MS Visual Basic…
[И]: Нельзя сказать, что продукты DB совсем бесплатны, но $25 за Classic и $50 (у нас, в России) за Pro — это, конечно, не цена за лицензионный инструмент для разработки компьютерных игр. На чем же остановить свой выбор начинающему программисту для создания собственной игры?
[ДК]: Те, кто выбирает Delphi, Visual Basic и другие визуальные среды в погоне за “удобствами”, идут по ложному пути. Эти среды разрабатывались программистами с помощью обычных консольных компиляторов как раз для облегчения работы. Однако дружественность и легкость программирования, которых ждали от визуальных сред, так и не были достигнуты. Скорее наоборот.
В то же время существует достаточно простой Dark Basic, на котором тоже можно делать игры. Язык здесь стандартный — Basic, хотя и несколько глючный. Разобраться будет несложно, ведь Quick Basic даже в школах преподают.
[И]: Раз Dark Basic существует в двух ипостасях, хотелось бы разобраться, что лучше?
[ДК]: Звук — одна из самых сильных сторон DB Classic. Система воспроизводит не только файлы WAV, MIDI, но и MP3. Конечно, Classic не может порадовать таким обилием полигонов при порядочном быстродействии, как это делает Pro. Чтобы получить 50 FPS для Classic, в сцене должно быть приблизительно не более 10000—30000 полигонов.
В чем преимущества Pro? Pro дает значительно более высокое быстродействие, чем Classic. Навороты вроде BSP-сцен, как в “настоящих” играх, или шейдинга и зеркальных отражений на блестящих поверхностях поражают… пока все это вдруг внезапно не перестает работать после очередного апдейта. Кроме того, код, который дает компилятор DB Pro, мягко говоря, великоват.
[ВЯ]: В конце 2004 года появилась DB SDK для С++, которая полностью копирует команды и функции DB Pro. Если кто не понял, поясню: “Си” ровно в два раза быстрее по сравнению с DB и в 1,3 раза — чем DB Pro. Развитие в нужную сторону налицо.
[И]: Судя по высказываниям специалистов, выбирать нужно исходя из жанра будущей игры. Для шутера лучше выбирать Pro. Он более быстрый. А для пошаговой РПГ — Classic, он более дешевый… При прочих равных условиях.
Эффекты DB Pro
[И]: Что можете сказать о новой версии DB Pro?
[ВЯ]: Важные изменения коснулись интерфейса компилятора: он уже не выглядит игрушечным и не является принудительно полноэкранным. Теперь это нормальная программа, чем-то похожая на MS Visual Basic.
Функции, определенные в программе, хранятся в отдельном файле, как им и положено. Причем доступ к ним ничем не затруднен. Имеется пошаговый запуск кода для поиска ошибок, которые не смог найти компилятор. С недавних пор DB — расширяемый язык (раньше об этом можно было только мечтать). Функции, записанные в dll из специальной папки, можно применять как собственные функции самого языка.
Очень важным и нужным стало введение процедур просчета векторов. Теперь строить пути движения ИИ и направлять объекты будет намного проще. Не обошлось без модных ныне шейдеров, ведь с ними игры смотрятся куда интереснее и красочнее.
[И]: Classic работал под управлением DirectX 7. В описании к новой версии DB Pro тоже указан DirectX 7. Откуда же взяться шейдерам?
[ДК]: DB Classic совершенно точно работает под DirectX 8, а DB Pro — под DirectX 9. DirectX 7 — это были минимальные требования для DB Classic. Просто разработчики делают иногда очень интересные заявления. Сначала говорят, что последняя версия Pro поддерживает ТОЛЬКО самый последний DirectX, потом — о том, что старые библиотеки работать перестали (!!!), и в заключение обещают все исправить через несколько недель.
И такая ситуация продолжается достаточно долго. Так что если у вас есть возможность скачивать из Сети апдейты по 10-15 мегабайт каждые 2-3 недели, добро пожаловать в Pro-клуб. Pro позволяет делать более быстрые программы, использовать в них сложные сцены, но расплачиваться за это приходится тем, что игры идут только под DX 9, и многочисленными “выползающими жуками”.
Общая рекомендация: если вы уже начали делать игру на Pro и добились определенных успехов, не спешите обновлять компилятор.
[И]: Значит, на DB все-таки можно делать игры самого современного уровня?
[ВЯ]: Не буду обнадеживать начинающих программистов, пока что DB Classic и DB Pro не всесильны. Огромные проекты, вроде DOOM 3 и Half-Life 2, с этими инструментами не поднять. Зато для shareware- и freeware-проектов DB подходит идеально.
[ДК]: Да ну их совсем, эти новомодные игры… Идешь, идешь куда-то… То ли дело самому сделать простенькую игрушку, но со своей оригинальной идеей.
[ВЯ]: К тому же DB Classic и DB Pro позволяют вставить в свою игру очень красочные спецэффекты. Например, использовать технику пост-обработки (именно она делает сами по себе неприметные “Принц Персии: Пески времени” и “Схватку с судьбой” такими привлекательными).
Мы в одной стрелялке применили такой эффект, чтобы имитировать помутнение и двоение в глазах. Получилось неплохо. Наша последняя работа — космическая аркада с элементами РПГ. Это shareware-проект, и первые его скрины смотрятся не хуже какого-нибудь дорогого коммерческого продукта, написанного на “Си” или Delphi.
Мегабайты демо-сцен
На Dark Basic можно творить не только игры. Есть такое искусство — создание демо-сцен. Вот сколько, по вашему мнению, положено занимать десятку минут графики и звука? К тому же весьма красивого? Много. А сценеры (люди, которые увлекаются этим искусством) способны упаковать эту красоту в сущие килобайты!
Штука в том, что видеоролики являются программами! И Dark Basic вполне подходит для их написания. Однако поразительно маленькие размеры, по словам Дмитрия Корабельникова, — всего лишь ловкий фокус и обман зрения:
“Вы наверняка видели работы известных сценеров, таких как, например, farbrausch ( http://www.farb-rausch.com/ ). Что можно подумать, глядя на эти работы? — Этого не может быть, такой код не уместится в 64 Kб, никогда!
Эти “64k demo” по большей части содержат только данные, а код, который рисует все это великолепие, где-то хитро запрятан.
А как вы теперь посмотрите на такое утверждение: с помощью Dark Basic можно написать программу строк на 30-50, которая создает симпатичный техно-видео-эффект, играет замечательный техно-трек и при этом занимает… скажем… 30-40 Kб? И это можно сделать всего за 2-3 часа. (Крутые сценеры любят повторять: “А это мы сделали за 2-3 часа”. Надо как-нибудь поглядеть на этот процесс.)
Разгадка трюка — рядом: вот он, DirectX, набор функций объемом во многие мегабайты. Достаточно только научиться вызывать эти функции, запустить язык программирования — и можно соорудить нечто такое, что мир ахнет… При этом программа окажется очень маленькой и будет работать на любом компьютере, на котором установлен DirectX. А у кого он, интересно, не стоит?”
* * *
Конечно, Dark Basic — это не C++. Некоторые задачи ему пока не по плечу. Однако язык развивается, и новая улучшенная версия DB Pro — яркое тому подтверждение. Его простота, а также принудительное вколачивание основ за школьной партой делают его идеальным инструментом для начального постижения премудростей искусства программирования.
К тому же у него много преданных поклонников, которые всегда придут на помощь в случае затруднений, например, на www.darkbasicpro.ru.
Если тема создания игр на DB Pro вам интересна, пишите письма на ящик gamedev@igromania.ru (в теме письма обязательно укажите “Dark Basic”), возможно, мы запустим цикл материалов по написанию игры на DB.