Чуть-чуть анимации, чуть-чуть чиптюн-кавер, всё моё, кроме оригинала песни, конечно.
Угадаете место и модель машины?
Немного близких планов
И конечно же прогресс видео в стиле - как рисовать сову)))
Данная сцена была создана специально для музыканта Hello Meteor.
Прогресс создания
за референс использовался voxelart от madmaraca
Немного closeups
Как всегда за основу легла чьято фотография. На этот раз: @Snorgl
Немного closeup-ов
Видео прогресса
Использовалось фото @ashvain как референс.
Небольшое прогресс-видео
Референс не нагуглил опять. Фото нашёл где-то в комметах.
Всем привет!
А моим 14-ти подписчикам отдельный салют!!!
В этой статье я расскажу о разработке игр для ZX Spectrum в современных реалиях.
Приступим...
Начну с того, что писать для ZX Spectrum'а можно абсолютно различными способами. Начиная с использования ASM на самом старичке и заканчивая языками высокого уровня на Windows, Linux и даже MacOS.
Disclaimer: Описанное мной ниже было использовано для создания трех игр. Две из них были выставлены на конкурсах "Yandex Retro Games Battle 2020" и "Твоя Игра 6". Я делаю так, как удобно мне. Я не призываю использовать исключительно мой подход. Я за то, чтобы росли все цветы.
Летом прошлого года моя мама переезжала на новую квартиру, и в процессе упаковки вещей нашла мой первый компьютер. Это советский клон ZX Spectrum 48K.
Мама поинтересовалась нужен ли он мне, или его можно выкинуть. Через полчаса я был на месте, а в мои влажные ладошки вернулся мой любимчик. Комплектность была полная: блок питания, кемпстон джойстик, кассеты, книги.
Дорогой читатель может возмутиться: "Позвольте! А где же разработка?". Терпение, господа! Ни одна разработка не может быть завершенной без тестирования на железе.
Подключение спека к телевизору было проблемой еще в 90-е, а сейчас подключить DIN разъём отдельный квест. Следует сказать, что я знаю с какой стороны браться за паяльник, хотя и далёк от схемотехники и радиоэлектроники.
Google указал мне единственно приемлемый для меня путь - GBS8200. Китайская штуковина могёт RGB преобразовывать в VGA.
Свободного пространства в корпусе компьютера было много, и плата конвертера как раз вмещалась. Пришлось навесить три конденсатора и потыкать проводами чтобы понять распиновку DIN разъёма, но результат был достигнут!
В ожидании доставки конвертера я впал в ностальгию и начал интересоваться как обстоят дела в мире спека. Оказалось, что весьма неплохо. Проводятся даже конкурсы для новых игр. Собственно YRGB2019, и предстоящий YRGB2020 и натолкнул меня на идею написать игру, а заодно и закрыть гештальт.
В детстве я баловался созданием своих игрушек (как и все у кого был спек), посему было решено разработать игру, но серьезно, профессионально, если угодно.
ASM был отвергнут мной изначально, по причине его незнания. Поиск привел меня на страницу ZXBasic.
Ну, вот мы и подошли к теме.
ZXBasic это SDK для разработки софта на диалекте FreeBasic с возможностью использования ассемблерных вставок.
В качестве среды разработки может использоваться любой текстовый редактор. Желательно выбрать тот, что имеет возможность подсветки синтаксиса, как, например, Notepad++ или Vim. Однако, в последствии я перекочевал на Visual Studio Code.
Для ZXBasic на VSCode есть плагин, который позволяет подсвечивать синтаксис.
Сборка проекта выполняется с помощью консоли. Последнюю версию компилятора можно взять здесь. Пример команды на компиляцию выглядит так:
C:\Projects\ZXSpectrum\zxbasic\zxbc.exe -O4 -o "C:\Projects\ZXSpectrum\Red Raid The Infiltrating\Red Raid The Infiltrating (Side B)\RRI Side B.tap" -H 128 --org 24576 -t -a -B "C:\Projects\ZXSpectrum\Red Raid The Infiltrating\Red Raid The Infiltrating (Side B)\program.zxbas"
Мои проекты состоят из трех частей: сам загрузчик, заставка и код игры. Поэтому после успешной компиляции я вызываю следующую команду, чтобы собрать всё в один tap-файл (тапок):
cd "C:\Projects\ZXSpectrum\Red Raid The Infiltrating\Red Raid The Infiltrating (Side B)"
copy /b loader.tap + screen.tap + "rri side b.tap" "Red_Raid_Infiltrating_B (EN).tap"
Ну, а далее остается только вызвать собранный тапок в эмуляторе (я использую FUSE), чтобы убедиться, что все работает:
@Echo off
if %ERRORLEVEL% ==0 (
"C:\Program Files (x86)\Fuse\fuse.exe" "C:\Projects\ZXSpectrum\Red Raid The Infiltrating\Red Raid The Infiltrating (Side B)\Red_Raid_Infiltrating_B (EN).tap"
) else (
pause
)
У меня есть bat-файл, содержащий вышеперечисленные команды, который все это делает автоматически.
Во время компиляции в консоли будут выведены ошибки и предупреждения, которые помогут при отладке.
Теперь о грустном.
1. Проверки синтаксиса налету нет.
2. Call Stack тоже отсутствует.
Но, ведь это слишком мало, чтобы нас остановить. Верно? Как известно, русский человек любит создавать себе препятствия, а потом с успехом их преодолевать. Тут же они уже имеются, а потому далее все должно пойти проще.
Вывод графики на спеке осуществляется с использованием UDG. Суть в том, что у нас имеется 21 символ, который мы можем переопределить, а затем выводить на экран.
Для рисования спрайтов я использую Paint.NET.
Остаётся только преобразовать спрайт в удобоваримый для спека формат. Представьте, что спрайт - это таблица, а пиксели это ячейки. Всё что нам нужно, это заменить черные пиксели на ноли, а светлые на единицы. В результате получим строки, состоящие из нолей и единиц. Это бинарный код. Его можно вводить как есть, но лучше преобразовать это в десятичный формат и обернуть в ассемблерную вставку. Для этого я использую софтинку собственной разработки.
Со спрайтами разобрались. Надо бы добавить звуков. В случае с 48К воспроизводить музыку во время геймплея геморройно. Дело в том, что проигрыванием звуков занимается процессор, а он там один. Поэтому, или играем музыку или обсчитываем логику игры.
Конечно, можно воспроизводить ноты малой длительности (желательно фиксированные), а в интервалах перемещать спрайты, опрашивать клавиатуру и обсчитывать логику. Надо ли говорить, что музыка с одинаковыми по длительности нотами и фиксированным ритмом выглядит более, чем уныло. Пример тому, любимый буржуями, Manic Miner. Так что подумайте дважды, так ли вы ненавидите человечество, что готовы его истязать подобными трелями.
Воспроизведение приемлемой, с точки зрения нормального человека, музыки возможно в играх, где нет активной отрисовки спрайтов, а также там, где можно сбалансировать время на обсчет логики и вывод звуков, скажем какой-нибудь покер или шахматы.
Для написания музыки можно использовать Beepola.
Нечто подобное я попробую реализовать в четвертой игре, которая сейчас в разработке.
Спрайты есть, движок есть, музыка для меню есть, в геймплей тоже звуков напихали. Что еще?
Заставка!
Загрузочный экран, пожалуй, одна из тех немногих возможностей, где игроделы могли оторваться по полной! Для создания заставок я использую ZX Paintbrush.
Я предпочитаю рисовать в векторных редакторах (если требуется), потом собирать растровую графику в Paint.NET, а потом сохранять в png-формате и импортировать в ZX Paintbrush. Допиливать уже можно непосредственно в нём.
Для дизайна уровней в платформерах рекомендую использовать Tiled.
Для работы с исходниками я использую SVN. Очень удобно, даже в случае индивидуальной разработки.
Готовый тапок обязательно запустите на своем спеке. И если скупая мужская слеза не прокатится по трехдневной щетине или не появится комок в горле, который провалится только после глотка холодного пива в честь завершения проекта, то у Вас нет сердца, но появился новый враг!
Ну, вот собственно и всё!
А всё ли?
Я описал инструменты, которые использую, но достаточно ли этого? Нет!
Вам должно быть реально интересно сделать игру! Вы должны быть увлечены настолько, чтобы не бросить все на полпути. Должна быть идея, история, которую Вы хотите рассказать. Нужно понимать, что Вы будете ограничены по всем фронтам: количество цветов, разрешение экрана, объем памяти, частота процессора. Поэтому, Вам нужно сделать игру такой, чтобы ни один из этих параметров не повлиял на геймплей.
Да! Именно!
Надо сделать так, чтобы далёкий от спека человек сказал: "А на хрена ты под древний комп это сделал? Можно ж под андроид и PC." В этой оценке не будет пренебрежения геймплеем или звуками, будет только непонимание в выборе целевой платформы. Не спорьте с ним. Вы всё сделали правильно. Люди, разбирающиеся в 8-ми битных платформах, поймут и оценят, а Вы закроете свой персональный гештальт.
И пожалуйста, очень прошу, не делайте порты или ремейки!!! Черпайте вдохновение в играх, фильмах и книгах, берите новые механики из современных игр, комбинируйте и реализуйте их на ретроплатформах, но никогда не идите там, где уже прошли толпы.
На этом, пожалуй, все. Написано на одном дыхании в качестве пробы жанра. Если зайдет, то может буду писать что-то типа девлога о новой игре. Только вот как оценить, что это Вам надо? Скажем, если наберет статья 150 лайков, то продолжим. Идёт? :)
Всем удачи и добра.
С уважением, Сергей.
P.S. Не устаю попрошайничать и зазывать новых подписчиков к себе на канал.
P.P.S. Ну, и в качестве бонуса:
Господа, ZXBITLES приветствует Вас!
Привет моим девяти подписчикам!!!
Меня зовут Сергей, и в этой статье я расскажу о заключительной игре в трилогии Red Raid.
В предыдущих сериях: трилогия повествует о Рэдрике, главном герое, управляя которым, игроку предлагается пройти череду приключений на земле, под водой и на Марсе. Я уже писал о первых двух играх на DTF и тут.
Перед тем, как перейти к самой игре, я хочу поделиться новостями. Первая игра "Red Raid: The beginning..." была выдвинута в номинации Basic на GOTY 2020 (Game Of The Year 2020). Не скрою, что мне это очень приятно.
Вторая новость в том, что у нас новый музыкант, известный как utz. Это талантливый человек, который пишет не только биперную музыку (Вы ее услышите в роликах ниже), но и биперные движки. Кроме того, он пишет стихи и занимается художественно фотографией. Зовут его Михаэль, и у него есть собственный проект Irrlicht Project.
Как известно, вторая игра "Red Raid: The sinking..." была удостоена второго места на конкурсе "Твоя Игра 6" по мнению жюри. Вместе с моим сыном мы решили передать 60% нашего приза в благотворительный детский фонд для детей, нуждающихся в лечении, а 40% - нашему бывшему музыканту, за написание двух биперных мелодий. Организаторы конкурса отнеслись к нашей просьбе с пониманием и воодушевлением. Отдельно благодарю Станислава Пискунова и Дмитрия Быстрова (Alone Coder).
И прикупил хороший микрофон и камеру, а также начал обустраивать студию для трансляций. Качество видео повысилось, но предстоит еще много. Неравнодушные могут проспонсировать.
Переходим к самой игре.
Напомню, что вторая игра заканчивается на том, что Рэдрик покидает тонущую подводную лодку на вертолете, в который проникает инопланетный паразит.
Зараженный паразитом, и находящийся под его полным контролем Рэд, прибывает на Марс. Игра, как обычно состоит из двух частей. В первой части игроку предстоит управлять паразитом, проникая в марсианскую базу все глубже и глубже.
Изначально паразит способен заражать людей и брать их под полный контроль для активации терминалов, а также выходить из них при необходимости.
В процессе игры становятся доступны новые способности. Первая из них это митоз. Использование митоза позволяет пришельцу расщепиться и управлять оригиналом и клоном поочередно. Некоторые препятствия пройти без митоза невозможно.
Вторая способность это контроль мозга. Используя её, паразит может получать контроль над врагами, не вступая в непосредственный контакт.
Третья способность - плевание кислотой. Помимо очевидной полезности в выпиливании новоиспеченных марсиан, это позволяет паразиту разрушать стены (разрушаемое окружение на спеке!) и проникать в закрытые помещения, делать собственные проходы в породе и даже уничтожать землю под ногами врагов, роняя их в лаву.
Четвертая способность это симбиоз. На последнем уровне первой части паразит обнаруживает контейнеры с человеческими эмбрионами. Вот тут-то и потребуются образцы ДНК, которые он собирал по ходу игры. Необходимо создать симбионтов, пресекая возражения охранников капсул.
Следуя канонам жанра, происходит смена кадра и мы видим пришедшего в сознание Рэдрика. Он подползает к аптечке, встает на ноги и всем видом показывает нам, что намерен внести ряд правок в планы паразита.
На этом заканчивается первая часть игры.
Вторая часть начинает Рэд, полностью экипированный с карманами, набитыми под завязку патронами и гранатами. Да! В этой части Рэд может кидать гранаты!
На легком уровне сложности достаточно единственного выстрела, чтобы разбрызгать пришельцев. Кроме того, можно покинуть уровень, не уничтожая всех паразитов. На нормальном уровне сложности необходимо два прицельных выстрела, а на сложном - три. Покинуть уровень с живыми паразитами не выйдет. Даешь total annihilation! Впрочем, одной гранаты хватит с лихвой на любом из уровней сложности для мгновенного сокращения популяции суетящихся слизней.
В игре 3 ачивки, что мало по сравнению с предыдущими играми, надеюсь, что разнообразие геймплея и уровней компенсирует это.
Статью и видео я старался создать так, чтобы не раскрывать сюрпризов, но заинтересовать. Поверьте, в игре есть немало эпизодов, которые Вас заставят и посмеяться, и понервничать, да и голову поломать.
На этом, пожалуй, всё.
Добавлю лишь, что скоро будет релиз игры на кассетах в Европе и РФ. На территории Европы этим займется Matranet.net, ну а тут мы своими силами управимся (пишите на zxbitles(at)gmail.com, если хотите пополнить свою коллекцию кассет с играми, или просто поддержать). Спустя некоторое время игра будет доступна на нашем сайте в открытом доступе, как и две первые.
Таким образом, я хочу отблагодарить спонсоров, предоставив им ранний доступ, и подогреть интерес в сообществе.
Я думаю, что игра заканчивает трилогию на хорошей ноте и она явно не хуже предыдущих.
На этом всё! Благодарю, за уделённое время и с удовольствием отвечу на вопросы и комментарии.
Всем удачи и добра!
С уважением, Сергей.
P.S. Подписывайтесь на наш канал на YouTube! Это помогает нам и стимулирует на новые проекты!
В качестве референса использовалось фото: @da6869
За неделю:-переделал анимацию покоя-нарисовал анимацию бега-поиграл в майнкрафт
Одно из ранних мегадемо для ZX Spectrum. Выпущено группой ESI (Польша) 9 августа 1991 года (точная дата указана в последней части демо). Появление этой демонстрации оказало сильное влияние на развитие демосцены на ZX Spectrum в России.
Демонстрация была опубликована на стороне B кассеты, прилагавшейся к журналу Sinclair User #118 и #119. Также ей были посвящены две очень коротких заметки в этих номерах журнала.
Не везёт Балу. Несколько раз терял самолёт за долги. "Нырок" цепко держала в своих лапках Ребекка, а Балу приходилось на неё работать.
А что, вообще, это был за самолёт?
Собственница компании "Заплати и лети" эксплуатировала Conwing L-16. Именно так называется эта модель в мультике. В реальности такого самолёта не существовало, а мультипликаторы вдохновлялись несколькими моделями.
Кстати, в одной из серий "Алладина" есть смешная отсылка к "Чудесам на виражах". Джин ненадолго превращается в Балу и летит на "Нырке".
Уверен, многие любят "Чудеса на виражах" ещё и за игры. Игр было сделано несколько.
Первая - для восьми бит. И в ней Балу летает на каком-то смешном самолётике, в котором ему явно тесно.
Вторая для 16 бит.
В ней уже есть и "Нырок".
Ну и ещё одна унылая игра для платформы TurboGrafx-16, которая ещё известна под именем PC Engine. У нас распространения не получила.
О-ри-е! Чудеса!
О-ри-ё! В небесах!
Телеграм канал про кино и сериалыХочу выразить благодарность @sipelgas.22 за то, что наткнулся на сообщество пиксель арт художников на pikabu. Я не рисую pixel art на постоянке, как собственно и иллюстратором меня можно назвать с натяжкой. Я пошел по другому пути - пути дизайна. Но, как и всем рисующим людям, мне время от времени тоже хочется заняться творчеством. В прошлом году нашел для себя два челленджа: octobit и blocktober (это как inktober, только для pixelart артистов). В общем частью работ из них я и хочу поделиться с вами. Возможно вам и не очень интересно будет смотреть именно мое творчество, зато, я думаю, вы найдете что-то интересное для себя по соответствующим хештегом в инстаграмме.
Pixelart
(на самом деле как минимум 16-битные, но всё равно весьма олдскульно!)
Отсюда - https://redd.it/i67esa
года 4 назад выкладывал сюда гифку, сегодня решил добавить звук)
Продолжаю смешивать 8-битную чиптюн музыку с металом на этот раз в более релаксирующем ключе. Именно эта композиция должна была первой войти в предыдущий альбом, но все как обычно пошло не по плану, и только спустя 2 года я нашел смелость ее закончить.
Ссылки на скачку я оставлю в комментарии.Всем привет! Это мой первый пост в Пикабу, и просьба сильно не пинать, если сделал что-то по моветону, а указать на косяки в комментариях, дабы следующие мои посты отличались большей благочинностью, и ласкали взор.
Итак, недавно я пересмотрел свои жизненные ориентиры и понял, что хотел бы посвятить свою жизнь разработке никому не нужных инди-игр, увлекся пиксель-артом, и начал думать о своей первой игре. Но пред этим решил размяться, и попытаться сделать что-то, что не оставалось бы на страницах черновиков и в файлах под названиями: Безимени-1.psd; Безимени-2.psd и т.д.
Волею судеб на просторах известной социальной сети, я встретил человека по имени Василий, который делал первые шаги в программировании. Познакомившись, мы решили придать пиксельный лоск драм-машине, которую он когда-то сделал.
После того, как оформление было готово, Василий призадумался о том, что неплохо бы дать машине аутентичных звуков, и по его словам, без особых надежд он написал магнитогорскому чиптюнеру Dhara Vara, который, к счастью, тоже решил влиться в тему, и аранжировал звуки для нашей восьмибитной драм-машины.
Вот такой получился результат, можете пройти по ссылке https://grindpride.github.io/UrbanBeat.html и пожамкать кнопки :)
Управление как мышью так и клавишами. Верхние два ряда кнопок можно зажимать. Басы можно зажать только одни. Ползунком справа можно регулировать уровень громкости.
Спасибо за внимание!
P.S. Пользуясь случаем, если кому нужна помощь в оформлении игры, пишите мне ;)