Как на Super Nintendo появились 3D-игры: история сопроцессора Super FX



    Начало 90-х — это время войн консолей четвёртого поколения. Основными конкурентами за рынок и кошельки фанатов игр стали Nintendo и Sega с приставками Super NES (Super Famicom) и Sega Mega Drive (Genesis). Обе компании пытались привлекать игроков зрелищными спецэффектами, но вычислительные мощности приставок были ограничены. Они физически не способны самостоятельно обеспечить расчёт трёхмерной графики.

    Однако выход был найден, и заключался он в самой концепции картриджей, которые были не только накопителями с играми, но и могли использоваться как платы расширения. В марте 1993 года появился первый картридж SNES с космическим симулятором Starfox. Внутри него был установлен сопроцессор Super FX, обеспечивший долгожданный прорыв в 3D. Разработку сопроцессора Nintendo поручила британскому разработчику игр Argonaut Software. Что же это за компания, и как её пути пересеклись с Nintendo? Чтобы ответить на этот вопрос, нужно вернуться ещё на десять лет назад.

    Краткая история аргонавтов



    Джереми Сэн

    В 1982 году 16-летний британский хакер Джереми «Джез» Сэн (Jeremy «Jez» San) основал свою компанию Argonaut Software, предоставляющую крупным корпорациям услуги консалтинга в области IT-безопасности. Название компании появилось из игры слов: J.San произносится очень похоже на Jason (Ясон), а где Ясон, там и аргонавты. Джереми был вундеркиндом, в 13 лет он изучил ассемблерный язык нескольких компьютерных архитектур. В дальнейшем он воспользовался этими знаниями для устранения «дырок» в безопасности коммерческих компьютерных систем.

    Чуть позже Джереми со своим другом Фуадом «Фу» Катаном (Fouad «Foo» Katan) занялись разработкой игр, и в 1984 году выпустили горизонтальный shoot'em-up Skyline Attack для Commodore 64, но настоящая слава пришла к ним после выпуска Starglider. Это был трёхмерный FPS на космическую тематику для 16-битных компьютеров Commodore Amiga и Atari ST. Он считается первой популярной 3D-игрой, его портировали на другие платформы и продали несколько сотен тысяч копий.



    Skyline Attack




    Starglider

    В 1988 году «аргонавты» выпустили вторую часть Starglider. В это же время в компанию пришёл 16-летний разработчик Дилан Катберт (Dylan Cuthbert). Годом позже Nintendo выпустила японскую версию первой 8-битной портативной консоли GameBoy. Джереми Сэна заинтересовала консоль, он заказал её из Японии и создал для неё экспериментальный комплект разработки. В то время, как GameBoy был всё ещё недоступен остальному миру, с помощью этого комплекта Катберту удалось выжать из его скудных ресурсов максимум и написать демку векторного 3D-движка!


    Дилан Катберт

    Слово «векторный», а не «полигональный» использовано не зря — движок мог отрисовывать только отрезки, соединяющие точки, но не закрашивать полигоны. Все объекты в демо состояли из просвечивающих насквозь «проволочных» (wireframe) каркасов.


    Игра 1980 года Battlezone с векторной wireframe-графикой

    Джез с гордостью продемонстрировал демо на Consumer Electronic Show. Больше всех им были потрясены представители Nintendo.

    Дилан Катберт вспоминает:
    «В Nintendo осознали, что никто до нас не пытался реализовать 3D на GameBoy, никто даже не думал, что это возможно, и сама Nintendo в особенности. Они считали, что это просто 2D-система и она не предназначена ни для чего другого.»
    Две недели спустя «аргонавтов» пригласили в японский офис компании и предложили использовать их технологию в будущей продукции Nintendo. В этот раз они показали 3D-движок всему руководству, и сам Сигэру Миямото благословил Дилана на совместную работу вместе с директором серии Metroid Ёсио Сакамото над полной версией движка.

    В 1992 году работа над проектом была закончена, и анонс игры под коротким названием «X» уже был размещён в собственном журнале компании Nintendo Power. Однако Nintendo внезапно поменяла планы и отказалась от распространения игры на мировом рынке, ограничившись Японией. Так первый 3D-шутер для GameBoy не стал мировой классикой.


    В графике X чётко видно влияние Starglider

    Самым большим успехом Argonaut по-прежнему оставался Starglider. И чтобы поднять планку, им недостаточно было усовершенствованных программных техник…

    Вернёмся к первой встрече Argonaut с Миямото и представителями Nintendo в Японии. На ней Джереми продемонстрировал ещё один пример игры, созданный на основе Starglider и предназначенный для работы на NES (он имел соответствующее название NESglider). В свою очередь, Nintendo решила, что настало время познакомить Джеза и Дилана с новейшим проектом компании: очень грубым прототипом тогда ещё никому не известной системы Super Famicom с ранней версией игры Pilotwings. Руководство заявило, что это первая попытка Nintendo реализовать 3D в будущей консоли, которая может сильно выиграть от использования знаний молодых программистов.


    Прототип Super Famicom

    Разработка Super FX


    Следующим шагом Argonaut стала работа над портированием демки NESglider на незавершённый прототип приставки Миямото. Годы спустя Джез рассказывал в интервью:
    «Я сказал им, что будет гораздо лучше, если они дадут нам разработать оборудование, чтобы SNES уверенно чувствовала себя в 3D. К удивлению, несмотря на отсутствие у меня опыта, они согласились и дали мне миллион долларов на реализацию.»
    Argonaut Software наняла команду опытных разработчиков чипов из Кембриджа, чтобы создать первый в мире 3D-акселератор на основе одного из первых RISC-процессоров.
    «Мы были первыми на рынке ускорения 3D, который теперь поделили NVidia и ATI… и у нас есть патенты, доказывающие это.»
    Прототип Super Famicom был плохо документирован, поэтому для более полной интеграции чипа с 16-битной аппаратурой и улучшения производительности всей системы пришлось выполнять реверс-инжиниринг. «Аргонавтам» это удалось, но им пришлось смириться с вынесением сопроцессора в игровой картридж (это повысило стоимость картриджей, а не самой приставки). Результатом стал чип «MARIO» («Mathematical, Argonaut, Rotation & Input/Output»), позже переименованный Nintendo в «Super FX».
    «Это был не просто графический чип, а микропроцессор, предназначенный для работы с графическим ПО, но он выполнял и другие функции (например, быстрые математические вычисления)».

    Первая версия графического ускорителя Argonaut с сохранившейся маркировкой MARIO CHIP 1.


    Финальная версия процессора, используемая в Starfox, Stunt Race FX, Vortex и Dirt Trax FX

    Сама по себе Super NES имела ограниченные математические возможности, за исключением знаменитого режима «Mode 7», который мог только масштабировать и вращать одиночный 2D-фон. Более того, центральный процессор SNES даже не содержал команды умножения!

    Технические характеристики процессора перечислены в Приложении A.

    Первая игра с графическим ускорителем


    Работа Дилана над X совпала по времени с разработкой Super FX (примерно в 1990-1992 годах). В 1992 году оба проекта почти одновременно были завершены. После выхода ставшей в Японии хитом единственной монохромной игры Argonaut, Дилан присоединился к Джайлсу Годдарду (Giles Goddard) и Кристеру Вомбеллу (Krister Wombell) в новом совместном проекте Argonaut и Nintendo: создании первой игры, использующей только что разработанный 3D-акселератор.


    Американская обложка игры Starfox

    Знаменитая теперь серия игр Nintendo под названием Starfox начиналась как Starglider 3, продолжение популярного космического шутера с Amiga. Поэтому Argonaut снова использовала так полюбившуюся ей тему межзвёздных боевых действий. Задачей Nintendo на этот раз стала работа над более «аркадным» стилем игры, более лёгким по сравнению с симулятором X.

    Создание милых персонажей и простого сценария было только половиной работы. Им также пришлось упростить управление и перейти от свободных полётов, характерных для предыдущих игр Argonaut, к более удобному для пользователя «рельсовому» аркадному игровому процессу, вдохновлённому играми Starblade и Solvalou компании Namco. Такие изменения огорчили некоторых фанатов Argonaut (сам Дилан хотел, чтобы уровни Starfox не были линейными), но, как мы знаем, игровой процесс финального продукта оказался близким к идеалу.


    Starfox

    Сюжет игры — борьба элитного отряда наёмников Starfox (состоящего из ястреба Falco, кролика Peppy, жабы Slippy и лидера команды лиса Fox) против зловещего учёного Andross. Команда Фокса должна защищить родную планету Corneria и остальную часть системы Lylat с помощью своих космических кораблей (Arwing), нанеся контрудар и пройдя по одному из трёх маршрутов на выбор, чтобы в конце добраться до источника зла — планеты Venom. Каждый маршрут (называемый в игре уровнем) отличается сложностью и этапами. Он проходит через различные планеты системы, поля астероидов, сектора в глубоком космосе, и даже таинственную чёрную дыру и скрытое альтернативное измерение.

    Как уже сказано, свобода передвижения, доступная в Starglider и X, не была перенесена в Starfox. Вместо него Arwing игрока автоматически следует по заданному пути на каждом из этапов, отстреливая врагов и уклоняясь от препятствий, а потом достигает конца этапа и босса. Похоже, что это сильно урезало возможности игрока по сравнению с предыдущими играми Argonaut, но 3D-движок всё равно оставляет достаточно способов для уворотов и перемещений. Камера при этом следует за ним вверх, вниз и в стороны.

    Игра начинается с полной линейкой энергии и тремя жизнями. Корабль игрока оснащён улучшаемым основным лазером, ограниченным количеством бомб, уничтожающих всех врагов на экране, умеет делать «бочку», чтобы избежать выстрелов, а также ускоряться на несколько секунд для пролёта через ворота и узкие места.

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


    Карта уровней Starfox

    Этапы более уникальны, чем в обычных играх жанра shoot'em-up, в некоторых из них можно даже выбирать до трёх точек обзора камеры (самая интересная — прямо внутри кокпита Arwing). Игровой процесс Starfox состоит в постоянно изменяющемся балансе между мастерским управлением и быстрой стрельбой. Игрок занят проникновением во вражеские туннели, уворачиванием от астероидов и безопасным прохождением через космические станции противника, в то же время стремясь расстрелять как можно больше врагов.

    Игрок проходит игру не в одиночку. Наверно, лучшая из идей Nintendo в Starfox — добавление трёх напарников Фокса, постоянно защищающих «тылы» его Arwing и следующих за игроком в тесном боевом порядке. Они общаются глуповатыми, искажёнными голосовыми сэмплами (над этой деталью игроки больше всего смеялись), и даже могут спасаться бегством, запрашивая помощи у Фокса, когда их линейки энергии снижаются при атаках врагов. Такое взаимодействие с командой, даже очень ограниченное, сильно повышало ощущение принадлежности к отряду, заставляя игрока заботиться о напарниках. Если же они покидали поле боя, игрок сразу же замечал недостаток огневой поддержки.


    Slippy благодарит игрока за помощь

    Скромные возможности 10,5-мегагерцового чипа Super FX были в то время впечатляющими, хотя они и не соответствуют современным стандартам. Самым заметным недостатком была невероятно «рваная» частота кадров (в эмуляторах она не так очевидна) и низкое разрешение вывода видео с чёрной рамкой вокруг экрана (Super FX мог отрисовывать не более 192 строк по высоте). К счастью, эти проблемы не повлияли серьёзно на игровой процесс.

    Интересно, что мир Starfox состоял не из одних полигонов. Фонами служили красивые неподвижные и анимированные изображения, а процессор Super FX не только занимался вычислением векторов, но и масштабировал и поворачивал 2D-спрайты, такие как круговые лазеры, астероиды и сама финальная форма босса Andross.

    Успех Starfox стал результатом отличного баланса между инновационной технологией Argonaut и внимательной работой с деталями Nintendo. Разрушаемые крылья Arwing, сменяемые камеры и короткое интро «Scramble», ставшее классическим — результат работы Argonaut; дизайн игры, упрощённое управление, взаимодействие с напарниками и превосходный саундтрек — заслуга Nintendo.



    Жизнь после Starfox


    После огромного успеха Starfox Дилан начал работать над созданием его продолжения для SNES. Starfox 2 уже находился в состоянии финальной бета-версии, но Nintendo решила полностью отказаться от него в пользу улучшенных 3D-возможностей новой N64. После этого Катберт ушёл из Argonaut в Sony Computer Entertainment America, где работал над разработкой игры Blasto для Playstation. Несколько лет спустя он был переведён в токийский офис Sony, разрабатывал Ape Escape и в 2001 году покинул компанию, основав собственную студию разработки «Q-Games». Он продолжает жить в Японии, его компания создавала различные проекты для Nintendo DS, Playstation 3 и Playstation 4.


    Титульный экран невыпущенной Starfox 2

    Успех Starfox и чипа Super FX привели к расширению работы Argonaut. Джез и его команда разрабатывала процессоры для других игровых консолей: «GreenPiece» Philips, «VeggieMagic» Apple и «MatriArc» Hasbro; ни одна из них не была выпущена. Огорчённая этим команда Argonaut наконец создала собственный микропроцессор («Argonaut RISC Core») и продала его дизайн с неисключительными правами.

    В 2002 году Джез получил Орден Британской империи, который был впервые вручён за достижения в индустрии компьютерных игр. К сожалению, через два года Argonaut Software Ltd была ликвидирована из-за значительных убытков. Сейчас Джез работает президентом компании, занимающейся онлайн-покером, основанной им в 2005 году.

    Приложение A: подробности о процессоре Super FX


    Дизайном аппаратной части чипа занималась британская компания Ben Cheese Electronic Design.


    Бен Чиз, разработчик Super FX

    Первая версия Super FX (GSU-1) имела частоту 21,477 МГц, но внутренний делитель тактовой частоты уменьшал её до 10,74 МГц. Процессор имел 100 контактов. Super FX 2 (GSU-2), работал на полной частоте 21,477 МГц, у него было 112 контактов и он имел доступ к большему объёму SRAM.

    Игровые картриджи с чипами Super FX имеют дополнительные контакты, соединяемые с дополнительными контактами в разъёме картриджа, которые обычно не использовались. Адаптеры картриджей, такие как Game Genie, не имели соединений с этими ранее неиспользованными контактами, поэтому игры с Super FX невозможно было использовать в таких устройствах.

    Кроме рендеринга полигонов, чип часто использовался для помощи SNES / Super Famicom со сложными 2D-эффектами.

    Для разработчиков игр чип стоил 10 долларов.

    Super FX (GSU-1) Super FX 2 (GSU-2)
    Частота 10,74 МГц 21,477 МГц
    Количество контактов 100 112
    SRAM 32 КБ 64 КБ (поддерживает до 128 КБ)

    Приложение B: игры, использующие Super FX


    Super FX (GSU-1)
    StarFox (8 Мбит ROM, 1993, Nintendo/Argonaut)
    Super StarFox Weekend (8 Мбит, 1993, Nintendo/Argonaut)
    Stunt Race FX (8 Мбит, Nintendo/Argonaut)
    Vortex (4 Мбита, Electrobrain/Argonaut)
    Dirt Racer (4 Мбита, 1995, Elite Systems/MotiveTime)
    Dirt Trax FX (4 Мбита, 1995, Acclaim/Sculptured Software)
    Super FX 2 (GSU-2)
    DOOM (16 Мбит, 1995, Williams)
    Winter Gold (16 Мбит, 1996, Nintendo/Funcom)
    Super Mario World 2: Yoshi’s Island (16 Мбит, 1995, Nintendo)
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 20

    • НЛО прилетело и опубликовало эту надпись здесь
        0
        Да, даже на ZX SPECRUM тепло вспоминаются «3D» игры Stunt Car, Ping Pong, Nether Earth и др. игры.
        и незабываемая Elite
        • НЛО прилетело и опубликовало эту надпись здесь
            0
            В Элите полигональная графика. Просто все полигоны чёрные. Только планеты просвечивались. Проволочная же графика просвечивается насквозь. Это очень сильно выделяло Элиту из других 3Д игр на Спектруме.
              0
              Не совсем =) Просто звезды не прорисовываются внутри кораблей, а вот наложение кораблей друг на друга показывает что все-таки это проволочная графика. Более того сами корабли прозрачные и похоже их прозрачность для звезд зависит от размера.
                0
                Я точно помню, что корабли не прозрачные. Т.е. грани не просвечиваются.
                Проверил. Судя по скриншотам, объекты накладываются друг на друга, но грани, которых на одном объекте не видно, не просвечиваются. Т.е. это частично проволочная графика, просто отрисовка без проверки наложения объектов друг на друга. Самопрозрачности в объекте нет.

                image
                image
                  0
                  Все просто — обрезание «невидимых» линий происходит по направлению нормалей полигонов.
                  Кроме того это объясняет почему все объекты в Elite — выпуклые.
            0
            А когда появилась демка DOOM от Digital Reality. Еще вспоминается демка векторного космосима, но уже с залитыми полигонами, вот название вспомнить не могу.
              0
              Моей первой «3D игрой» была Deathchase с суперзвуком, который навсегда в памяти отпечатался каждым своим битом.

              https://www.youtube.com/watch?v=7Gqw-KE3x1A
                0
                Я долгие годы был уверен что это узбек на моторной лодке, еще удивлялся почему лодка плывет в лесу.
                0
                Tau Ceti, Academy
                  0
                  ОО, наиприятнейшая игрушка.
                  Правда, некоторые вещи в ней я так и не понял тогда.
                  0
                  ну Nether Earth все-таки совсем не 3D, а вот Stunt Car помню вообще наверное была первой игрой в которую я поиграл на своем спектруме =)
                    0
                    Еше на ZX из 3д были DarkSide и что то про пирамиды. Обе до безумия запутанные.
                      0
                      Есть игра Eclipse про пирамиды.
                0
                Оч интересно, спасибо за статью.
                  0
                  Люблю старые игровые консоли) Спасибо за интересную статью.
                    0
                    https://www.youtube.com/watch?v=TybO0PKZbgo я вот в такую штуку играл на сеге. Был такой здоровенный картридж.
                      0
                      Если на приставке Sega, то вы играли не в Virtua Formula, а в Virtua Racing.
                      0
                      Do a Barrel Roll!

                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                      Самое читаемое