King's Valley Editor Version 1.01 БК0010 (01)
3
1
+24

Первый в своём роде редактор игры King's Valley, версия игры для БК0010 (01). С помощью данного редакторы Вы сможете отредактировать уже имеющиеся лабиринты или создать свои собственные, а подробная инструкция Вам в этом поможет. Отзывы и предложения приветствуются, проект находится в стадии разработки, все Ваши замечания будут учитываться в будущих версиях редактора.

Ветка форума разработчика редактора

Руководство по использованию King's Valley Editor

Содержание

А готовы ли вы разрушить сказку?
Как это всё работает
Что делает редактор
Об элементах в игре и редакторе
    Общие моменты
    Алмазы
    Кинжалы и кирки
    Двери
    Лестницы
    Столбы
Краткий курс пирамидостроения
 

А готовы ли вы разрушить сказку?

Когда-то афтар играл в DukeNukem 3D, смотрел на далёкие небоскрёбы за пределами уровня, и верил, что туда тоже можно добраться, надо только знать соответствующие коды. А потом афтар узнал, что для Дюка есть редактор. Редактор так и не запустился, зато много было прочитано о том, как редактировать. В итоге, я смотрел на уровни и видел только спрайты и параллелепипеды.

Потом был Unreal Tournament. Космические пейзажи, далёкие галактики. Редактор там посложнее, но результат был аналогичный. Когда человек узнаёт, как это всё устроено, оно теряет часть своей магической привлекательности, а не так уж много вещей в жизни дарят нам ощущение сказки, и с возрастом их становится всё меньше.

Если это вас не смущает, добро пожаловать в наш Редактор!
 

Как это всё работает

Прежде всего скажу, если что-то непонятно или спорно - у нас есть эталон - игра и 15 стандартных пирамид. Ничего другого, к сожалению нет, но, надеюсь, ещё появится. Не зря же вы читаете этот текст.

При просмотре мигающей стрелки, после того, как вы нажали клавишу, игра разворачивает нужную пирамиду в специальный массив в памяти. Сначала заносятся стены, а поверх стен всё остальное. Мумии, вход, выход и сам главный герой на эту карту, однако, не наносятся, а присутствуют там как бы виртуально. Их местоположение записывается в специальные переменные в памяти, и для мумий и героя постоянно меняется.

Начнём со стен. Наверное, вы уже замечали, что некоторые пирамиды чем-то похожи друг на друга. И даже понятно чем - рисунком стен. Раньше я грешил на убогую фантазию дизайнеров лабиринтов - мол, лень было напрягаться, накопировали одно в другое, и все дела. В действительности, всё оказалось несколько сложнее. Наверное, вы замечали, что при переходе с экрана на экран, он перерисовывается половинками. Такую половину экрана далее будем называть сегментом. Так вот, таких сегментов стен в игре всего 14 и все пирамиды строятся из этих 14 стандартных сегментов! В сегментах описываются только стены и больше ничего. Одноэкранная пирамида имеет 2 половинки экрана = 2 сегмента, двухэкранная, соответственно, 4. На самом деле все пирамиды имеют 4 сегмента, просто "лишние" сегменты имеют номер 0. Ноль означает отсутствие сегмента, сегмент №15 в игре не предусмотрен, хотя теоретически мог бы быть.

Таким образом, создание пирамиды начинается с выбора подходящих сегментов стен. Получается, нельзя взять и изменить стены у одной пирамиды, они изменятся в тех пирамидах, куда входят. Поэтому наборы стен надо разрабатывать сразу для всех пирамид. Для особо продвинутых скажу, что поскольку половина экрана пирамиды составляет 16х22 позиции, то один сегмент упаковывается в 22 машинных слова (в слове как раз 16бит), а все 14 сегментов занимают 308 слов.

Да, о пирамидах. Алгоритмом игры их предусмотрено 15, ни больше, ни меньше. После того, как стены отрисованы, на пирамиду накладывается всё остальное. Это остальное хранится в специальном массиве описаний пирамид.

Вот формат описания каждой пирамиды:
1) 1е слово: 4 сегмента пирамиды
2) 2 и 3е слово - координаты входа и выхода. Они могут совпадать, тогда в игре мы видим их как один вход-выход. Во всех 15 пирамидах эти координаты расположены на пустом месте, не на стене, что как бы намекает. В редакторе они обозначаются ключами: вход - красным, выход - зелёным, совмещённый вход-выход синим.
3) 4е слово - количество мумий. Мумий может быть от одной до трёх. (в игре только 3 ячейки памяти для них) Совсем без мумий не получится. Игра вылетит.
Далее идут слова-описания мумий. 4 старших бита цвет (красный, зелёный, синий) и 10 бит — координаты места рождения. Почему так — не знаю. Т.к. 10 бит не покрывают всю пирамиду, в нижних 6 строчках месторождение мумий сделать не удастся. Поэтому редактор не ставит мумии в нижние 6 строчек.
4)Слово = Количество алмазов. Во-первых, в пирамиде должен быть хотя бы один алмаз. Во-вторых, алмаз обладает интересным свойством прорезать стены весьма хитрым образом. Каким — будет сказано ниже.
Далее идут координаты алмазов
5)Слово = Количество кинжалов. Должен быть хотя бы один кинжал. Как вы помните, в самой первой пирамиде кирок нет, а кинжал уже есть. Кинжал прорезает 1 клетку стены, где находится.
Далее идут координаты кинжалов
6)Слово = Количество кирок. Может быть нулевым. Кирка прорезает 1 клетку стены, где находится.
Далее идут координаты кирок
7)Слово = Количество дверей. Может быть нулевым. Дверь растёт от стены до стены. Предполагается, что внизу и вверху есть стены, а посередине пустое пространство. В толще стены программа вам дверь не развернёт.
Далее координаты дверей
8)Слово = Количество лестниц. Лестница должна быть хотя бы одна. Лестницы растут снизу вверх, пока не упрутся в стену. Стену они прорезают, чтобы можно было ходить между этажами. Теоретически, нижняя точка необязательно должна упираться в стену. Поэтому редактор рисует лестницы с нижней точки.
Далее координаты лестниц
9)Слово = Количество вырастающих столбиков. Столбики вырастают через некоторое время после запуска пирамиды. Время это может меняться. Длина столбика всего две клетки. Если кто-то стоит на месте будущего столба, то столб не растёт, пока этот кто-то не уйдёт.
Далее идут координаты столбов.

Суммарная длина описаний всех 15 пирамид составляет 572 слова. Мы вынуждены с этим считаться, потому что если наши описания пирамид превысят эту длину, затрутся другие данные, и игра не будет работать. В редакторе место под описания пирамид составляет 1000 слов, чтобы не мешать полёту творческой мысли. Но на момент экспорта в игру длина должна быть не более 572 слов, иначе ничего не экспортируется.

И, наконец, третий важный массив, который в редактировании участвует косвенно, но знать о нём нужно. Поскольку длина описания каждой пирамиды разная, имеется таблица адресов пирамид из 15 ячеек, каждая из которых ссылается на начало описания соответствующей пирамиды.
 

Что делает редактор

По пункту Import oн считывает из .msf-файла три массива - битовую карту сегментов стен, таблицу описаний пирамид и таблицу адресов пирамид и разворачивает одну из пирамид в байтовую карту для редактирования. (Прям всё как в игре! ;)

Пункт меню Segments показывает сегменты. Для удобства разработки сразу набора сегментов показываются сразу 4 выбранных сегмента, чтобы посмотреть, как они будут сочетаться в пирамиде в разных позициях. Левой кнопкой мыши ставим стены, правой убираем. Можно зажать кнопку мыши и чертить целые линии. На панели инструментов есть 4 выпадающих списка для выбора нужного сегмента и 4 кнопки для быстрой очистки сегмента, номер которого выбран в выпадающем списке справа от кнопки.


Пункт меню Pyramids показывает пирамиды. Стены тут редактировать нельзя. Можно выбирать готовые сегменты на панели инструментов. Как и в Сегментах, правая кнопка мыши стирает с карты выбранный элемент. Самая левая кнопка панели инструментов убирает сразу всё, кроме стен. Выпадающий список рядом с ней выбирает пирамиду. Самая правая кнопка панели инструментов служит для упаковки полученной пирамиды из байтовой карты в таблицу описаний пирамид для последующего экспорта в .msf-файл.


Об экспорте в .msf-файл. Такой файл создаётся эмулятором БК от Калмыкова и представляет собой образ памяти БК с хранящейся в нём игрой King's Valley. Редактор пишет и читает только данные о пирамидах и стенах, соответственно, игра там обнаружится только, если она там была до этого. Т.е. экспорт можно делать только в существующий файл. Хотите запасную копию (это правильная мысль!) — заранее накопируйте нужный .msf нужное число раз. Если у вас даже и получится создать через экспорт новый файл, работать он не будет. Помните, что перед экспортом надо сначала упаковывать пирамиду в массив.

