Вперёд в СССР
2 поста
2 поста
Вот и пришло время вернутся к разработке игры. Была продуманна общая концепция самой игры, время действия зима:
Основное здание почти готово, остались только мелочи. На карте будет несколько зданий в которые можно будет зайти.
Подъезд на 4 квартиры, проект здания взят с реального дома, но некоторые комнаты и коридоров потребовали расширения и мелких доработок:
Так как размеры кухни в разных квартирах отличаются и для общего разнообразия, был создан набор кухонных гарнитуров.
Так же постепенно создаю необходимые пропсы для наполнения квартир:
Суть игры в том, что прошлое оставило свой отпечаток во, ты не можешь ничего изменить, можешь только наблюдать.
Спасибо всем кто поддержал! Теперь касательно самой игры:
Вы играете за длинноволосого парня, который бежит из города подальше от суеты. По дороге он собирает монеты и ключи. За каждые 50 монет вы получаете дополнительную жизнь. По дороге ему встречаются призраки, скелеты и говорящие камни. Он и рад бы с ним пообщаться но они слишком враждебно настроены и убивают с первого раза. Несмотря на это игра не сильно сложная, но местами нужно будет пострадать.
Геймплей:
Поиграть в эмуляторе:
Спаять картридж:
Плюнуть и купить готовый:
Вступление
Давно, когда я еще учился в школе, зимним вечером, пройдя очередной уровень марио я загорелся идеей - сделать свой платформер для игровой приставки.
Примерно через полгода у меня появился персональный компьютер с операционной системой MS-DOS и средой программирования QBasic:
Ну вот! Подумал я, настал мой час и сел писать игру в надежде что как-то придумаю как запихнуть эту игру потом в приставку денди.
Наивно, но тогда не было интернета и узнать, как вообще создавать игры и заливать их на картридж было довольно сложно.
Понятное дело, после некоторых попыток у меня толком ничего не вышло.
Да, у меня получилось сделать какой-то фон, персонажа и даже заставить его двигаться и на этом разработка игры была закончена.
Прошло почти 25 лет, у всех стало модно закрывать какие-то свои гештальты, решил закрыть и я.
Для начала нужно было ознакомиться с платформой и ее особенностями, а их как оказалось довольно много, как и у всей ретро-техники.
Железо
Знакомиться с платформой я начал буквально с "кишков микросхем, заказав плату, изучив схему и собрав это все чудо из рассыпухи, благо опыт работы с паяльником довольно неплохой.
Что мы имеем:
CPU - UA6527P/UA6527, Клон популярного в свое время 8-битного процессора 6502.
PPU - 6538/6528, Видеочип, аналог видеокарты.
RAM - 62256, 2 Кбайт оперативной памяти, которые позволяют использовать горизонтальный или вертикальный скролл по очереди, было бы 4 Кб можно было бы в теории и одновременно.
Звук - 2 прямоугольных канала, 1 треугольный, 1 шумовой и цифровой канал. Да-да, примитивная звуковая карта уже в те времена.
Разрешение экрана 256х240 и 54 цвета (Есть цвет чернее черного и еще некоторые цвета, которые лучше не использовать для избежания глюков на разных телевизорах).
Инструментарий
Писать код для приставки можно на двух языках: на ассемблере и си.
Я решил использовать си для короткого и удобного вида кода, но некоторые вставки ассемблерного кода пришлось писать с нуля (так как скорости процессора в 5,37 МГц всегда не хватало).
Для компиляции кода я использовал компилятор cc65, с опцией --add-source (добавляет ассемблерный код, в котором уже можно найти не очевидные косяки).
Для графики, кроме фотошопа использовал программу YY-CHR:
Для распиливания рома на прошивку, программу NRM.
Для статичных фонов есть очень удобная программа NES Screen Tool, которая позволяет нарисовать и выгрузить экран в массив байтов. Бонусом этом массив можно еще сжать RLE сжатием.
Для написания музыки и звуков я использовал FamiTracker и библиотеку FamiTone2.
Для создания уровней Tiled + самописный конвертер в встроенный формат карты.
Для схемы картриджа Sprint layout.
Для отладки лучше всего подходит эмулятор FCEUX:
Код игры
Но самая попаболь проблема, была в том, что я решил делать платформер а не статичную игру.
Сразу загрузить массив байтов на экран нельзя, потому что длинна уровня может быть от 3 до 256 экранов в длину.
Видеочип за один кадр успевает загрузить только 2 ряда блоков по 8 пикселей.
Еще за этот кадр нужно успеть прочитать состояние джойстиков, проиграть такт музыки, обработать коллизии, передвинуть спрайты на экране и т.п.
Для оптимизации я разработал такую структуру уровня. Где экран разбит на поле 16х16:
const unsigned char LEVEL1[] = {
...
0x75,
2,
ID_OBJECT,
...
};
Первый байт — координаты на экране x = 7, y = 5.
Второй байт — номер экрана уровня.
Третий байт — идентификатор объекта.
У каждого объекта есть атрибут коллизии, может игрок пройти через него или нет. На основе этих атрибутов строиться карта коллизии уровня.
unsigned char COLLISION[64];
Первые 32 байта, это первый экран NAMETABLE, вторые 32 байта для второго экрана NAMETABLE экрана.
Каждый бит, может быть, 0 если игрок может пройти и 1 если стена.
В итоге получаем два поля по 16х16 бит = 32+32 байта.
Картридж
Я не особо хороший художник, рисовать графику, уровни, спрайты, когда у тебя всего 4 цвета на плитку, уходит уж очень много времени.
Было решено упростить задачу и запихать все в один банк памяти.
Это позволяет использовать картридж без маппера и не писать дополнительный код, который переключает эти банки.
Из приставки можно реально выжать намного больше и красивее, но по трудозатратам эта игра будет на уровне современной игры с красивой графикой, стоит ли оно того?
Возможно, кто-то захочет этим заняться, и я поделюсь с ним своими наработками.
В итоге схемотехника картриджа сводиться к плате с 2мя микросхемами памяти, у которой нужно просто подключить ноги к шине данных картриджа.
Можно было бы, конечно, заказать у китайцев картриджи на каплях или флэш-памяти, но я хотел именно винтажного вида картриджа на DIP микросхемах (такие раньше попадались только в старых или дорогих картриджах)
Сами микросхемы найти не составило проблем, сначала я развел схему под w27c512, но как оказалось более объемная память w27c010 стоит дешевле и найти ее еще проще.
После того как пришли платы, я подготовил прошивку через NRM, прошил микросхемы в программаторе XGECU T48 и впаял их на место.
Распространение
Как продвигать игру, продавать картриджи и как их распространять: большой вопрос.
Также спрос на такие игры небольшой, даже если спрос и будет, то большую партию картриджей просто невозможно будет спаять.
Я крайне доволен своей работой, выпустить игру на физическом носителе для приставки 40-летней давности довольно крутая ачивка для разработчика игр.
И по традиции, страница игры... На авито?:
В картонной коробке:
Музыканты при деньгах пишутся на студии, музыканты без денег пишут унылую синтетическую музыку на VST плагинах.
А я решил пойти своим путем и запилить альбом в самодельной студии.
Так как официально я являюсь бомжом, моей студией стала картонная коробка, как дом для комбика.
Гитарой послужил старенький ibanez бережно экранированный, ибо блэк метал это хайгейновый стиль и хотелось бы слышать хоть что-то, а не только визг раненной козы.
Микрофон - обычная петличка, отрезанная и проложенная заново уже экранированным проводом.
Синтезатор - хотелось бы чтобы как у burzum в тюрячке, какойнить roland d50.
Но нет, все проще: Дешманский синтезатор из ашана!
Его всратость на уровне шедевральности, возможно даже китайцы сп**дили семплы у того же roland.
Ударка - Тут конечно ничего не поделаешь, пришлось забивать в FL Studio.
Послушать что получилось можно в Яндексе:
Или ВК:
PS. Донаты за пост не отключаю - Да, не круто. Но как-то за***ло бутылки собирать.
Давно я собирался сделать подобную игру, так как родился в СССР.
Я немного застал то время, и оно теплыми беззаботными воспоминаниями осталось в моем сердце.
Тогда была другая страна, другие цены, другие рубли, другие ценности...
Не буду утверждать, что было лучше или хуже, это тема для других постов, просто все было по-другому.
Но иногда прям хочется окунуться в ту атмосферу и прожить один-два дня, когда трава была зеленее, а батон стоил 13 копеек.
Прошлое время уже не вернуть, может наверное и не нужно, а вот поиграть в реалистичную игру с приятной атмосферой того времени очень хотелось бы.
Конечно, подобных игр уже сделали много, но это все это не то, что я хотел бы видеть.
Обычно это поделки из одних и тех же моделей, иногда крайне низкого качества.
А из крупных игр я могу вспомнить только атомное сердце и все.
Я не собираюсь делать супер-графику на Unreal 5, а обойтись приятной картинкой с хорошей оптимизацией.
В общем чтобы любой игрок мог поиграть на разном железе.
По сюжету пока ничего не скажу, возможно будет симулятор ходьбы или воспоминания главного героя.
Так что с сегодняшнего дня запускаю дневник разработки игры про СССР.
Сегодня я выпустил свой самый психоделический хоррор про приключение во сне. Спешу поделиться радостью и раздать немного ключей!
PQ7шесть8-LZMM7-MQHPZ
G6C24-7DMLпять-DXGMK
GM7I0-RIFAD-A7три9H
LDBHH-9T4Q8-Tдва6PM
IB9Cпять-FABIL-DAXVP
B7K4A-ANYVJ-7четыреYKN
7AXXT-36WJ5-дваFE2Z
NZY5E-AP4WI-C9два4M
FVDEдва-J7B6N-88DZA
9HEXF-F5D0M-QRтриAA
P.S. Если успешно активировал ключ, отпишись в комментариях, чтобы помочь другим.
Ссылка на игру: https://store.steampowered.com/app/3015400/MDNE/
Вечером на кухне с женой обсуждали как должна выглядеть игра про ночной кошмар.
Многие вещи мы видим во сне четко, а какие-то размыто. Странные действия имеют избыточную важность.
Важность, которая нужна во сне, в реальном мире оказывается полным бредом.
В ходе нашего разговора, мы решили использовать упрощенную графику, по типу ожившего рисунка из детства.
За несколько вечером она отрисовала простые, но мрачные спрайты и началась работа над созданием самой игры.
Для подготовки сюжета мне пришлось провести небольшой соц.опрос, какие кошмары чаще всего сняться людям.
Ответы чаще всего повторялись: Пауки, зубы, падение в яму, темные сущности и пр.
Это все будет в игре, но на втором плане.
А сам сюжет затрагивает тему дружбы, предательства, детских травм, воспоминаний. И немного древнегреческой мифологии...
Не стоит относиться к этому хоррору слишком серьезно, так как это скорее социально экспериментальная игра, которая возможно найдет местечко в чьём-то сердце.
Ссылочка на стим: https://store.steampowered.com/app/3015400/MDNE/
Я выпустил новую хоррор игру, и хочу поделиться этим радостным событием!
Раздам несколько бесплатных ключей к игре:
VFFчетыреL-B338Z-WI37F
53IZB-KNтриR4-XPNED
FNV5Y-MZ5VK-EALRдва
ETQXчетыре-XYFD9-HYZAJ
DM4XA-шестьIB9W-MCCR9
QMMIE-дваNM9P-0BIPM
TBJ5V-WXNTK-BтриXY7
9IтриEL-FCGNC-T04DA
XMJFC-FLAтри0-QW84G
Q83четыреK-TQER0-9BK9J
QE394-MKIIY-QJHшестьV
Огромная просьба - отпишитесь в комментариях какой ключ активировали.
Ссылка на Steam: https://store.steampowered.com/app/2999680/Lost_Estate_Agent/