Птички из кирпичиков: оформление уровней Organic Matter
В сегодняшнем выпуске дневников разработки Organic Matter расскажу немного про дизайн уровней с визуальной точки зрения.
Самой характерной особенностью графики ZX Spectrum является то, что каждое знакоместо 8×8 на экране может быть раскрашено только в два цвета — цвет фона PAPER и цвет «чернил» INK. Это, в частности, означает, что вы не можете нарисовать белый спрайт на фоне стены из красных кирпичей с серым цементом: либо спрайт перекрасит стену, либо стена спрайт. С этой проблемой боролись по разному: делали игры монохромными, старались, чтобы основное действие происходило на черном или другом однотонном фоне, быстренько перерисовывали фон после того, как персонаж с него сойдет, или решали, что пусть герой перекрашивается, ничего не поделаешь.
В движке Multi-Platform Arcade Game Designer (MPAGD) персонаж по умолчанию перекрашивается в цвета блоков, перед которыми он стоит, и я решил, что таким образом можно сделать, например, эффект красной подсветки от лампочек, которые ограничивают опасные места. Блоки с подсветкой пустые, но в атрибутах у них указаны красные чернила, поэтому герой тоже становится красным, подойдя туда. Правда, подсветка получается угловатая.
Настоящие профессионалы спектрумовской графики имитировали тени на объектах и объем, умело манипулируя в основном черным цветом — в частности, активно применяя дизеринг (создание полутеней путем расставления пикселей в шахматном порядке). Я решил за мастерами не гнаться и сделать графику поплоще, но все-таки хотя бы как-то сгладить вездесущие прямые углы, которые вечно вылезают из тайловой графики. Первым делом, конечно, я нарисовал скосы, которые видны на стартовом экране. Решил, что 45 градусов — довольно банальный (и чересчур крутой) уклон, а вот такая пологая линия будет смотреться поприятнее. К сожалению, движок ходьбу по косогору не поддерживает, так что по пандусам все равно приходится прыгать, как по ступенькам.
Вторая проблема, с которой надо было бороться — однообразие. Большие площади, замощенные голубеньким тайлом стены, смотрелись до вывиха челюсти скучно. В принципе, отчасти так и было задумано, чтобы создать контраст с бурной растительностью в «органической» части станции, но игрока надо было еще туда заманить. Так что вначале я сделал альтернативный тайл с немного смещенными «дырочками» и разбавил скукоту им, а потом ещё вырыл на первом экране служебный тоннель — ну и потом так получилось, что он продлился до «деревянной» части станции. Аналогичные «прорези» появились и в некоторых других экранах. Добавлялись мелкие детали, вроде кактусов у программистов, расклеенных по всей станции плакатов EARTH и моделей ракет. Скошенные потолки были утыканы выступами, на стенах добавлены росписи…
Надо сказать, что половинные треугольники, из которых составлено вездесущее граффити феникса и другие настенные художества, появились, когда я оформлял складской этаж станции. Там, конечно же, должны были быть контейнеры и погрузчики, но хотелось сделать их необычными. Погрузчики придумались похожие на полотеры из метро, а контейнеры — шестиугольные, бока которых как раз и состояли из белых треугольников.
Когда я решил, что черноту стен станции надо как-то разбавить, эти треугольники пришлись очень кстати:
Обратите внимание, что шея и хвост птицы формально имеют ширину в одну клетку (если мерять по горизонтали — красная линия), но кажутся тоньше, так как мы подсознательно меряем их ширину по синей линии.
Вообще, хотя в условиях жестких ограничений памяти любой реюз тайлов приходится очень кстати, в Organic Matter нету каких-то суперклёвых связанных с этим приемов (как в Super Mario Bros., где облака и кусты сделаны из одних и тех же элементов), кроме чашечек в инкубаторе, которые по совместительству являются штанинами скафандров из второго экрана.
В заключение хотелось бы показать экран «Улетевший отсек», где пологие и круто скошенные кусочки скомбинировались в неплохую имитацию криволинейности.
Из следующего выпуска дневников вы, возможно, узнаете, на какие жертвы пришлось идти, чтобы упихать игру в отведенный объем памяти.
- 22 марта 2021, 02:32
- 016
Но если честно я такой графон не очень люблю. Делать может и легче, но результат. Хотя в целом одобряю.
Лучше шарики и ямки.
А технически возможно запустить эту игру на настоящем спектруме?
Я не пробовал, но теоретически да. Есть приложения, которые переводят .tap-файл в wav-файл, этот файл можно проиграть на компьютере и записать на кассету, и тогда с этой кассеты можно будет загрузить игру.
А если через эмулятор ? Просто у меня самого спектрума никогда не было. Была БК-0010.01, а вот у моих друзей были спектрумы. Мы даже например в Laser Squad рубились иногда. Ну а на БК тоже были конечно свои некоторые интересные игры. Так что был такой обмен опытом. И программировать учились понемножку на бейсике и играли. Вообщем было весело. ))))
Через эмулятор вообще без проблем.
Это здорово. Можно будет попробовать. Вообще мне конечно в свое время была интересна разработка игры на ассемблере. Но делал это все на БКшке. А для спектрума есть эмулятор, который запускал из эмулятора ДОСбокс. Вот такой эмулятор в эмуляторе )))
Я даже описал сам процесс запуска тут -
Эмулятор ZX-Spectrum, БК-0010.01 и их работа в эмуляторе DosBox
А вообще есть еще браузерный эмулятор, и там конечно все проще
вот пример игры
Aquanoids, 2015
Да. Программировать для спектрума тоже пробовал. Правда только в эмуляторе. У меня даже есть книжка по ассемблеру Z-80, ну и инфы в сети полно. Так что дело это достаточно интересное.
А как по-твоему разраб тестировал игру, если у него оригинального железа нет?
Лучше спросить чем гадать. Хотя эмуляторы разные бывают. Не факт что игра будет работать не криво. Надо проверять. Эмулятор есть эмулятор.