Автор Тема: [NES] Prince of Persia Level editor  (Прочитано 45094 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ALXR

  • Пользователь
  • Сообщений: 179
    • Просмотр профиля
[NES] Prince of Persia Level editor
« : 10 Июнь 2013, 22:26:54 »
Редактор уровней nesprinced v1.2.0

Позволяет редактировать PoP для NES. Почему-то для DOS и SNES редакторы существуют, а тут прям упущение.

Что позволяет:
- Редактировать комнаты;
- Редактировать расположение комнат уровня;
- Задавать тип уровня (подземелье/дворец);
- Выбирать палитру уровня из заданных в ROM.

Чего, пожалуй, не добавил - это редактирование стартовой комнаты и комнаты набора пароля (впрочем, там редактировать нечего).
Еще оставил на совести разработчиков появление отражения принца (в 4 и 6 уровнях это, судя по всему, хардкод), комнаты через которые он выходит в 6 и 12 уровнях и не разбирался, почему выход открывается после поражения стражника в 13 уровне. Просто лениво искать было. :-)

Ну и небольшая справка по редактору:
- В поле редактирования уровня справка есть;
- Задать связку между решетками и кнопками: ставим курсор на решетку или кнопку (подсветятся зависимые кнопки/решетки), Ctrl+Левая кнопка мыши на кнопке или решетке - задать действие. Зеленая подсветка - решетка откроется от нажатия на кнопку, красная - закроется;
- Поменять свойства объектов можно кнопками PgUp/PgDn (например: закрытую решетку сделать открытой - 0x24, бутылку с "поправкой здоровья" сделать бутылкой с ядом или с зельем, замедляющим прыжок вниз и т.д).
- Left side room, Top side room - комнаты, правые (или нижние) тайлы которых будут использованы для отрисовки стен комнат. Например у левой верхней комнаты потолок будет рисоваться из тайлов комнаты Top side room, а левая стена из тайлов Left side room.

В диалоге редактирования расположения комнат (Level layout):
- Вверх/вниз/вправо/влево - двигаем курсор;
- Пробел - начать/закончить перемещать комнату;
- +/- создать/удалить комнату.

Некоторые хинты:
- Лучше не располагать много анимированных объектов в одной комнате (две бутылки, несколько решеток, стражников, падающие плиты итд);
- Скрытые кнопки лучше не располагать с краю (лучше между плитами). Работать будут, но прорисовка будет страдать;
- То же касается и разбитых плит.

Вобщем, долго описывать. Лучше после редактирования пробежаться по уровню и увидеть огрехи.

Редактирование палитры, возможно, сделаю позже. Скачать можно в приложении. Написано на чисто винапи, потому никаких фрэймворков или доп. библиотек не нужно будет.

--
Версия 1.0.2:
* Добавлена сетка комнат;
* Добавлена возможность позиционировать курсор мышкой;
* Добавлено редактирование действий в Demo-play;
* Добавлен диалог Advanced;
* Исправлены некоторые проблемы с Level layout при открытии нового файла;
* Исправлено позиционирование курсора при установке зависимостей между дверьми и кнопками.
--
Версия 1.0.3:
* Добавлена возможность выставлять до 15 единиц здоровья (до этого было максимум 5);
* Добавлена возможность выбирать тип врагов для уровня (стражники/скелеты);
* Добавлена возможность выбирать таймаут для открытых дверей (через какое время после нажатия кнопки дверь будет закрыта);
* Добавлена возможность изменять логику входа в уровни в диалоге Advanced.
--
Версия 1.0.5:
* Добавлен редактор палитры;
* Добавлен редактор действий двойника (но ROM перед этим нужно будет пропатчить - редактор сам предложит и сам пропатчит. Mapper изменяется с UNROM на UOROM!);
--
Версия 1.0.5.1:
* Двойник может нажимать на кнопки;
* Добавлена опция ожидания двойником открытия выхода (появляется, только если выход открыт);
*** ВНИМАНИЕ *** Патч версии 1.0.5.1 не совместим 1.0.5!!! При редактировании редактором версии 1.0.5.1 игры с патчем от 1.0.5 ROM потеряет работоспособность!
--
Версия 1.0.7:
* Теперь двойник может ждать не только открытия выхода, но и практически любого игрового события (выпитое зелье, упавшая плита, открывшаяся или закрывшаяся дверь, открытый выход);
* Уровень можно сохранить в bmp;
* Переделаны тайлы: теперь они соответствуют палитре.
--
Версия 1.1.0:
* Множество исправлений в интерфейсе:
** Поправлены легенды в главном окне и диалоге "Level layout";
** Перераспределены пункты меню;
** Исправлен неработающий диалог Mirror behavior в версиях Windows ниже Vista;
** Исправлены цвета в выпадающем списке (все пункты списка были черного цвета в версиях Windows ниже Vista);
** Добавлена обработка двойного щелчка мыши в диалоге "Select level";
** В заголовке главного окна теперь указывается имя редактируемого файла и рядом в скобках локализация файла (U/F/E/G/S).

