06
Дек
2020

Продолжение начала начал

Мы разделили задачи — Женя начал писать редактор лабиринтов и движок принца, а я начал рисовать всю графику, которая была нужна для проекта. Рисовать приходилось вручную, поточечно. Никаких переносов графики — количество цветов и разрешение экрана не позволяли это сделать.
Как выглядело рисование в V003? Никаких тебе мышей — только клавиатура. Двигаешь курсор клавишами управления курсором, жмешь номер цвета 1, 2, 3 или 4. Ставится точка красного, зеленого, синего или черного цвета. И вот так рисуешь весь спрайт. Если ты где-то ошибся или вообще стер все — никаких Undo нет, рисуй заново. Если очистил буфер с запомненным спрайтом — тоже рисуй заново. Нарисовал спрайт, но оказалось, что надо сдвинуть его на одну точку влево-вправо для того, чтобы попал на границу байта? Ну, вы уже поняли…

Нарисовать спрайты это только полдела. Надо собрать из них движения. К примеру, принц прыгает через яму с места — это одно движение? Нет, это два движения: «начало прыжка и полет» и «приземление». Почему именно два? Потому что итог прыжка может быть разный — если яма небольшая, то принц приземляется на ноги. Если яма большая — он может в конце прыжка провалиться и зацепиться руками за край плиты. Если очень большая — вообще рухнет вниз. Еще в процессе прыжка его может запилить пила, уколоть стражник, кирпич может внезапно остановить его, если принц решил прыгнуть лбом в стену. Т.е. финалы могут быть разные, хотя начало всегда одно. Все эти финалы должны органично пристыковаться к началу. Значит, надо найти такой момент в движении, где можно его разделить на начало и конец. Автор этим заморачивался глобально, но нам было проще — мы могли это просто вычислить, заставляя принца прыгать туда-сюда и нажимая заветный стоп-кадр.
После того, как все спрайты готовы и движение изучено, нужно подобрать все смещения между спрайтами при выводе. Сначала я делал это вручную, выводя спрайты и записывая в тетрадку кучи цифр. Когда меня забрали в армию и этим продолжил заниматься Женя, он написал для этого специальную утилиту ASSEM, куда можно было загрузить спрайты и двигать каждый из них, проигрывая движение снова и снова. Когда движение начинало выглядеть органично — выгружалась готовая таблица.

Были, конечно, ошибки. Вот недавно я обнаружил, что одно из самых первых движений ‘начало бега’ надо разделить на два, чтобы был возможен короткий пробег и сразу остановка. Такие ошибки обнаруживались регулярно и приходилось все спрайты этого движения собирать заново в ДВА движения. Занятие весьма нудное. Но когда я пару лет назад прочитал книгу Jordan Mechner «The Making of Prince of Persia», я понял, что у него это был вообще глобальный треш))

Я нарисовал все спрайты обстановки, а Женя написал редактор лабиринтов. Потом я сделал почти все спрайты принца и поступил в институт. За отличную учебу меня забрали в армию, так что Женя пару лет занимался принцем один. За это время он собрал из нарисованных мной спрайтов движения и запустил принца в лабиринт. Когда я в мае или июне 94 года приехал в отпуск, он продемонстрировал мне принца, который бегал по лабиринту, прыгал, падал в ямы. Им можно было управлять, это не был мультик. Принц реагировал на команды и на обстановку. Это было офигенно. Нам показалось, что дело почти сделано, что это почти готовая игра)) Сейчас 2020 год, принц до сих пор не готов и вспоминать это смешно.

Share

You may also like...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *