Обзор LEBuild 1.0 Final - Lezing's Ophitial Site

Lezing's Ophitial Site»Проекты»LEBuild»Обзор LEBuild 1.0 Final

Q: BUILD sucks. Is there another editor available?
A: No, not currently. Sorry.
— цитата из какого-то старого FAQ по редактированию уровней

Три с лишним года минуло с момента начала разработки LEBuild — продвинутого редактора карт для Duke Nukem 3D с полноценным GUI. Проект близится к завершению. После выпуска финальной русско-английской версии есть план добавить справку на английском и выпустить версию интернациональную. Текущая версия включает русский и английский языки интерфейса, но справочные материалы имеются только на русском языке. Тем не менее, все запланированные возможности редактора в общем реализованы, основные баги отловлены и конечный продукт не выдаёт серьёзных недочётов, хотя некоторые проблемы мне так и не удалось решить. Надо отметить, что весь LEBuild'овский «контент» делал я — вся графика, шрифты, звуки являются оригинальными, а безоконный интерфейс не интегрирован с операционной системой и также представляет собой тотальный эксклюзив.

Разрабатывая редактор, я не заморачивался над такими вещами, как экономия ОЗУ и защиты «от дурака». Заставить LEBuild дать сбой — проще простого. Дело всё в том, что случайные вылеты при правильном использовании маловероятны, чаще всего это удаётся сделать только специально. Гибкость интерфейса LEBuild невысока — каждый элемент управления жёстко привязан к своему местоположению, горячие клавиши также постоянны, а единственным размером окна является разрешение 800x600 пикселей. Предусмотрена разве что настройка цветового оформления. Впрочем, эта особенность позволила без проблем реализовать систему записи наглядных демонстраций, которая записывает и воспроизводит перемещения мыши и нажатия клавиш.

При использовании базированных на BUILD редакторов карт приходится сталкиваться с рядом неудобств. В первую очередь, это отсутствие внятного редактирования множества объектов сразу; так, выделять спрайты и секторы можно, перемещать и копировать тоже, но не более того — на этом возможности исчерпаны. Такие вещи, как выбор текстур, палитр и затенения, можно делать только в 3D-режиме, что не всегда удобно. Шаг сетки ограничен восемью степенями двойки от 8 до 1024 единиц, что вкупе с невозможностью зума ближе одной единицы на пиксель создаёт сложности при позиционировании спрайтов и вершин на "микроуровне» и в нестандартных условиях. А богатство геометрических форм заканчивается на прямых и дугах, которые зачастую не удаётся точно спозиционировать. Сильно затруднены такие элементарные операции, как удаление отдельных вершин и контуров. Редактирование секторов, перекрывающихся в XY-плоскости также вызывает проблемы. Нет адекватной поддержки многоконтурных секторов с изолированными контурами. Нет и элементарной отмены последнего действия. Список можно продолжать, и я, изготовив в Build и Mapster несколько карт, выпустив три релиза, принял решение заняться созданием собственного аналога, настоящего творческого инструмента, заодно подняв свою квалификацию в области программирования.

LEBuild с самого начала разработки нацеливался на устранение вышеперечисленных недостатков. В нём шесть режимов выделения с полной поддержкой множественного редактирования для каждого рода объекта. Это могут быть спрайты, вершины, стены, секторы, контуры, а также общий режим, сходный с редактором Build, в котором можно выделять и трансформировать спрайты и вершины одновременно. Каждый режим выделения оснащён функциями и инструментами на все случаи жизни. Помимо режимов выделения, присутствует режим фигурного моделирования сектора, позволяющий «слепить» сектор из набора примитивов, применяя булевы логические операции, и режим дополнительных функций, предоставляющий полуавтоматический расчёт освещения. Реализован объектный буфер — теперь спрайты и секторы можно копировать через CTRL+C и CTRL+V, в том числе и в другие карты. Любые спрайты и секторы можно «заморозить», скрыть от функций редактирования, если в этом возникнет необходимость. Есть и автоматическое игнорирование по Z-диапазону, при котором активными становятся лишь входящие в заданный диапазон высот объекты, что полезно при редактировании перекрывающихся помещений. Сетка LEBuild — максимально подстраиваемая под конкретные условия работы: реально не только через меню задать любое целое значение её шага, но и включить пользовательскую аффинную сетку, ячейка которой может иметь форму произвольного параллелограмма и смещаться относительно центра координат. Вид можно приблизить достаточно для того, чтобы с лёгкостью редактировать самые мелкомасштабные детали карты. Имеются и заказные виды — фича, присущая всем высококлассным графическим приложениям. К вашим услугам средства поиска объектов и замены значений, нахождения ошибок в карте, а также многофункциональный поиск текстур. Подробная справка, интегрированная в интерфейс, позволит каждому в кратчайшие сроки освоить методики и приёмы изготовления карт в LEBuild.

Всё, что не реализовано во встроенных LEBuild'овских инструментах, я попытался воплотить в виде скриптов. Моя собственная скриптовая подсистема со встроенной текстовой средой, чем-то похожая на CON-язык скриптов EDuke32, является серьёзным дополнением, позволяющим автоматизировать практически любой процесс редактирования. Можно как воспользоваться уже имеющимися скриптами, так и написать свои собственные. Общий набор улучшений в сравнении с базированными на Build для DOS редакторами таков, что Вы едва ли захотите запускать их для создания своих карт после основательного исследования LEBuild. И хотя последние версии Mapster32 располагают большим количеством полезных функций, все они очень специализированы, и их потенциал не идёт ни в какое сравнение с тем спектром возможностей, который способен предложить пользователю мой проект.

Релиз 1.0.3 включает в себя девятнадцать демонстрационных карт, шестнадцать демо-файлов, 51 скрипт. Ссылка для скачивания находится в подразделе программ.