Pull to refresh

Comments 40

UFO just landed and posted this here

Да, можно было использовать спрайты, но уже лень было заморачиваться.

UFO just landed and posted this here
UFO just landed and posted this here

Вот тогда разработчики действительно писали игры на совесть, не то что сейчас: накосячил, не беда высылай юзерам патч. Ещё и ограничения у консоли были жёсткие конечно

Благодаря возможности писать код на тяп-ляп очень сильно ускоряется и удешевляется разработка.
Скажем, я был сильно удивлён, когда узнал, что игру Galaga, которую сейчас любой школьник может написать за один вечер с нуля, делали целой командой несколько месяцев (!), причём эта команда не по вечерам работала, а впахивала полный рабочий день.
Когда читаешь подобные факты, поначалу возникает оторопь: на что там вообще можно было упороть столько человеко-часов?! А ответ на самом деле прост: на войну с железом. На обход всех этих ограничений. Например, у NES есть жёсткое ограничение по количеству спрайтов, а кораблей в каждой строчке явно побольше, чем позволяет вместить NES. Как они их туда впихнули без мерцания? Я не знаю — очевидно, там вовсю юзаются разного рода хитрые хаки, на изобретение которых как раз и уходило всё время.

Такую игру не напишет с ноля за один вечер не то что школьник, а 99,9 % профессиональных программистов. Я могу поверить если найдется человек, который прямо вот сейчас написал две три подобных игры, если ему кто-то нарисует заранее все спрайты и если кто-то пропишет скрипт, и если не будет требований к железу вот вообще совсем никаких (знаменитое "у меня работает"), тогда может быть и напишет за вечер.

Вообще, формально, школьник очень даже может.

Construct 2 и, вроде бы, GoDot уже оборудованы нужными шаблонами. Да и другие... хмм... конструкторы игр не отстают обычно. Требования к железу при этом крайне либеральные, на грани отсутствующих.

Наворовать спрайтов и музыки - 1-3 часа.

Подключить в готовый шаблон - 2-4 часа.

Повозиться с интерфейсом - ещё пару часов, если очень хочется.

И игого в Steam...

Я в школе на Delphi + фреймворк DGLE написал примитивнейший скролл-шутер реально за вечер. Без опыта подобных игр, это был первый эксперимент.


Да, я юзал готовые спрайты, звук и музыку. Но согласитесь, полный цикл такой игры как Galaga точно не "месяцы".


Кстати, игра до сих пор работает, чему я сам в шоке :-D Писал во времена Windows XP.


image

Дёшево и быстро не значит качественно

Проблема в том (в случае, например, с ПО), что пока вы пишете медленно и качественно, конкурент уже захватил рынок менее качественным продуктом. И если у него теперь задача улучшать продукт, то у вас задача посложнее — пытаться переманить пользователей, которые уже привыкли к продукции конкурента. А пользователь не любит что-то кардинально менять в привычках.

Вообще, и у первопроходца, и у догоняющих задача одна и только одна - получить прибыль.

Если надо (и можно, и потенциально выгодно) переманить качеством - почему бы и нет?

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

И вообще, если в нише уже кто-то есть, то что, не пытаться даже занять её самим, что ли? :) Нееееет, с таким уровнем оптимизма прибыль получить затруднительно...

Дёшево и быстро не значит качественно

Но что значит качественно? Отсутствие багов? Идеальная архитектура? А действительно ли она нужна заказчику?

Всё что имеет реальное значение - это отношение сколько ресурсов было затрачено на сколько ресурсов (прибыли) можно с этого получить. Если разработка идеальной архитектуры будет больше, чем принесет проект - такой не нужен проект. И даже выход 0-в-0 не будет интересен бизнесу. Бизнесу интересно, когда прибыль превышает затраты хотя-бы 20% в год, иначе проще деньги положить в банк под проценты, а не платить за разработку.

Поэтому качественно = не всегда хорошо.

Легко впихнули, потому что корабли "в строю" это не спрайты, а слой бэкграунда. Когда же корабль должен пикировать на игрока, он подменяется спрайтом, а в том месте, где был корабль, на заднике рисуется "тайл пустого места".

Вы путаете с Galaxian и Space Invaders.