* Новые фичи:
** Редактор текста. Теперь можно редактировать весь текст, который есть в игре, в любой локализованной версии. В данный момент в код заложена возможность и редактирования самих символов, но GUI пока не сделал (не уверен, что это необходимо);
** Генератор паролей. Генерирует любой возможный пароль из всего множества. Так же там можно дешифровать имеющийся пароль;
** В диалоге Advanced, вкладка Other settings, добавлено поле "Игровое время". Теперь можно редактировать общее время, данное принцу на прохождение игры.

--
Версия 1.2.0:
* Исправления в поведении отражения:
** Упразднена опция Hide mirron at top side. Вместо нее - Hide mirror at right side. Т.е. отражение теперь можно прятать справа;
 ** Исправлено кодирование координат при сохранении событий для поведения отражения (до этого нельзя было установить событие во второй строке комнаты);

* Новое:
** Появилась визуализация действий из списка, где можно эти действия задавать (например: Edit->Advanced->Right oriented start->Action), поэтому размер редактора немного подрос;
** Появилась вкладка Edit->Advanced->Debug settings: в ней можно задавать свои действия на кнопки A и B в игре. Для конечной игры это вряд ли понадобиться, но при редактировании и тестировании мода пригодится (идея взята с форума princed);

* Ну и по традиции кое-какие мелкие внутренние исправления.
« Последнее редактирование: 04 Февраль 2014, 12:13:37 от ALXR »

Оффлайн Yaranga

  • Администратор
  • Сообщений: 11689
  • Пол: Мужской
    • Просмотр профиля
Re: [NES] Prince of Persia Level editor
« Ответ #1 : 11 Июнь 2013, 12:09:56 »
Однако клёво! Потратил больше часа после ночной смены на изголения... Показывать не буду, пока просто осваиваюсь. Мерси колон, ALXR!

Оффлайн spiiin

  • Пользователь
  • Сообщений: 573
    • Просмотр профиля
Re: [NES] Prince of Persia Level editor
« Ответ #2 : 11 Июнь 2013, 12:46:18 »
круто!
хотя не могу придумать, что в принце персии можно переделать, чтобы его интересно было пробежать еще раз.

Оффлайн 3DSchumacher

  • Ушел с форума
  • Сообщений: 2173
  • Пол: Мужской
    • Просмотр профиля
Re: [NES] Prince of Persia Level editor
« Ответ #3 : 11 Июнь 2013, 13:01:31 »
Цитата: spiiin
не могу придумать, что в принце персии можно переделать, чтобы его интересно было пробежать еще раз.

сделать неубиваемых скелетов, которых надо сбрасывать с обрыва, а не тупо забивать как обычных стражников, редактором переделать левелы на меньший хардкор и допилить вырезанные комнаты с писишной версии. Профит :)
Как вариант для новичков - выпилить таймер, шоб можно было вдумчиво изучать локации, а не нестись сломя голову

Оффлайн ALXR

  • Пользователь
  • Сообщений: 179
    • Просмотр профиля
Re: [NES] Prince of Persia Level editor
« Ответ #4 : 11 Июнь 2013, 14:50:45 »
Разработчики сделали несказанный подарок для подобных изголений: по началу был либо иной формат данных, либо уровни по иному располагались, но они оставили какие-то мусорные данные, которые не используются, но занимают место. Кроме того, в некоторых местах оставили неиспользуемые ссылки на отсутствующие решетки и кнопки. Глядя на это, сделал возможным снести этот мусор, в результате чего освобождается 270 байт, в которые можно впихнуть до десятка дополнительных комнат или больше полусотни новых ссылок. :)

Оффлайн Про Игрок

  • Пользователь
  • Сообщений: 1549
  • "I'll smash you and kick you and punch you!" (с)
    • Twitter
    • Просмотр профиля
Re: [NES] Prince of Persia Level editor
« Ответ #5 : 11 Июнь 2013, 16:01:33 »
Весьма крутой редактор. Если поднапрячься - можно сделать Метроид Персии -)

Оффлайн ALXR

  • Пользователь
  • Сообщений: 179
    • Просмотр профиля
Re: [NES] Prince of Persia Level editor
« Ответ #6 : 11 Июнь 2013, 22:13:14 »
Как ни крути, а получаются какие-то зубодробительные уровни. Пока сделал 1-ый - не без хитростей вышел. :)

Оффлайн Salewa

  • Пользователь
  • Сообщений: 20
    • Просмотр профиля
Re: [NES] Prince of Persia Level editor
« Ответ #7 : 13 Июнь 2013, 21:27:47 »

В NES версии игры не всегда получается зацепиться руками за край и спуститься. Особенно это не получается в начале игры.

Оффлайн 3DSchumacher

  • Ушел с форума
  • Сообщений: 2173
  • Пол: Мужской
    • Просмотр профиля
Re: [NES] Prince of Persia Level editor
« Ответ #8 : 13 Июнь 2013, 21:59:15 »
турбо кнопка всегда выручает. Он там на долю секунды всегда зацепится и не коцнется

Оффлайн Salewa

  • Пользователь
  • Сообщений: 20
    • Просмотр профиля
Re: [NES] Prince of Persia Level editor
« Ответ #9 : 13 Июнь 2013, 22:38:26 »
турбо кнопка всегда выручает. Он там на долю секунды всегда зацепится и не коцнется
Попробовал на компе - цепляется и без доп. кнопок. А на андроид эмуляторах NES.emu и DroidEmu не цепляется и нет турбокнопок.
Добавлено позже:
Если окрыть хак pop.ips.zip nesprinced`ом, то первый уровень отличается в игре от того, что видно в редакторе. Уровень вроде высокий в длину, а прокрутки по горизонтале нет. Это можно настроить в управлении или нет? Можно ли переносить выход?
« Последнее редактирование: 13 Июнь 2013, 22:53:22 от Salewa »

Оффлайн ALXR

  • Пользователь
  • Сообщений: 179
    • Просмотр профиля
Re: [NES] Prince of Persia Level editor
« Ответ #10 : 13 Июнь 2013, 23:22:32 »
Попробовал на компе - цепляется и без доп. кнопок. А на андроид эмуляторах NES.emu и DroidEmu не цепляется и нет турбокнопок.
Добавлено позже:
Если окрыть хак pop.ips.zip nesprinced`ом, то первый уровень отличается в игре от того, что видно в редакторе. Уровень вроде высокий в длину, а прокрутки по горизонтале нет. Это можно настроить в управлении или нет? Можно ли переносить выход?

Если нет горизонтальной прокрутки, то должно быть монитор очень широкий и он помещается в один экран :)

Переносить выход можно: надо поставить два тайла 0x10 и 0x11 рядом и назначить его открытие Ctrl+ЛКМ на кнопку открытия выхода (тайл со стрелкой вниз с надписью Exit). Хотя последнее и не обязательно.

Думаю, в версии 1.1 надо добавить скроллинг до курсора и сохранение уровня в bmp

Оффлайн Salewa

  • Пользователь
  • Сообщений: 20
    • Просмотр профиля
Re: [NES] Prince of Persia Level editor
« Ответ #11 : 13 Июнь 2013, 23:30:37 »
надо поставить два тайла 0x10 и 0x11
А где это тайлы по номерам? За кнопками 0-9Q-0 тайла exit нет.
Я удалил весь уровень, поставил принца на плитку, а он почему-то падает.

Оффлайн ALXR

  • Пользователь
  • Сообщений: 179
    • Просмотр профиля