Пункт меню Grid управляет отображением сетки для удобства редактирования.

Пункт меню Options, если будет реализован, позволяет изменить размеры клеток сетки и расстояние между сегментами прямо в программе. Пока что их можно изменить через .ini-файл kve.ini, в котором описаны целых 4 переменных. При запуске редактор читает этот файл, если найдёт, так что можете заменить прописанные в нём значения на удобные вам.
 

Об элементах в игре и редакторе

 

Общие моменты

С координатами «одноклеточных» элементов всё очевидно. Координаты «многоклеточных» элементов (дверей, столбов) задаются верхней точкой, кроме лестниц, которые растут снизу вверх и начальная их точка — нижняя точка. Входы/выходы в редакторе изображаются одноклеточными, хоть и не являются таковыми. Для дверей задаются координаты верхнего левого угла.

 

Алмазы

В игре. Согласно формату описания пирамиды, сначала разворачиваются стены. Первыми после стен разворачиваются алмазы. На этот момент в байтовой карте пирамиды могут быть только стены и другие алмазы. Расположение алмазов друг относительно друга остаётся на совести разработчика. Предполагается, что они расположены на достаточном расстоянии, чтобы один алмаз не стёр другой. Каждый алмаз считает, что вокруг него только стены или пустоты и очищает клетки без проверки их содержимого. 1 ячейка под себя. По 1 ячейке слева, справа и сверху под «сияние». Далее, ячейки 4 и 5 очищаются, если в ячейках 6 и 7 пустота. т. е. выступы толщиной в 1 ячейку пробиваются, а в две нет.


Важно также знать, что ячейки под «сияние» очищаются 1 раз при разворачивании алмаза на карту. После алмазов разворачивается всё остальное, и если оно попадёт в эти ячейки, за «сиянием» их будет не видно, но взять их можно. Также их можно увидеть в момент разворачивания пирамиды на экране, пока герой ещё не вышел и сияние ещё не включилось.

Может ли алмаз висеть в воздухе? Может! Как и всё остальное — кирки, кинжалы, столбы. О лестницах и дверях поговорим ниже. Но смотреться такой парящий алмаз будет странно. Хотя, если весь набор пирамид будет выполнен в таком стиле, то, ИМХО, придраться не к чему.

В редакторе. В редакторе все элементы ставятся и убираются в произвольном порядке. Редактор не позволяет ставить алмазы рядом друг с другом «крестом», т. е. слева, справа, сверху и снизу, иначе один из них обязательно сотрёт другой и ячейка описания пирамиды будет потрачена зря. А возможно, вам ещё придётся замочить 10 мумий, чтобы набрать необходимые очки для выхода (я не проверял). Поэтому, если вы попытаетесь в такое место поставить алмаз, редактор обведёт белыми квадратиками «мешающие» алмазы. Однако, по диагонали алмазы ставить можно. По идее, верхние алмазы при таком раскладе должны быть затёрты нижними. Это зависит от порядка разворачивания и упаковки алмазов. Специально для этой цели редактор пакует алмазы «снизу вверх» — сначала самые нижние потом повыше и так далее. При таком способе нижние алмазы разворачиваются первыми и не затирают верхние. Таким образом можно делать алмазные «диагонали», если хватит памяти ;).


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

Кинжалы и кирки

С кинжалами и кирками всё просто. В стене они прорезают 1 ячейку под себя, на соседние элементы никак не влияют. Кирка — необязательный элемент, кинжал должен быть хотя бы один.
 

Двери


 
В игре. Дверь имеет в ширину 2 клетки, а в высоту растёт вниз до непустой ячейки. Почему именно 2 — не знаю, можно было обойтись и одной. Дверь необязательный элемент, и в пирамиде может отсутствовать. Теоретически, в высоту может быть хоть во весь экран, но работать будет с особенностями. Если дверь выше 3х клеток, то при проходе через её нижнюю часть, поворачиваются только 3 нижних клетки, а при проходе через верхнюю часть поворачивается вся дверь. Если дверь стоит над лестницей, то с лестницы можно проходить сквозь неё вне зависимости «открыта» она или «закрыта».

В редакторе. Дверь имеет ширину 2 клетки и состоит из основных и вспомогательных элементов. Основные элементы идут с левой стороны двери и отличаются тем, что при их разворачивании проверяется, пустая ячейка или нет. Вспомогательный элемент разворачивается вслед за основным, и такая проверка не производится, из-за чего вспомогательный элемент может затирать кирки, кннжалы и алмазы, оказавшиеся на его месте. Таким образом, минимум одна ячейка описания пирамиды будет потрачена зря. Чтобы такого не происходило, редактор проверяет наличие чего-либо на месте правой части двери, и если там что-то есть, кроме стены, он обводит это белым квадратиком, а дверь не ставит. Если же там стена, правая часть двери затирает её. Таким образом, можно правой частью двери срезать стену толщиной в одну клетку и организовать там проход. Это интересная возможность ввиду ограниченного количества сегментов стен.
 

