Category: Блог

07
Ноя
2020

12+13 лабиринт

Поделил 12 лабиринт на два, теперь мультики не портят данные. Сделал переход из 12-го в «13-й». Попутно выяснилось, что в наличии два жутких глюка — во-первых, падающая плита при падении на такую же «нестабильную» плиту не уносила ее с собой вниз, как положено, а застревала на ней. Во-вторых, падающие плиты выводились неверно — поверх них выводился задний план. Оба глюка побеждены. И оба они были очень древними 🙂 Ну и еще мелкий глюк со смещением маски верхней части колонн исправлен, но это ерунда.

05
Ноя
2020

Море бумаги

В 90-е у нас не было дома PC, а на работе были, конечно. Разработка принца велась на БК, программа уже состояла из кучи файлов, так как на БК конечно есть ограничения на длину текста исходника. Чтобы вызвать подпрограмму из другого файла, надо было вспомнить какие там передаются параметры в каких регистрах или ячейках памяти, а также какие регистры эта подпрограмма может испортить. Запоминать все было тяжко, а загружать каждый раз другой файл, чтобы посмотреть как там вызывать подпрограмму — лениво.

Потому на работе я периодически печатал исходники принца, чтобы можно было просто посмотреть как там и что. Постепенно исходники стали большими и искать нужный кусок кода в печатном тексте приходилось долго. Чтобы ускорить процесс поиска, я  стал печатать оглавление из таблицы меток и это очень помогло. Потом еще для больших разделов начал печатать метки в виде жирной черной полоски на полях страницы, которые были видны сбоку, а на титульном листе — сноски на эти метки. Таким образом можно было мгновенно перейти к нужному разделу текста. Короче, как только не изголялись, извели кучу бумаги на работе. Судя по тем бумагам, что я нашел в шкафу, печатали мы и на рулонах, и на термобумаге какой-то и фиг пойми на чем еще )) Еще же и спрайты надо было распечатывать…. Бумаги на работе ушло море ))

На некоторых страницах есть комментарии Жени Пашигорова, которые мог читать только он, т.к. почерк его я разбирал с трудом.

04
Ноя
2020

12 лабиринт

Нашел в чем была проблема с новым 12м лабиринтом. Последние два слова в каждом лабиринте представляют собой адрес в экране, куда вывести принца после входа и слово состояния принца (движение), которое он должен получить при входе. Т.к. в некоторые лабиринты принц «впадает» (как в 7-й), то это первое движение вовсе не везде одинаково. К тому же, после входа принц смотрит в определенную сторону, а вовсе не в одну и ту же. Все это есть в слове состояния принца. И вот это самое слово состояния и адрес вывода при сохранении лабиринта из редактора тупо обнулялись! Видимо тогда нам было лень делать механизм назначения движения и мы решили, что впишем от руки потом, лабиринтов-то всего 12. И вписали, что характерно. А вот я об этом забыл 🙂 Ну, вписал и сейчас, не проблема 🙂

Лабиринт заработал. Заодно проверил возможность пройти череду прыжков в 12-м, это весьма сложное место и в оригинале, с нормальной клавиатурой. А уж на БК с ее «особенностями» и подавно. Мне было интересно, реально ли пропрыгать этот каскад в нашем принце. Оказалось, что реально, по крайней мере на эмуляторе БК. Но и глюк нашелся, куда без этого: если при смене экрана принц бежит по обваливающейся плите, то он сразу падает. Будем исправлять 🙂

P.S. проблему с плитой и провалом пофиксил, но ролик получился эпичный ))

04
Ноя
2020

Хитрый глюк

Проверял срабатывание мультика с мышью в 8м лабиринте, когда она нажимает плиту. Нашел кучу глюков, но в итоге мышь-таки выбежала. Но самый прикол был потом — я добежал до выхода и увидел, что дверь ЗАКРЫВАЕТСЯ! Типа слишком долго провозился, выход закрыт )) Последствие переделки
механизма решеток 🙂

 

04
Ноя
2020

12 лабиринт, продолжение

Оказалось, что я уже забыл как правильно делать лабиринты в редакторе 🙂 Набрал лабиринт, сделал связь решеток с кнопками, загружаю — виснет при входе в 12 лабиринт. Пришлось лезть в исходники редактора и смотреть как на самом деле нужно создавать списки связей решеток и кнопок. Выяснилось, что и положение решеток «открыто-закрыто» тоже надо было задавать. В принципе, это логично, но я просто уже забыл об этом. Вообщем, первая попытка сделать новый лабиринт провалилась, буду разбираться.

03
Ноя
2020

Как все начиналось