Хотя вру, в Galaga такой подход тоже применяется.

UFO just landed and posted this here

Год назад я писал игру PONG Charged для БК 0010, только на отладку геймплея для двух игроков ушло несколько дней. Потом ещё на «интеллект» компьютерного противника (он меняется с каждым уровнем) два дня.

Не делаются хорошие игры за день. Даже на примитивных платформах с примитивной графикой. Хорошие игры от плохих отличает хороший, отлаженный геймплей.

Пассажи в стиле "раньше трава была зеленее"? :) Точно также раньше писали, вбиваете в ютубе glitches + название любой игры и смотрите баги. Наоборот, сейчас баги хотя бы исправляются за счет патчей, раньше же случайно нажал на середину крестовины в battletoads и персонаж ушел в параллельную реальность, только сбрасывать игру.

Кстати говоря, на оригинальных консолях нельзя было нажать на середину крестовины.

нажал на середину крестовины

Так это уже физический баг.

Поэтому музыка и играет с плавающей скоростью, ведь она завязана на это прерывание. И да, для запуска игр эмулировать эту эмулировать совсем не нужно, вот эмулятор fceux и не учитывает её.
С аналогичной проблемой я столкнулся, когда делал Unchained Nostalgia, и FCEUX меня тоже подвёл, из-за чего в одном из релизов скорость музыки плавала на реальном железе.

На замену FCEUX нашёлся эмулятор Mesen, у которого тоже крутой отладчик, а главное — точная эмуляция, то есть проблемы реального железа корректно воспроизводятся. Плюс есть ещё функция перемотки времени назад (как в Braid), что иногда бывает весьма полезно. Сидел на FCEUX и его предках более 10 лет, но как-то легко перешёл на Mesen, когда распробовал его фишечки, уж очень он хорош.

Это вам не на решётке или прости господи джаве оперативу засерать. Годнота!

А почему нельзя было вместе с переключением банков с графикой переключить еще и палитры? Получилось бы не 4 палитры на весь экран, а 4 палитры на четверть экрана, что улучшило бы и качество картинки.

Палитры внутри PPU, не в картридже. И их нельзя записывать во время отрисовки экрана.

Игра с цветами в композите - это давно известная тема в былые времена, а некоторые энтузиасты "разгоняли" CGA и до 1024 цветов при 16 изначальных (комбинируя разные хаки).

а ROM где нибудь можно скачать ?

На Гитхабе в релизах все семь версий.

Классно читать такую статью, всё захватывающе великолепно, куча-мала неожиданных препятствий, и их преодоление. А самое главное, всё было доведено до логического конца.
P.S. На Ютубе однозначно лайк и подписка! Даёшь 100 тысяч подписчиков!

Это надо в одном из семестров в вузе проходить, многоуровневая задача, тут тебе и комбинаторика и логика и разные технологии в одной куче.
И да, на экзамене просто втыкаем картридж в консоль и ...

А как часто читаются тайлы из картриджа? Если на каждое «упоминание» в nametable, то нельзя ли просто отдавать каждый раз разные данные? Тогда можно будет обойтись хоть вообще одним символом на всю nametable.

При каждом обращении, да. Да, можно так прям стриминг видео сделать, но это сильно выходит за рамки бюджета.

Каждый раз, как только я уже решаюсь окончательно отписаться от хабра, уставший от мелькающих статей про выгорание программистов с тонкой душевной организацией, стоматологию (WAT?) и зашкаливающего количества статей от первоклассников (например, как установить компилятор Си. На Линуксе. Из репозитория.), ровно в точный момент появлются такие шедевры!

Кластер молодец! Добра тебе и счастья!

Хабр, конечно, торт благодаря таким статьям.

Но заголовок, всё же, несколько некорректный.

Ни когда не писал комменты, но эта статья достойна такого жирного лайка, какого ни один комментарий не сможет заменить!
Какая же интересная работа получилась! Очень много интересного почерпнул для себя, в плане организации игр.

Особенно понравился момент, с визуальным контролем стирания микросхемы УФ излучением

Это не запуск на NES, а трансляция видео с помощью далеко не бюджетного железа.

Sign up to leave a comment.

Articles