Re: [NES] Prince of Persia Level editor
« Ответ #12 : 13 Июнь 2013, 23:43:02 »
А где это тайлы по номерам? За кнопками 0-9Q-0 тайла exit нет.
Я удалил весь уровень, поставил принца на плитку, а он почему-то падает.

Внизу, в статусе. В 1-ом уровне он всегда будет появляться с левого края комнаты. Так задумано разработчиками...
0x10 - E, 0x11 - R кнопки.

Оффлайн Salewa

  • Пользователь
  • Сообщений: 20
    • Просмотр профиля
Re: [NES] Prince of Persia Level editor
« Ответ #13 : 13 Июнь 2013, 23:56:25 »
ALXR,
А какой номер или буква кнопки - тайла со стрелкой вниз с надписью Exit?

В 1-ом уровне он всегда будет появляться с левого края комнаты.
Может с правого края?

Оффлайн ALXR

  • Пользователь
  • Сообщений: 179
    • Просмотр профиля
Re: [NES] Prince of Persia Level editor
« Ответ #14 : 14 Июнь 2013, 00:10:14 »
ALXR,
А какой номер или буква кнопки - тайла со стрелкой вниз с надписью Exit?
Может с правого края?

Жмешь 7, а затем Page Down до тех пор, пока не появится надпись "Exit"

Оффлайн Salewa

  • Пользователь
  • Сообщений: 20
    • Просмотр профиля
Re: [NES] Prince of Persia Level editor
« Ответ #15 : 14 Июнь 2013, 00:23:49 »
ALXR,
Сделал вроде все как надо, но не работает. Наступаю на кнопку появляется надпись - exit opened, но дверь не открывается.

Оффлайн ALXR

  • Пользователь
  • Сообщений: 179
    • Просмотр профиля
Re: [NES] Prince of Persia Level editor
« Ответ #16 : 14 Июнь 2013, 02:18:26 »
Посмотри, как сделано в других уровнях. Например, во втором или третьем.

Оффлайн Salewa

  • Пользователь
  • Сообщений: 20
    • Просмотр профиля
Re: [NES] Prince of Persia Level editor
« Ответ #17 : 14 Июнь 2013, 13:18:51 »
Посмотри, как сделано в других уровнях. Например, во втором или третьем.

http://video.yandex.ru/users/interkraft/view/1/

Во втором и третьем уровне зеленая зона зависимости (Ctrl+ЛКМ) стоит, как на кнопке открытия выхода (тайл со стрелкой вниз с надписью Exit), так и на начале двери, при наведении на любой из этих зеленых тригиров курсора, они обои подсвечиваются зеленым. Я попробывал так сделать, и контрольная сумма рома не совпала.


« Последнее редактирование: 14 Июнь 2013, 14:05:01 от Salewa »

Оффлайн ALXR

  • Пользователь
  • Сообщений: 179
    • Просмотр профиля
Re: [NES] Prince of Persia Level editor
« Ответ #18 : 14 Июнь 2013, 14:14:16 »
А, это особенность движка. :) Я в начале же и писал про хинты, и что у движка есть некоторые особенности, и по началу следует оббежать уровень.
Одна из них следующая: если в комнате, где появляется принц есть дверь выхода, то она считается ВХОДОМ (на видео можно увидеть, что дверь эта закрывается в начале, как-будто это вход). Если ты ее переместишь в соседнюю комнату (можно даже вместе с кнопкой), то она откроется. Так работает движок. Там есть еще премудрости, и я попробую вспомнить, что сам заметил, и опишу.

Оффлайн Salewa

  • Пользователь
  • Сообщений: 20
    • Просмотр профиля
Re: [NES] Prince of Persia Level editor
« Ответ #19 : 14 Июнь 2013, 16:25:50 »
ALXR,
Спасибо, получилось сделать переход на 2 уровень.

А зачем нужен Level layout? Это номера уровней?
А есть тайл с мечом, а то если не взял меч на первом уровне на 2 принц без меча?
Тайлы со знаком вопроса, это не нужные?
Кнопка со знаком бесконечности для чего ?

Оффлайн ALXR

  • Пользователь
  • Сообщений: 179
    • Просмотр профиля