Начало истории описал в своей статье Евгений Пашигоров, вместе с которым мы и делали Принца с самого начала. Собственно, весь движок принца и был написан им, я занимался графикой и потом уже стал делать стражников, оживлять лабиринт с помощью решеток, фрез и прочего «действующего оборудования» лабиринтов. Он же и разработал все инструменты, с помощью которых стало возможно автоматически собирать все модули программы из кучи исходников и объектников, собирать из спрайтов движения, преобразовывать графику в объектные модули и многое другое. Без Жени никакого Принца никогда бы не было 🙂

А вот так выглядел «перенос графики» с PC на БК.

Я распечатывал на работе кучу скринов с фазами движения и потом рисовал их на БК по этим бумажкам, попутно преобразовывая размеры спрайтов под размеры экрана БК, т.к. если графику просто скопировать, то она будет выглядеть сжатой по вертикали. Из всех этих спрайтов потом еще надо было сделать движения, поделенные на логические части, чтобы можно было сменить бег на остановку, падение, разворот и все это выглядело бы органично. Та еще работка 🙂 Так что, пока Женя писал движок, я клепал все эти спрайты… Часто мы засиживались до 4х часов утра, офигенский был энтузиазм 🙂

 

03
Ноя
2020

Средства разработки

Разработку я продолжаю «родными» БКшными средствами — ассемблер micro1103 (модифицированный Евгением Пашигоровым под работу с bat-файлами), редактор текста Vortex, графредактор GRED V003. Все это под операционкой ANDOS и работает на эмуляторе gid. Железная БК11М с контроллером СМК-512 у меня тоже есть в наличии, но пока что лежит в шкафу 🙂

Так что все спрайты я рисую с помощью БКшного графредактора, без всяких этих ваших фотошопов, и выглядит это вот так:

03
Ноя
2020

12 лабиринт

При отладке финального боя в 12 лабиринте я сразу увидел, что с лабиринтом что-то не так. При падении вниз (12м это часто) возродился самый старый глюк — зависание при влете в новое окно внизу. Сразу стало ясно, что лабиринт почему-то портится, раньше так бывало при пролете падающих плит. Потом буферы фона иногда залезали в лабиринт. Но теперь-то памяти валом, все буферы давно в расширенном ОЗУ СМК-512! Загрузил лабиринт в редактор, а там кошмар в нижней половине лабиринта, хаос из кувшинов, пил и прочих элементов. При этом в верхней части все ок, где принц бьется с двойником. Взял старую версию лабиринта, вкатил в нее таблицы мультиков (они хранятся в конце файла лабиринта, чтобы не грузить их отдельно), гружу в принца — снова зависание. Открываю в редакторе — снова хаос. Чтобы это значило? А значило это просто то, что 12 лабиринт оказался слишком большим и вылезал в область мультиков. Таким образом, вкатывая в него таблицы мультфильмов, я сам его и портил. Придется разделять 12й лабиринт на две части. Собственно, в оригинальном принце это тоже так и есть — после битвы с двойником принц возрождается уже в другой половине лабиринта, а не в самом начале. Самое смешное, что теперь как раз технически будет 13 лабиринтов, как и утверждал SashaPont на канале БК0010/11М World в споре о том, сколько лабиринтов в Принце 🙂

Сделал карту 12 уровня, буду пилить на два 🙂

03
Ноя
2020

Финальный бой

На данный момент я сделал сцену финального боя принца с двойником. Двойник, конечно, работает на движке стражника, т.к. должен драться с принцем. Но у стражников нет движений типа «шаг вперед без меча», «достать меч», «убрать меч», «бежать». Потому двойник, это не совсем стражник 🙂 В свое время (в давние времена) мной был написан механизм воспроизведения «мультиков», который воспроизводил движения любого объекта, описанного в игре с помощью таблиц движений. Это и сам принц, и стражники и мышь в 8-м лабиринте. С помощью этих «мультиков» и выводится двойник, выпрыгивающий из зеркала, наступающий на плиту в 6м, выпивающий кувшин в 5м лабиринтах. Но это были просто мультики, которые воспроизводились без оглядки на обстановку, ямы, принца. А в финальном бою надо было скрестить эти мультики с реальными действиями двойника в ответ на действия принца, к тому же двойник должен еще и на обстановку реагировать (упасть в яму, если она ему попадется), разворачиваться в сторону принца и т.д. К тому же, мультики воспроизводились тупо с заданного места в экране, а тут двойник может начать складывать меч в любом месте, смотря где оказался в ходе боя. Потому пришлось поломать голову, но все получилось, ура! 🙂