Лестницы


В игре. Лестницы также имеют основные и вспомогательные элементы. Лестница растёт от места установки снизу вверх до первой непустой ячейки, причём пустоту ячейки проверяют основные элементы, а вспомогательные трут всё без разбора. Лестница обязательно заканчивается на чём-то непустом, но нижняя её точка может начинаться прямо в воздухе. Тогда наблюдается интересный эффект. Если герой упадёт на такую лестницу сверху, он может по ней ходить, но как только он спустится, запрыгнуть обратно уже не сможет — будет пролетать мимо. Эту возможность можно использовать для построения односторонних маршрутов. Туда — да, обратно уже нет.

Лестница может прорезать и боковые стены пирамид. Что случится, если герой поднимется по такой лестнице? Это зависит от того, двухэкранная пирамида или нет. Если герой пойдёт в левый край, который прям настоящий край, он упрётся в него и будет там стоять. Если же это будет правый край одноэкранной пирамиды, он провалится в соседний экран, где будут остатки предыдущей двухэкранной пирамиды, и ему будет там грустно и одиноко. Впрочем, если повезёт, он может даже выпрыгнуть обратно. Кстати, эту возможность тоже можно использовать!
А что случится, если поставить лестницу наверх? Герой и мумии смогут ходить по служебной строке и сваливаться оттуда в самых неожиданных местах, иногда с кинжалом, каждый раз с новым. В служебной строке можно подпрыгивать и даже провалиться за левую границу экрана, подобрать там алмаз и не вернуться обратно. Алгоритмом игры такая возможность явно не предусмотрена, поэтому в стандартных пирамидах такие лестницы отсутствуют.

В редакторе. Редактор отслеживает, чтобы ничего, кроме стен, не было на пути вспомогательных элементов. Если там что-то есть, оно обводится белым квадратиком и лестница не рисуется. Чтобы понять, как это важно, предлагаю вам перепаковать 3ю и 4ю стандартные пирамиды. Они уменьшатся на 1 слово каждая. А всё потому, что там есть «лишние» кирки, которые были затёрты лестницами, а мы столько лет об этом и не подозревали ;).

Редактор не блокирует установку лестниц, ведущих наверх. Игра вроде не вылетает, но мы уповаем на сознательность пирамидальных архитекторов. В промышленных пирамидах такого быть не должно! ;)

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

Столбы

В игре. Столб может быть максимум 2 клетки в высоту. Перед тем, как вырасти, он проверяет, не стоит ли на нём кто. Тогда он не растёт. Также он не растёт, если его две ячейки заполнены «стеной». Это означает, что если столб разместить непосредственно над стеной, а не клеткой выше от неё, то столб будет в 1 клетку высотой. На мой взгляд, тема столбов в игре не раскрыта и с ними можно обыграть много интересных возможностей. Например, в игре столбы главным образом мешают куда-то передвигаться, в то время как они также могут и помогать.

В редакторе. Редактор не позволяет ставить столбы в самую нижнюю строчку, потому что они прорастают пол. Это смотрится по-уродски и явно не было предусмотрено алгоритмом игры. Также он не позволяет ставить столбы непосредственно над кирками или чем-то, что столб должен будет заменить, а обводит мешающие элементы белой рамкой. Теоретически, можно сделать, чтобы столб заменял содержимое ячейки. Если игрок не успеет ухватить кирку, кинжал или даже алмаз, они будут поглощены столбом. Но такой подлянки нет ни в одной из 15 пирамид, столб всегда растёт на пустом месте, поэтому было принято решение следовать канонам.
   
 

Краткий курс пирамидостроения


Итак, если до сих пор не всё понятно, не расстраивайтесь. Практика — лучший учитель. Вам нужно запустить игру в эмуляторе Калмыкова, и, когда появится карта пирамид (это где 15 пирамид), сохранить образ памяти в файл .msf (File>Save Memory State). После этого запустить означенный редактор и через пункт Import загрузить пирамиды для редактирования. После редактирования каждой пирамиды, нужно жать кнопку с шестерёнкой (упаковать). Если всё прокатило, и длина массива не больше 572, можно жать Export и выбрать тот же файл, из которого загружали или его копию. После чего снова вернуться к эмулятору Калмыкова, выбрать там File>Load Memory State и в открывшемся меню указать файл, в который был экспорт. Теперь в игре вы должны увидеть свою пирамиду.