Re: [NES] Prince of Persia Level editor
« Ответ #20 : 14 Июнь 2013, 17:16:08 »
ALXR,
Спасибо, получилось сделать переход на 2 уровень.

А зачем нужен Level layout? Это номера уровней?
Нет. Это размещение комнат в уровне. У каждой комнаты есть свой ID (он отображен внизу, в строке статуса), и в Level layout эти же ID размещены в соответствии с геометрией уровня. Т.е. можно менять расположение комнат, их количество (от 2 до 24). В первом сообщении я написал, как там с этим управляться.
Можно добавлять комнаты, но сперва надо почистить данные уровней от лишнего мусора (в диалоге Edit -> Memory usage).

А есть тайл с мечом, а то если не взял меч на первом уровне на 2 принц без меча?
Да. Это если переходит с 1-го на 2-ой. А если ввести пароль на 2-ой уровень, то там он появится с мечом.

Тайлы со знаком вопроса, это не нужные?
Они искажают отрисовку комнаты. Т.е. они действуют, как и обычные, но рисуются криво и могут исказить отрисовку всей комнаты в целом.
Кнопка со знаком бесконечности для чего ?
Обычные кнопки открывают дверь на определенное время. Эта кнопка открывает дверь и та больше не закрывается.

Оффлайн x.GREYSON.x

  • Пользователь
  • Сообщений: 412
  • Пол: Мужской
  • Электролыбка
    • Просмотр профиля
Re: [NES] Prince of Persia Level editor
« Ответ #21 : 14 Июнь 2013, 23:10:19 »
Цитата
А есть тайл с мечом, а то если не взял меч на первом уровне на 2 принц без меча?
Проверил. С мечем. Как на дос-версии. Вообще немного неудобно, когда не видишь край комнаты. в досе редактор удобнее, хотя там непонятно как решетки с кнопками совместить.

Оффлайн ALXR

  • Пользователь
  • Сообщений: 179
    • Просмотр профиля
Re: [NES] Prince of Persia Level editor
« Ответ #22 : 15 Июнь 2013, 16:13:07 »
Выложил версию 1.0.1. Добавил возможность указать комнату, тайлами которых будут рисоваться потолки самых верхних комнат и левые стенки комнат с левого края. Без этого было бы невозможно построить нормальный уровень.

x.GREYSON.x
Я старался сделать минималистичный интерфейс. Если что-то неудобно - я поправлю. Все неудобство в данный момент только в отсутствии границ комнат?

Оффлайн Salewa

  • Пользователь
  • Сообщений: 20
    • Просмотр профиля
Re: [NES] Prince of Persia Level editor
« Ответ #23 : 15 Июнь 2013, 17:25:52 »
ALXR,
ещё было бы удобно переносить курсор мышкой, а то приходится перегонять его стрелками.

Оффлайн x.GREYSON.x

  • Пользователь
  • Сообщений: 412
  • Пол: Мужской
  • Электролыбка
    • Просмотр профиля
Re: [NES] Prince of Persia Level editor
« Ответ #24 : 16 Июнь 2013, 14:29:38 »
ALXR, почему предел в 5 косаний если можно до 10 набрать? Еще нужно поправить (подписать значения) настройки с бутылками. а то методом научного тыка выяснять какая за что отвечает - напряжно. нажимаем 5 видим маленькая с вопросом (хз что это), нажимаем Pg Dn видим мал.бут. на стене отображение кирпичей, далее большая с добавлением, далее большая с замедлением полета, далее маленькая, далее маленькая с ядом, далее большая +1, далее большая -1, далее с вопросом и по кругу. Зачем так много повторений? и еще, почему-то стражник, которого уже убил, при прохождении того же экрана снова живой?

Поправил неполадки 10 и 11 уровня
« Последнее редактирование: 17 Июнь 2013, 12:30:15 от x.GREYSON.x »

Оффлайн ALXR

  • Пользователь
  • Сообщений: 179
    • Просмотр профиля
