DaggerXL: местность в бета-версии, часть 1
Задачи и решения
Ранее я упоминал систему отрисовки местности и то, как она представлена в текущей версии DaggerXL. В бете на старом оборудовании местность будет отображаться таким же образом, хотя с учетом последних изменений. Как показано в свежем видео, добавлены некоторые новые фичи: улучшенное отображение береговой линии, анимированной воды, правильное использование текстур ландшафтов, и т.д. В этой статье я буду рассказывать об этой системе; дополнительно сошлюсь на своё сообщение о поддерживаемых OpenGL: "Рендер будет позволять отображать пространство, видимое на расстоянии, превышающем 100 км, а сам рендеринг будет осуществляться в высочайшем качестве".
Так что вы, возможно, задаетесь вопросом: зачем увеличивать дистанцию отрисовки на такое расстояние, эмулируя старые игры вроде этой? Чтобы ответить на этот вопрос, нам придется подумать о более современных играх Elder Scrolls - Morrowind, Oblivion, Skyrim. Дальность отрисовки в этих играх не намного больше, чем в текущей версии DaggerXL, в некоторых случаях - даже меньше. Но местность имеет более разнообразные и интересные особенности. Почему так? По-простому говоря, эти игры - как и многие им подобные - это как тематические парки (themeparks): все интересные места плотно растыканы вблизи друг от друга и расположены так, чтобы быть взаимодополняющими. За несколько сотен метров вы можете увидеть весь спектр биомов (прим.ред: биом — совокупность экосистем одной природно-климатической зоны), а трудный подъем до самой высокой горы займёт минуты, а не часы или дни. Это позволяет этим играм ужать много интересного и разнообразного контента на относительно небольших площадях. К сожалению, это также может привести к очевидной нелепости, если дизайнеры не будут осторожны: например, поминутному спотыканию о древние скрытые руины в Oblivion (прим. ред: которые отчетливо видны со стен Имперского города, что "доставляет" еще больше).
В Daggerfall применен реалистичный масштаб местности, что дает игре множество преимуществ - в частности, ощущение мира вокруг себя, огромного и более аутентичного. К сожалению, это получено ценой отсутствия фишки компактного расположения интересных локаций в "тематических парках" - бескрайние равнины Даггерфолла выглядят монотонными и скучными. Одной из причин является то, что интересные места располагаются на гораздо больших расстояниях - и логично сделать так, чтоб реалистичной стала также и зона обзора, что позволит по достоинству оценить бескрайние просторы королевства, сейчас сокрытые в тумане. Понятно, почему это не могло быть сделано, когда Daggerfall выпустили на DOS. Но при современном уровне компьютеров нет причины, которая бы не позволила довести радиус обзора до реалистичных значений.
За пределами карты
Но подождите! Что происходит, когда вы смотрите за пределы карты Daggerfall? С предыдущим DaggerXL видимая дистанция, карта высот и добавление процедурных деталей были достаточно убедительными - что я на самом деле реализовал, см. пост из блога: Местность за Границами Карты (прим.ред.: это сообщение было переведено и размещено на нашем форуме, вот тут). Я рассмотрел другие варианты: к примеру, густой туман по границе карты - такое часто делается для косметического сокрытия ограниченных карт.
(Например, карта Zelda: она не имеет никакого отношения к этому проекту, просто привожу в пример красивую картинку, чтобы проиллюстрировать эту идею - а еще я большой поклонник Zelda.)
Однако это все равно приведет к очень странным визуальным эффектам и создаст впечатление, что область Daggerfall окутана и отрезана от остального Тамриэля - что не было первоначальной целью Bethesda. Поэтому я решил попробовать новый подход, воспользовавшись предложенной помощью.
Тамриэль
Так что выходит за пределы карты Daggerfall? Конечно же, остальной Тамриэль. Так я решил собрать карту высот Тамриэля - в том же масштабе, что и в Daggerfall - и установить её в данных игры. Ниже приведен скриншот этой карты, хотя она еще не завершена.
Фактическая карта высот составляет более 5000 пикселей в ширину, где каждый пиксель имеет такой же размер, как и пиксели в даггерфольской карте высот 1000×500. Daggerfall располагаем в правильном месте, повернутый и отмасштабированный так, чтобы он соответствовал остальному миру. Я считаю данные Daggerfall «верными», поскольку это все, как-никак, делается для DaggerXL, так что в итоге данные Daggerfall я вытащил из игровых файлов и вставил в эту карту, благодаря чему я могу сориентировать ее так, чтобы она совпала с реальными игровыми данными. С этой картой все еще есть некоторые проблемы: я должен исправить береговые линии и район Чернотопья, а также подогнать карту под сетку 500×500 пикселей, чтобы Даггерфолл занимал ровно 2 ячейки сетки. Если вы можете видеть дальше края, к нему будет "приклеена" обратная сторона - то же самое для плавания, полета или плавания за границу Даггерфолла. Таким образом, только 9 клеток высот одновременно должны находиться в памяти для того, чтобы отображать внешний мир. Естественно, на текущий момент локации будут только на территории Даггерфолла. Однако в результате вам, ребята, будет доступен остальной мир Тамриэля, как только инструменты для моддинга появятся в сети. Не нравятся карты высот? Вы можете отредактировать файл и распространять свою версию. Если сообщество обратит внимание на задачу завершения карты высот, и она заработает с существующими данными Daggerfall - то я буду рад заменить эту карту в одном из будущих релизов DaggerXL.
Кода будет готова финальная карта высот, её необходимо будет привести в соответствие сетке. Также есть отдельная карта, не показанная здесь: она содержит данные рельефа и текстур.
В части 2, которая должна выйти на следующей неделе, я покажу систему местности в действии, и мы поговорим о том, как она работает «под капотом».
От редакции: к сожалению, вторая часть публикации не появилась на официальном сайте в обещанные сроки, но Sylvius продолжает следить за новостями о DaggerXL. Как только новая информация появится, мы немедленно сообщим вам об этом.
По материалам XL Engine, 23 Feb
Перевод: Sylvius