Что такое игры денди на
Привет, в детстве при покупке приставки Денди в комплекте как правило шел картридж с простенькими играми, которых на этом картридже могло быть очень много, такие картриджи мы называли просто - многоигровками. Вот о таких играх мне мы хотелось вам рассказать!
1. Yie Ar Kung-Fu.
Эта игра была первым файтингов в который я играл вообще и тогда она мне очень нравилась, несмотря на свою простоту игра затягивала.
Игра вышла в свет в год моего рождения в 1985 году. Главный герой игры молодой боец по имени Ли, у которого довольно скромный арсенал ударов. Ли может бить только рукой и ногой, но в двух вариантах. Присев, тогда удары идут по нижней части тела противника и в стойке, но самый крутой удар это ногой в прыжке.
Ли сражается голыми руками, а вот его оппоненты практически всегда будут использовать какое то оружие. Например, первый противник Ван будет вооружен палкой. Второй, по имен Тао будет метать в вас огонь, третий, Чен вооружен длинной цепью. Кстати победив его вы попадаете на бонусный уровень, в котором можно проверить свои навыки и мастерство, отбивая летящие предметы. Четвертый уровень представлен быстрой и ловкой женщиной ниндзя по имени Лэн, ну и последний сумоист по имени Му, его коронка удар на лету. Пройдя всех врагов начинается новый круг в котором будут те же противники, но сложность их повышается.
Игры для NES/Famicom/Денди глазами программиста
Это пост про ограничения старых видеоигр. Сам я под NES никогда не программировал, но с архитектурой поверхностно познакомился. Теперь я не могу играть в игры для NES, не задумываясь, как же они устроены. Иногда это на столько вызывает восхищение, что невольно забываешь про саму игру. «Чему же там восхищаться?», — скажете вы. Да просто укладываться во все ограничения NES, но при этом делать игру красивой, — это действительно целое искусство.
Сейчас я постараюсь рассказать об этом вам, максимально всё упростив.
На NES всё отображаемое на экране делится на спрайты и фон. Спрайты — это объекты, которые двигаются по экрану. Как правило, это непосредственно ваш герой и враги. Иногда это ещё какие-то предметы, но тут всё уже сильно зависит от игры. Фон — это собственно то, что находится позади. И у спрайтов, и у фона есть уйма ограничений.
Фон на NES делится на квадраты размером 8 на 8 пикселей, которые называются тайлами. Итого таких квадратов 30 в высоту и 32 в ширину. При этом фон может плавно двигаться горизонтально и/или вертикально.
Во многих играх, особенно старых, можно заметить, что игра состоит из таких повторяющихся квадратов. Вспомните Super Mario Bros., Bomberman или Battle City. Дело в том, что в память NES можно загрузить одновременно весьма ограниченное количество таких рисунков, поэтому приходилось использовать одни и те же повторно.
Помимо этого существенные ограничения накладывались на цвета. Всего NES может отображать около 53-55 цветов, учитывая повторяющиеся и похожие. По тем временам это было не так уж мало, но всё не так просто. Используются такие штуки, как палитры:
- Палитра — это набор из четырёх цветов, т.е. какие-то четыре цвета из этих 53-55 цветов
- Таких палитр для фона может быть только четыре, при этом один цвет в каждой из них должен быть одинаковым
- Каждая группа из четырёх тайлов (2x2) отображаемых на экране может быть ассоциирована с одной из этих палитр
Это может быть не так просто понять с первого раза. Попробую объяснить на пальцах. Взгляните ещё раз на картинку выше. Каждый квадратик раскрашен не более, чем в четыре цвета. При этом они делятся на три типа: чёрно-бело-голубые, черно-зелёно-голубые, чёрно-коричневые. Возможно, что используется и четвёртый, но я не заметил.
Цвет помеченный звёздочкой постоянно меняется, так монетки и вопросики мерцают. Да, монетки — это часть фона. И именно поэтому облака и кусты — это один и тот же рисунок: тайл один, палитра выбрана разная. Сэкономили немного памяти, но ведь совсем незаметно с первого взгляда.
Как я уже говорил, фон может двигаться. Для этого обычно используется мирроринг, но в эти подробности я вдаваться не буду. При этом есть возможность разделить экран на две части и двигать их отдельно друг от друга, именно так обычно делается неподвижная строка с информацией о жизнях, здоровье, очках и прочем.
Спрайты
Если вы разобрались с ограничениями фона, со спрайтами всё будет легко. Суть в том, что это движущиеся на экране объекты размером 8x8 или 8x16 пикселей. Причём они все одновременно должны быть либо 8x8, либо 8x16, что накладывает несколько других ограничений. В лучшем случае (зависит от размера) всего их может быть аж 64, но на одной строке может отображаться не более восьми, даже если соответствующая область спрайта прозрачная, поэтому слишком много подвижных объектов не сделаешь. Правда, некоторые игры всё-таки делают, заставляя один из спрайтов исчезать на долю секунды, что приводит к неприятному мерцанию. Наверняка многие замечали такое. На цвета наложены примерно те же самые ограничения, что и для фона, но для спрайтов даются отдельные четыре палитры, один из цветов при этом считается за прозрачность. То есть получаем всего три цвета + фон…
Луиджи же — это просто Марио с другой палитрой. Обратите внимание — у Марио рукава, глаза, волосы и усы одного цвета. Именно поэтому у Луиджи глаза, волосы и усы стали зелёными.
Как же так получается?
А теперь взгляните на игры для NES, учитывая описанные выше ограничения. Как же так получается, что фон может быть только из 13 цветов, но многие игры запомнились очень красочными? Как же при таких маленьких спрайтах мы сражались с огромными боссами? Игры начинают выглядеть совсем иначе.
Например, Chip and Dale 2:
Всё весьма красочно и разноцветно, при этом разработчики вписываются во все ограничения.
Как только мы доходим до второй половины уровня, появляются новые цвета:
Просто в момент, когда мы переходим в другую локацию, и экран темнеет, в память загружается уже новые палитра и тайлы. Так создаётся впечатление, что игра гораздо более красочная, чем она есть на самом деле: эти самые 13 цветов достаточно часто меняются от уровня к уровню.
Выше я описал, что фон может делиться на две части, которые движутся отдельно. Именно так сделана начальная заставка, где летит дирижабль Толстопуза:
Колючая проволока внизу движется с одной скоростью, фон с другой, сам дирижабль — это спрайт, который движется с третьей скоростью. Так создаётся иллюзия объёма.
Бывают и совсем другие приёмы. Посмотрите внимательно знаменитую заставку Megaman 2:
Окна и выступы — это спрайты, а само здание представляет из себя фон из просто вертикальных линий, движение которых отследить невозможно:
На самом деле здание движется с той же скоростью, что и город на фоне, но это незаметно. При этом за счёт движения окон складывается впечатление, что здание движется всё-таки гораздо быстрее, а это соответственно создаёт ощущение того, что оно ближе.
Кстати, некоторые спросят, почему у самого Мегамена так много цветов? Да просто на самом деле он состоит из нескольких спрайтов: лица и тела, которые накладываются друг на друга:
А теперь подумайте — как же делались большие подвижные боссы, учитывая все ограничения на количество спрайтов? Ответ прост: такие боссы обычно на самом деле являются фоном. Именно поэтому при битве с ними фон зачастую либо чёрный, либо просто одноцветный. Вот пример из тех же Chip and Dale 2:
В первом случае такой фон двигается вертикально, во втором горизонтально. Думаю, что вы и сами вспомните очень много боссов на чёрном фоне.
В некоторых играх вроде Jurassic Park делают ещё хитрее:
Босс — это всё-таки фон, а вот кустики и камни на фоне — это спрайты. То есть всё шиворот навыворот! И да, спрайт может быть позади фона. Именно поэтому когда персонаж проходит через кусты, они иногда просвечивают сквозь него.
Кстати, у этой же игры в заставке надпись «Ocean» большая, движется в разные стороны с разной скоростью, а потом и вовсе отображается волнами:
Тут всё совсем хитро. Игра отслеживает момент, когда на экране телевизора дорисовывается сканлайн (горизонтальная линия), после чего сдвигает фон по горизонтали. Таким образом можно получить эффект вроде горизонтальных волн.
Продолжать можно очень долго. Любая достаточно серьёзная игра напичкана самыми разными такими «фокусами», которые выжимали из NES гораздо больше, чем было задумано изначально. Надо сказать, что многие из этих ограничений можно было снять, установив в картридж с игрой дополнительные чипы. И это весьма активно делали, в итоге картриджи могли весьма сильно отличаться с аппаратной точки зрения, но тогда нужно было не забывать и об итоговой цене производства, поэтому разработчики не очень сильно себя баловали.
Не стоит забывать и про ограниченные звуковые возможности, но это не так наглядно. Скажу лишь то, что для создания приятной музыки при помощи такого железа действительно нужно было обладать музыкальным талантом. Game Boy был уже немного более продвинутым в этом плане и в результате породил целый музыкальный жанр и свою культуру.
Надеюсь, что теперь и вы будете смотреть на игры иначе, задумываясь о том, как же разработчикам пришлось поломать себе голову.
Как писались игры на Dendy
Этой статьей я хотел бы немного пролить свет на то, как создавались игры на Dendy. Причем речь пойдет не о том, как это можно делать сейчас, а как это происходило тогда — в 80-е и 90-е годы, и о том, с какими проблемами сталкивались разработчики в то время. Если вам наскучило читать очередные воспоминания менеджеров, дизайнеров, или программистов, переквалифицировавшихся в менеджеров, которые раскрывают техническую сторону дела чуть менее чем никак, то добро пожаловать под кат.
Тогда и сейчас
В наше время разработка для игровых приставок все больше напоминает написание программ для обычных компьютеров, разница между тем что творилось тогда и тем, что имеет сегодняшний разработчик колоссальна. С одной стороны, сегодня, технологии и культура разработки шагнули далеко вперед, позволив вести разработку на языках высокого уровня, с другой — в 80-е фирмы, выпускающие приставки, еще не до конца понимали что следует дать сторонним разработчикам для создания игр. И поэтому если сейчас для очередной playstation можно получить документацию, пяток демо-дисков, а также мощную девелоперскую станцию, по сути гибрид самой приставки и компьютера общего назначения, пригодного для непосредственной разработки, то например в 80-е многие разработчики довольствовались книжечкой со спецификацией консоли. А вот за аппаратной частью приходилось идти на радиорынок (или что там было в штатах вместо них?).
Немного истории
Принято считать, что изначально была создана Nintendo Entertainment System (NES), с которой уже была спирачена наша Dendy и десятки других клонов по всему миру.
После взгляда на картинку видно, что это, возможно, не совсем так. Изначально, в Японии в 1983 году, все-таки была выпущена консоль Famicom. В любом случае существовало 2 незначительно отличавшихся консоли — NES и Famicom. И разработка для них тоже велась разными инструментами, хотя программный код игр в картриджах для обеих был одинаков. Несколько различались сами картриджи. В случае NES на картридже присутствовало несколько дополнительных контактов, которые вели к чипу, который в теории должен был быть только на лицензионных картриджах…
В далеком 1983 году Nintendo могла только мечтать о сторонних разработчиках для новоиспеченной консоли. Так что первые несколько игр были созданы самими авторами консоли. Некоторые из них были портами игр, уже существовавших на аркадных автоматах. Эти игры отличались примитивностью даже по меркам NES, не используя всех возможностей ее аппаратной начинки. Все игры того стартового периода умещались на один экран и не занимали более 32 килобайт данных на картридже. Наиболее известные игры того периода: Donkey Kong, Balloon Fighter, Mario Bros. Ирония заключалась в том, что NES имела специальную аппаратную поддержку для скроллинга уровней, но самые первые игры сайд-скроллерами не являлись, хотя и были выпущены компанией, которой сам бог велел, зная все особенности их консоли, выпускать игры, максимально подчеркивающие преимущества новой приставки.
Ограничение для размера NES-игр в 32 кб имело место только первые пару лет. Потом сторонние разработчики более-менее приноровились к консоли и поняли, что 32 кб хватит далеко не всем. Видя эту ситуацию, Nintendo решила сделать для всех новых картриджей маппер, позволявший создавать игры на порядок большего размера. Тут надо заметить, что сама архитектура NES не менялась, но менялись картриджи, расширяя возможности самой NES.
На картридж можно было засунуть все что угодно — любые чипы, которые душа пожелает: оперативную память, видеопамять, сопроцессор, энергонезависимую память для сохранений. Теоретически в картридж можно добавить такие вещи как модем или raspberry pi. Другое дело что для реализации этого потребуются титанические усилия, а также несколько свободных выходных.
Картриджи
Спецификации NES-картриджа до сих пор могут быть найдены в интернете, и, вообще, довольно подробно разобраны сообществом. Но сам процесс производства картриджей — это тайна покрытая мраком. Более менее достоверно известно что на территории Европы и США выпуском картриджей занималась исключительно Nintendo. В смысле, самих коробочек с микросхемами.
Набор микросхем увеличивался с годами, так что можно сказать, что с точки зрения разработчика спецификация самой консоли менялась, хотя менялись на самом деле картриджи. Эта особенность позволила NES быть популярной столь долгое время, конкурируя с другими игровыми приставками.
Каждый разработчик должен был явно указывать в заголовке скомпилированной игры(ROMа) перечень функций NES, которые будут использованы игрой. Некоторые функции поддерживались «обычными» картриджами — например маппер памяти, а вот за наличие сохранения или лишней оперативной памяти приходилось доплачивать Nintendo, чтобы та включила заветные чипы в ваш будущий картридж.
В Японии были компании, которые сами занимались изготовлением картриджей, попутно добавляя в них собственные уникальные чипы, создававшиеся под одну конкретную игру. Впоследствии подобные вещи в себе съели немало нервных клеток у тех, кто создавал эмуляторы NES, пытаясь заставить работать в своем детище и такие игры.
Архитектура картриджей подразумевала что сама программа и графические спрайты находятся в разных чипах. Вот например фотография картриджа Super Mario Bros.
В тех картриджах, что продавались у нас, подобные чипы использовались обычно только в тех, что шли вместе с консолью, и то не всегда. В пиратских картриджах использовались черные кляксы вместо чипов, скорее всего это были те же схемы, но изготовленные по другой технологии. По какой? Думаю в комментариях вы найдете ответ на этот вопрос.
Оборудование для разработки
Сведения об официальном SDK от Nintendo весьма скудны, настолько, что я уже склонен считать, что его просто не было. Т.е. в сети есть пара фотографий подобных юнитов, но нигде не сказано что они были выпущены Nintendo, более того — их вид говорит о том, что это были скорее всего поделки конечных разработчиков. Так что все, что было доступно — спецификации, а дальше каждый разработчик крутился как мог. Самодельное же оборудование для разработки делилось на 2 класса: видоизмененные картриджи с перезаписываемыми банками данных и отладочные станции.
В первом случае все относительно просто — в обычном картридже банки данных и графики заменялись на схожие чипы с возможностью многоразовой перезаписи. Нельзя сказать, что разработка с таким инструментом радовала — после каждой перекомпиляции картридж приходилось прошивать заново. И да, несмотря на малый объем программ, скорость прошивки была невелика, учитывая оборудование и мощность компьютеров того времени. Тем не менее этот девайс в нескольких экземплярах был неизменным и часто единственным орудием программиста.
В случае RAM-картриджей разработка шла гораздо быстрее. Можно было редактировать память прямо в процессе игры, используя для этого компьютер, на котором, собственно, и велась разработка. Чип EEPROM заменялся на банки оперативной памяти, которые с одной стороны виделись консолью как обычный картридж, а с другой стороны подключались к компьютеру разработчика и были для него обычной оперативной памятью… или диском… или устройством — все зависело от того, какой именно драйвер программист писал для своего детища.
Наиболее упорные или удачливые разработчики могли похвастаться отладочными станциями — модифицированными NES, которые вдобавок ко всем плюсам RAM-картриджей давали еще и возможность проводить глубокую отладку, просматривая содержимое видеопамяти, регистров процессора и т.п. Вот например одна такая станция.
На каких компьютерах проходила разработка — неизвестно, но, учитывая тот уровень возни с радиодеталями, который требовался чтобы запустить отладочную версию игры на приставке, особого значения модель компьютера не имела. Точно известно, что японские разработчики применяли компьютеры MSX. С большой долей вероятности можно сказать, что в США применялись компьютеры Apple 2, ввиду того, что они были довольно распространены, а также имели процессор, аналогичный используемому в NES.
Программное обеспечение
Основной и практически единственный язык программирования использовавшийся для разработки игр — ассемблер, некоторые счастливчики писали на С, если могли достать компилятор. Но даже в этом случае, некоторые фирмы не покупали у Nintendo ассемблер а писали свой собственный. Чем это было вызвано сказать тяжело, но многие источники говорят о том, что в первые годы существования NES Nintendo не делилась своими инструментами со сторонними разработчиками.
Процессор, который использовался в NES, также имелся и в компьютерах вроде Apple 2 или Commodore 64, для которых были и свои ассемблеры и даже компиляторы С. Но архитектура NES все же имела некоторые отличия, а дикие системные ограничения и наличие банкинга(необходимости выгружать старые и загружать новые куски программного кода в область доступную процессору) не давали возможности писать на С игры, которые бы использовали максимум возможностей консоли.
Ассемблер — далеко не единственная вещь, которую приходилось писать вручную: редакторы графики, программаторы, отладчики: все это было написано по несколько раз заботливыми руками программистов. Отдельной статьей можно считать редакторы карт — следует помнить, что компьютеры были слабы и малопамятны, так что, например, вся карта для Metroid была нарисована вручную на бумаге, а потом уже кусками кодировалась в игру.
Процесс разработки
В разработчики часто набирали вчерашних студентов, не видевших NES в глаза. Для львиной доли мелких компаний создававших игры как нельзя лучше подходил термин «шарашкина контора». Типовая игра занимала 3-6 месяцев времени на разработку. Команды чаще всего были небольшими — 3-10 человек. Было много контор, которые выпускали 1 игру и потом исчезали без следа.
Процесс разработки обычно начинался с создания инструментов для разработки. Хотя концепт игры к тому времени был уже готов. И вообще, в первые годы многие игры для NES были портами с аркадных автоматов. Даже если к программированию самой игры еще не приступали, за дело брались композитор и художник. Практически вся музыка и вся графика для дендивских игр были сделаны не на компьютере.
Сперва дизайнер рисовал эскизы бэкграундов и персонажей, затем, после отбора подходящих рисунков, начиналась так называемая пикселизация — палитра NES поддерживала только 14 цветов на экране одновременно, так что приходилось перераскрашивать рисунки с учетом этого ограничения. Затем рисунок расчерчивался по сетке, и при необходимости растягивался или сжимался — NES аппаратно поддерживала спрайты размером 8x8 пикселей. Персонаж Марио рисовался в 4 прохода, после съедания гриба — в 8 проходов. Мелочь, но иногда из-за ее игнорирования мы видели в некоторых играх пропадающие спрайты, когда на экране становилось очень много врагов, так что программистам приходилось экономить и на спичках. Кстати видеопамяти было 2 вида — одна, в которой обычно хранились спрайты персонажей и прочая мелочевка, вторая, побольше в которой хранились карты уровней. Последняя находилась в отдельном адресном пространстве и поддерживала аппаратно ускоренные операции по скроллингу.
Работа композитора плавно перетекала в работу программиста — написать музыку это только часть дела, закодировать ее в игру — тоже дело наживное, а вот затем начиналось самое интересное. Как было сказано выше, иногда игра подтормаживала, так что если в предрелизе такие тормоза достигали небывалых показателей, то композитору давали задачу «оптимизировать» музыку — убрать лишние опкоды, чтобы ускорить работу игры в целом. Тут-то и выяснялось истинное мастерство композитора. Лишнюю монетку в копилку позора композитора добавлял тот факт, что далеко не всегда разработчик игр по фильму получал лицензию на… использование музыки из фильма. Таким образом композиторам приходилось писать что-то оригинальное, и далеко не всегда хорошее.
Среди игр для NES был распространен так называемый репэкедж — это когда на базе одной игры делают другую меняя спрайты и уровни, иногда немного меняя сам игровой процесс. Например Castlevania и Ninja Gaiden сделаны на одном движке, также как и Darkwing Duck был сделан на базе движка для серии игр Megaman(Rockman). Каковы были истинные масштабы репэкджа мы можем только догадываться, особенно учитывая тот факт, что огромный процент игр на денди — однотипные сайд-скроллеры.
Разработчики
Меня конечно интересовало что же именно разработчики творили в те дни, но увы, именно этот вопрос так и остался без ответа. Программисты ни черта не помнят о том периоде. Т.е. они помнят какие-то организационные моменты, сложности возникавшие в команде, как они ели пиццу по выходным, как спешно искали работу программистом для NES, чтобы расплатиться с долгами, но не могут назвать марку компьютера за которым проводили бессонные ночи. И в целом можно сказать что их работа воспринималась как рутина, у них не было чувства, что они создают великие вещи, которые останутся в памяти многомиллионного поколения на всю жизнь.
Только потом, годы спустя они стали понимать значимость того, что они писали. И тогда им стало по-настоящему стыдно. Их можно было понять — зоопарк консолей того времени, невнятность их будущего, микроменеджмент в разработке — все это создавало впечатление того, что ты пишешь нечто непонятное, непонятно для чего, и непонятно с какими перспективами.
Среди компаний, как уже было выше сказано, было много однодневок — вроде тех, что сейчас пишут игры для айфонов, которые пробовали себя на этом рынке, разорялись, уходили в забвение. Огромное количество дендивских ромов вообще не содержит никакой информации о разработчиках, что говорит о весьма низкой оценке результатов своей работы со стороны программистов.
Удивительно, но остались и такие, что до сих пор продолжают разрабатывать игры, даже спустя 30 лет. Их можно найти в соцсетях, но после того как второй десяток попыток достучаться хоть до одного из них провалился, я бросил это бесполезное занятие. Впрочем список имен разработчиков, которые мне удалось выдрать из наиболее обширной коллекции ромов находится здесь.
Сегодня
Так что сегодня создать игру для Денди может любой студент, написавший, а не купивший код к своей лабораторной по предмету, посвященному программированию микроконтроллеров.
Игры Денди
Сложно представить, что еще совсем недавно для компьютерных игр нужно было покупать специальную приставку и отдельные лицензированные вкладыши. Игры денди были безумно популярны в 90-х годах прошлого столетия, и познакомили нас с удивительным миром яркой графики, задорной музыки и увлекательных заданий. Буквально в каждой семье имелась заветная игровая консоль, которая подсоединялась к телевизору, и позволяла как детям, так и взрослым насладиться задорными гонками, азартными драками и восхитительными приключениями.
Сегодня игры денди доступны онлайн и позволяют всем желающим прочувствовать непередаваемую атмосферу того времени. Старые герои снова в строю и готовы к выполнению самых оригинальных и необычных заданий. Ты встретишься с Черепашками Ниндзя, поучаствуешь в битвах Контры, перестреляешь врагов в танчиках и в очередной раз отправишься спасать мир вместе с Чипом и Дейлом. Также тебя ожидают таинственный Черный плащ, неунывающий Аладдин и, конечно же, великолепный супер-Марио!
На нашем сайте ты сможешь загрузить онлайн эмулятор денди, в который можно играть, не выходя из браузера. Выбирай любимую игру и отправляйся на встречу со старыми добрыми героями!
Добавьте игры на рабочий стол Вы можете добавить наши игры на рабочий стол, без скачивания, и играть не заходя в браузерЧитайте также: