Мне очень хочется узнать, как развивались телевизионные видеоигры (в которые мы все играли в детстве) и на какой платформе.
Я знаю, как разрабатываются игры для мобильных устройств, ПК с Windows и Mac, но я не понимаю, как (в те времена) были разработаны Contra, Duck Hunt и все эти игры. Так как у них высокая графика и большое количество этапов. Так как же им удалось разработать игры в такой небольшой среде и с более низкой конфигурацией платформы?
graphics
game-industry
Михир Палхивала
источник
источник
Ответы:
Действительно старые игры, написанные для NES, Game Boy, SNES и даже более старых систем, таких как семейство Atari, обычно написаны на ассемблере . Это было необходимо, потому что компиляторы C того времени либо не существовали, либо не отвечали задаче генерации достаточно эффективного кода.
Они смогли втиснуть все эти вещи в небольшие картриджи - для NES даже 256 КБ было много данных (хотя существовали большие игры) - потому что они использовали умные приемы, такие как основанная на плитках и низкоцветная графика, что позволяет много данных, которые будут храниться в очень небольшом пространстве. Кроме того, специализированные чипы для видео и аудио позволили обрабатывать эти вещи более эффективно, без необходимости делать все в программном обеспечении.
Со временем компиляторы C стали более эффективными, а устройства стали более мощными - N64, GBA и более поздние устройства по умолчанию использовали C или даже C ++ - и сборка была зарезервирована для небольших фрагментов кода, где необходима дополнительная оптимизация для согласованного соответствия 60FPS цель (или любая другая частота кадров, на которой работает игра).
источник
Я помню, как писал простые игры для Commodore 64 / Vic20 еще в начале 80-х. Некоторые BASIC (хотите верьте, хотите нет - некоторые игры были полностью закодированы в BASIC - BASIC был в ПЗУ машины, как и халява) - но в основном ассемблер. Ассемблер также не был последовательным - у большинства машин было несколько доступных коммерческих ассемблеров (хотя, как и большинство тогда, я написал свой собственный). Графика на C64 была очень продвинутой в то время с растровыми аппаратными спрайтами (только 8 разрешено на экране за раз - но они могут быть дублированы в программном обеспечении с некоторыми хитростями, давая сотни, но только 8 вариантов на экране одновременно). Они были 16 цветов (палитра - которые могли быть изменены во время выполнения, как и спрайт). Спрайты были 2D, конечно.
Первым «домашним компьютером», с которым я играл (игнорируя более ранние научные и коммерческие машины), был ZX81 (в моей школе был ZX80 - но он был заперт в стеклянную коробку, как музейный экспонат - никто не знал, как его использовать!). Представьте себе, что вы пишете игру в 1/4 от K (это 256 байт!) - теперь это умение!
источник
Системы видеоигр или консоли первого поколения (до того, как их называли консолями) с конца 1970-х годов и до сих пор разрабатываются во многом как любая встроенная компьютерная система .
Встроенный компьютер представляет собой компьютер (т.е. микроконтроллер или микропроцессор) в электронной системе , которая не похожа на персональный компьютер, или больше многопользовательской компьютерной системы (например , систему разделения времени, мини-компьютеры и мэйнфреймы); Одно из основных отличий заключается в том, что у них обычно отсутствует стандартный ввод / вывод через видеотерминал и клавиатуру.
Разработка выполняется на другом компьютере, в настоящее время, как правило, это компьютер-разработчик или рабочая станция, использующая кроссплатформенную среду разработки, которая создает исполняемые файлы для целевой системы - в этом контексте системы видеоигр, которая часто отличается от микропроцессорной архитектуры по сравнению с разработкой. системный (или хост ) процессор.
Два примера существующих систем видеоигр являются для компании Sony Playstation 3 , которая основана на Sony, Toshiba и IBM «s процессор Cell , а также для мобильных устройств (смартфонов, планшеты) , которые часто ARM микропроцессоров на основе.
Как
Michael Madsen
указывалось, большая часть программирования выполнялась на ассемблере, а не на скомпилированном языке высокого уровня, таком как C или Pascal. Это было необходимо для того, чтобы вместить весь игровой контент в рамках системы с высокими ограничениями (очень мало ОЗУ и ограниченная емкость ПЗУ картриджа), а также для доступа к сопроцессорам, таким как TIA Atari 2600.источник