На какой платформе были разработаны старые телевизионные видеоигры? [закрыто]

13

Мне очень хочется узнать, как развивались телевизионные видеоигры (в которые мы все играли в детстве) и на какой платформе.

Я знаю, как разрабатываются игры для мобильных устройств, ПК с Windows и Mac, но я не понимаю, как (в те времена) были разработаны Contra, Duck Hunt и все эти игры. Так как у них высокая графика и большое количество этапов. Так как же им удалось разработать игры в такой небольшой среде и с более низкой конфигурацией платформы?

Михир Палхивала
источник
3
Джордан Мехнер опубликовал источники «Принц Персии» для Apple II несколько месяцев назад: посмотрите здесь, если вам интересно.
Лоран Кувиду

Ответы:

17

Действительно старые игры, написанные для NES, Game Boy, SNES и даже более старых систем, таких как семейство Atari, обычно написаны на ассемблере . Это было необходимо, потому что компиляторы C того времени либо не существовали, либо не отвечали задаче генерации достаточно эффективного кода.

Они смогли втиснуть все эти вещи в небольшие картриджи - для NES даже 256 КБ было много данных (хотя существовали большие игры) - потому что они использовали умные приемы, такие как основанная на плитках и низкоцветная графика, что позволяет много данных, которые будут храниться в очень небольшом пространстве. Кроме того, специализированные чипы для видео и аудио позволили обрабатывать эти вещи более эффективно, без необходимости делать все в программном обеспечении.

Со временем компиляторы C стали более эффективными, а устройства стали более мощными - N64, GBA и более поздние устройства по умолчанию использовали C или даже C ++ - и сборка была зарезервирована для небольших фрагментов кода, где необходима дополнительная оптимизация для согласованного соответствия 60FPS цель (или любая другая частота кадров, на которой работает игра).

Майкл Мэдсен
источник
4
@Mihir старые игры не были безупречными. Но отчасти они почему-то работают лучше, чем некоторые недавние игры, потому что они также намного, намного менее сложны, чем их современные аналоги.
хаосТехник
1
@AndroidCoader, то, что вы ищете, называется эмулятором. Они существуют для многих платформ, эмулируя функции старых систем на современных машинах, но часто возникает много юридических проблем / серых областей, связанных с использованием их для игр.
хаосТехник
Я полагаю, что «Gran Turismo», когда он впервые появился на PS, имел большой объем кода, написанного на ассемблере, из-за задействованной физики.
casperOne
3

Я помню, как писал простые игры для Commodore 64 / Vic20 еще в начале 80-х. Некоторые BASIC (хотите верьте, хотите нет - некоторые игры были полностью закодированы в BASIC - BASIC был в ПЗУ машины, как и халява) - но в основном ассемблер. Ассемблер также не был последовательным - у большинства машин было несколько доступных коммерческих ассемблеров (хотя, как и большинство тогда, я написал свой собственный). Графика на C64 была очень продвинутой в то время с растровыми аппаратными спрайтами (только 8 разрешено на экране за раз - но они могут быть дублированы в программном обеспечении с некоторыми хитростями, давая сотни, но только 8 вариантов на экране одновременно). Они были 16 цветов (палитра - которые могли быть изменены во время выполнения, как и спрайт). Спрайты были 2D, конечно.

Первым «домашним компьютером», с которым я играл (игнорируя более ранние научные и коммерческие машины), был ZX81 (в моей школе был ZX80 - но он был заперт в стеклянную коробку, как музейный экспонат - никто не знал, как его использовать!). Представьте себе, что вы пишете игру в 1/4 от K (это 256 байт!) - теперь это умение!

Wolf5370
источник
3

Системы видеоигр или консоли первого поколения (до того, как их называли консолями) с конца 1970-х годов и до сих пор разрабатываются во многом как любая встроенная компьютерная система .

Встроенный компьютер представляет собой компьютер (т.е. микроконтроллер или микропроцессор) в электронной системе , которая не похожа на персональный компьютер, или больше многопользовательской компьютерной системы (например , систему разделения времени, мини-компьютеры и мэйнфреймы); Одно из основных отличий заключается в том, что у них обычно отсутствует стандартный ввод / вывод через видеотерминал и клавиатуру.

Разработка выполняется на другом компьютере, в настоящее время, как правило, это компьютер-разработчик или рабочая станция, использующая кроссплатформенную среду разработки, которая создает исполняемые файлы для целевой системы - в этом контексте системы видеоигр, которая часто отличается от микропроцессорной архитектуры по сравнению с разработкой. системный (или хост ) процессор.

Два примера существующих систем видеоигр являются для компании Sony Playstation 3 , которая основана на Sony, Toshiba и IBM «s процессор Cell , а также для мобильных устройств (смартфонов, планшеты) , которые часто ARM микропроцессоров на основе.

Как Michael Madsen указывалось, большая часть программирования выполнялась на ассемблере, а не на скомпилированном языке высокого уровня, таком как C или Pascal. Это было необходимо для того, чтобы вместить весь игровой контент в рамках системы с высокими ограничениями (очень мало ОЗУ и ограниченная емкость ПЗУ картриджа), а также для доступа к сопроцессорам, таким как TIA Atari 2600.

mctylr
источник