В текущей версии, если очистить пирамиду, а потом поменять в ней сегмент, всё восстанавливается, так как пирамида распаковывается заново из массива. Это неудобно, и для ускорения подбора сегментов к пирамиде рекомендуется пользоваться пунктом Сегменты.

17.09.2012  

 

Архив с набором файлов:

Установочный файл:

Исходники:

Лабиринты:

(Автор: Admin) - создано с 1 по 5 уровень

Пак из 15 пирамид, авторское название "Мечта Перфораста" (Автор: Gina)
Файл в формате bin:


Файл в формате msf (дамп памяти):

Рекомендации к дизайну уровней начинающим дизайнерам ;)

1. Не надо стараться запихать в уровень всё и сразу, лучше начать с простого

2. Не надо пытаться делать мегасложные и непроходимые уровни. Это игра, она должна приносить удовольствие.

Обнаруженные глюки:

1. Если чел прыгает и падает на лестницу, он через неё пролетает и падает вниз (хотя, иногда полезно).

2. Если чел держит в руках кирку и стоит тоже на кирке и прорубает одну клетку стены, всё ок, вторая кирка в руках появляется. Если под ним две клетки, то вторая кирка пропадает.

3. Если концы лестниц расположены через клетку друг от друга, у человечка будут проблемы с координацией: возможно, он будет забегать только на одну лестницу.

Новость отредактировал: Admin - 11-10-2021, 19:50
Причина: Добавлены новые лабиринты



html-cсылка на публикацию
BB-cсылка на публикацию
Прямая ссылка на публикацию
Комментариев: 10
  1. Ну чо там, кто-нить пирамиды наваял уже? Делимся, не жадничаем ;)

    А то поиграть охота :)

    1
  2. Попытался собрать пару пирамид, но такой геммор. Собираю первую пирамиду, 2,4 и 7 разваливаются. Короче чтобы собрать одну пирамиду нужно отслеживать все остальные, а это нереал!
    1
  3. Ну так ты не собирай 15, собери сколько сможешь, а в описании напиши, вот, мол, мои 7 пирамид или скоко там :)

     

    З.Ы, Во времена БК 13летние перцы на ассемблере писали игры и лабиринты рисовали. А щас ыыы - пирамиды расползаются, игра не играется и ваще 8-) А вдруг вот завтра придётся болгарскую мебель собирать, что тогда? ;)

     

    1
  4. Maks,
    нет никакого геморроя, выложил свои 5 лабиринтов, кто пройдёт первый? 

    1
  5. Этот форум является отличной ! Мне нравится, что вы делаете, спасибо вам и членам этого форума.
    1
  6. Ну всё, если 10 000 просмотров наберёт, я нажрусь! %))))
    1
  7. Gina,

    До 10000 сталось немного, готовь бутылку wink

    Скоро понадобится твоя помощь, готовлю релиз новой версии редактора 1.02

    1
  8. Файлы похерены. Сыыль ведет на форум, на форуме нет ветки. Выложите файлы напрямую, как во 2 части, пжл!


    Спасибо товарищу Синклеру за наше счастливое детство!
    0
    1. Добавил файлы
      1
      1. Спасибо за добавленные файлы!

        Спасибо товарищу Синклеру за наше счастливое детство!
        0
Гость, оставишь комментарий?
Последние Комментарии
Огромный респектос Админу ! Реально работает физический геймпад и мануалит управление как сам захочешь, эмуль 3000 тащит =) Чуть не забыл, в игре
Вот, держи крякнутую версию кроноса, проверил, работает в эму3000. Скачать
Проверил в новой версии без загрузчика - тоже самое - артефакты. Проверил в новой версии 0010+32к доп ОЗУ - о чудо, игра запустилась и пишет не
Запуск в ему
Эмулятор gid использую практически туже версию 3.13.2310.10556 x64, с запуском проблем нет, вставляю образ в диск А, далее, как на скриншоте выше,
Помощь сайту
Посещения
Cегодня: Thursday، 21 November 2024
Всего IP: 927
Всего посещенных страниц: 1751
Количество IP на сегодня: 388
Количество IP за вчера: 539
Посещения сегодня: 699
Количество просмотров вчера: 1052
Количество гостевых пользователей: 39
Всего онлайн-пользователей: 39