Re: [NES] Prince of Persia Level editor
« Ответ #25 : 16 Июнь 2013, 17:57:58 »
ALXR, почему предел в 5 косаний если можно до 10 набрать?
Для уровня предусмотрены значения только от 1 до 5. Большие движок просто обрезает до 5, а при нуле все рушится.
Еще нужно поправить (подписать значения) настройки с бутылками. а то методом научного тыка выяснять какая за что отвечает - напряжно. нажимаем 5 видим маленькая с вопросом (хз что это), нажимаем Pg Dn видим мал.бут. на стене отображение кирпичей, далее большая с добавлением, далее большая с замедлением полета, далее маленькая, далее маленькая с ядом, далее большая +1, далее большая -1, далее с вопросом и по кругу. Зачем так много повторений?
Каких повторений? Там тайлы зациклены по кругу: 0-255, далее опять с 0.

и еще, почему-то стражник, которого уже убил, при прохождении того же экрана снова живой?
Это, видимо, такая особенность движка при заданном уровне здоровья в 1. Я про нее не знал. :)

Оффлайн x.GREYSON.x

  • Пользователь
  • Сообщений: 412
  • Пол: Мужской
  • Электролыбка
    • Просмотр профиля
Re: [NES] Prince of Persia Level editor
« Ответ #26 : 16 Июнь 2013, 18:17:03 »
Цитата
Еще нужно поправить (подписать значения) настройки с бутылками. а то методом научного тыка выяснять какая за что отвечает - напряжно. нажимаем 5 видим маленькая с вопросом (хз что это), нажимаем Pg Dn видим мал.бут. на стене отображение кирпичей, далее большая с добавлением, далее большая с замедлением полета, далее маленькая, далее маленькая с ядом, далее большая +1, далее большая -1, далее с вопросом и по кругу. Зачем так много повторений?



Каких повторений? Там тайлы зациклены по кругу: 0-255, далее опять с 0.
Я имел ввиду только бутылки. например 2-е мелких +1. Надо просто подписать все значения.

Оффлайн Salewa

  • Пользователь
  • Сообщений: 20
    • Просмотр профиля
Re: [NES] Prince of Persia Level editor
« Ответ #27 : 18 Июнь 2013, 22:39:17 »
У меня не работает переход из комнаты. Наверно это связано с Level layout, я не понял что нужно сделать.
http://youtu.be/DcKiD8Nv7sg
« Последнее редактирование: 18 Июнь 2013, 22:48:34 от Salewa »

Оффлайн ALXR

  • Пользователь
  • Сообщений: 179
    • Просмотр профиля
Re: [NES] Prince of Persia Level editor
« Ответ #28 : 18 Июнь 2013, 23:20:02 »
Это связано с двумя рядом расположенными плитами с шипами. Если одну из них удалить - будет все в порядке. Еще, я бы не рекомендовал пользоваться тайлом 0x33, поскольку он вызывает глитчи (надо будет знак вопроса пририсовать к нему).
Кстати, интересно, что если правую плиту с шипами переместить на одну позицию вправо, то в комнате появляется атакующий принца двойник. Надо будет еще посидеть с дебаггером, выяснить причины его появления и поведения. :)

ps: Готовлю еще релиз с предложенными здесь исправлениями, плюс для уровней можно задавать комнаты, при входе в которые перемещаешься на следующий уровень (как в 6 уровне, когда, падая в пропасть, попадаешь на 7 уровень. Или как из 12 переходит в 13).

Оффлайн Salewa

  • Пользователь
  • Сообщений: 20
    • Просмотр профиля
Re: [NES] Prince of Persia Level editor
« Ответ #29 : 19 Июнь 2013, 00:57:37 »
Это связано с двумя рядом расположенными плитами с шипами. Если одну из них удалить - будет все в порядке. Еще, я бы не рекомендовал пользоваться тайлом 0x33, поскольку он вызывает глитчи (надо будет знак вопроса пририсовать к нему).
Кстати, интересно, что если правую плиту с шипами переместить на одну позицию вправо, то в комнате появляется атакующий принца двойник. Надо будет еще посидеть с дебаггером, выяснить причины его появления и поведения. :)

ps: Готовлю еще релиз с предложенными здесь исправлениями, плюс для уровней можно задавать комнаты, при входе в которые перемещаешься на следующий уровень (как в 6 уровне, когда, падая в пропасть, попадаешь на 7 уровень. Или как из 12 переходит в 13).

А в игре же не было двойника?
Две плитки, кот обваливаются(0x0В) тоже рядом ставить нельзя, а то крашится?