Как стать автором
Обновить

Комментарии 30

Ну вот, остановились на самом интересном. :) А я ждал разбора Соника с бегом по стенам, петлям и спиралям; современных игр типа Реймана с платформами произвольной формы и произвольной физикой и т. д. и т. п. На векторном способе автор не задержался…

Не уверен насчёт существования «чистого тайлового» типа, практически во всех играх можно же располагать персонажа по оси X произвольно. Принц бегает и шагает рывками, что несколько сбивает с толку и раздражает, но поставить его при желании можно где угодно с помощью прыжков и приседаний. Противники его положение учитывают до пикселя. Насчёт Лодеруннера не уверен, там действительно происходит некоторое округление до клетки при любом действии, особенно перескоки заметны при стрельбе между клеток, но координаты у него с точностью до пикселя, и противники явно не убивают его при соприкосновении ближайших клеток.
Я смотрю в оригинале перевода там продолжение есть. Весьма интересное :)
Продолжение будет, но статья очень обширная. Поэтому я разбил на 2 части. Постараюсь в течение недели выложить продолжение. Его надо хорошенько вычитать. У автора местами язык слишком костный.
Принц и флешбек не позволяет. Ты нажал один раз вбок и персонаж пошел на следующий тайл. Мне кажется автор очень даже прав. Хотя плавный тип с произвольным перемещением куда более явно распостранен.
Нужно только учитывать, что тайлы у принце довольно маленькие. Когда вы делате движение с нажатой клавишей Shift от пикслов на пять перемещается. И в игре есть несколько моментов где это важно. Но как только вы попытаетесь куда-нибудь залезть/слезть — он выравняется на границу «большого» тайла.
С помощью прыжков вверх можно очень точно позиционировать принца. А размер аккуратного шага ещё и уменьшается, если стоять в половине шага от обрыва.

Выравнивание у принца не по тайлу, а по стенке, на которую он лезет. Анимация просто с пиксельной точностью выравнивается, чтобы руки в воздухе не висели. По сути просто округление, чтобы пиксель-хантингом не заниматься для того, чтобы запрыгнуть.
Вы в Принца играли вообще? Дольше одной минуты?

Попробуйте двигаться с помощью шага, а не бега (Shift). Попробуйте прыгать на месте вверх (Up). Попробуйте опускаться вниз и сразу подниматься (Down). И обратите внимание на координату X.
Играл, ещё в незапамятные времена на commodore 64, в конце 80х. И довольно много играл.
Запустил досовую версию и подвигался туда-сюда.



Сколько здесь «тайл»? Два пикселя?
Заинтриговали. Память иначе рисовала мне эту игру. Приду домой, погоняю эмулятор C64.
Это, кажется, VGA-версия.
Пиксельный скроллиг же.
Не понял. В смысле?
Появление сайд-скроллеров стало возможно благодаря технологии попиксельной прокрутки тайлового экрана — пиксельного скроллинга. Поэтому границы тайлов стало выделить очень и очень сложно. И, конечно, автор статьи не совсем прав — далеко не во всех играх координаты персонажа хранятся в размерах тайловой сетки, а не в абсолютных значениях.
Прошу прощения, не заметил, что в примерах чистых тайлов указан и Prince Persia. Вероятно, это ошибка.
опять-таки, чего далеко ходить Loderunner не позволял остановиться между тайлами вообще.
Какая, к терапевту, «граница между тайлами»? Изначально Loderunner был программой для текстового режима! Работал на VAX'е, был написан на смеси Фортрана и Паскаля… да, были времена…
Так и речь о том, что чаще всего это крайне старые игры. Или тупо не динамичные вовсе, где динамика, экшн, не в приоритете. Я об этом.
Если бы в статье в качестве примера был приведён один из ископаемых Лодеруннеров, вообще не было бы вопросов. Но там ведь про Legend Returns — очень даже продвинутого Лодеруннера из середины девяностых. Почему автор решил, что в игре используется только имитация движения между клетками — я не понял.
Ну так статью не я писал. По мне, так именно классический куда больше и точнее описывает данный метод. Я и так позволил себе украшать статью и местами перефразировать совершенно иначе. Но вот списков примеров я не трогал.

Автор пишет о реверс-инжиниринге, возможно он всё-таки порылся во внутренностях реализации, отсюда и такой вывод сделал. Сложно сказать.
Потому что так и есть. Анимация персонажа сделана так, чтобы игрок этого практически не замечал, но по факту каждый игровой уровень — это набор квадратов, и любые действия можно совершать только в границах этих квадратов. Например, когда герой совершает обычное для игры действие — копает яму слева или справа — героя двигает немного левее или правее, в зависимости от того, где он стоит, чтобы анимация выкапывания ямки совпала с квадратом, который будет выкопан. То же самое касается и всех используемых предметов — газ распыляется на три квадрата влево или вправо (герой оказывается в центре клетки, с которой он применяет газ), клей — аналогично, бомбы — аналогично. Все действия привязаны именно к этим квадратам, хотя анимация и сделана так, чтобы игрок этого почти не замечал.
Физика в Сонике это ад. Я пытался ее воссоздать, но моих весьма посредственных знаний в математике явно не хватило даже не смотря на помощь в виде Sonic Physics Guide и различных исходников. Так что я бы тоже не отказался от подробного разбора этого дела. :)
Хм… По Сонику, наверное, фанатские игры в достатке, какие-нибудь опен-сорсные должны быть. Или глухо?
Не, есть то они есть и позволяют примерно понять как оно работает — с десяток различных «сенсоров» для определения положения, наклона и тд + попиксельные коллизии между ними и поверхностями. У меня просто с математикой совсем туго. :) Базовую физику я сделал, но как только дело дошло до создания 360-градусного вращения персонажа (хотя правильнее сказать — сенсоров), я спасовал. :)
Этот пост пронизан духом Старой Школы :)

Побольше бы такого с конкретными хаками и приёмами. Все это может наталкивать на интересные мысли при разработке игр смежных жанров.
Из собственного опыта. Надо указывать, на чём герой стоит ногами, и если стоит — двигать его по «направляющей».
Если на движущейся платформе — то со сдвигом платформы двигать и героя.
Обычно платформа считается «полупроходимым» элементом, и если герой на ней стоит — то проезжает через другие платформы. Если непроходима — придётся толкать героя.
Очень позновательно и грамотно все изложено. Даже учитывая тот факт, что я не разработчик, было крайне интересно читать. Жду продолжения!
Спасибо, работаю над продолжением. Очень постараюсь уложиться до среды, возможно даже в выходные доделаю и сверстаю.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации