Spacewar! — видеоигра о космических боях, разработанная в 1962 году Стивом Расселом в сотрудничестве с Мартином Гретцем, Уэйном Виитаненом, Бобом Сондерсом , Стивом Пайнером и другими. Она была написана для недавно установленного мини-компьютера DEC PDP-1 в Массачусетском технологическом институте . После своего первоначального создания Spacewar! была расширена другими студентами и сотрудниками университетов в этом районе, включая Дэна Эдвардса и Питера Сэмсона . Она также была распространена на многих из нескольких десятков установок компьютера PDP-1, что сделало Spacewar! первой известной видеоигрой, в которую можно было играть на нескольких компьютерных установках.
В игре представлены два космических корабля , «игла» и «клин», которые ведут воздушный бой , маневрируя в гравитационном колодце звезды. Оба корабля управляются игроками-людьми. У каждого корабля ограниченное вооружение и топливо для маневрирования, и корабли остаются в движении, даже когда игрок не ускоряется. Полет вблизи звезды для обеспечения гравитационной помощи был обычной тактикой. Корабли уничтожаются, когда они сталкиваются с торпедой, звездой или друг с другом. В любой момент игрок может задействовать функцию гиперпространства , чтобы переместиться в новое и случайное место на экране, хотя в некоторых версиях каждое использование имеет возрастающий шанс уничтожить корабль вместо этого. Изначально игра управлялась с помощью переключателей на PDP-1, хотя Боб Сондерс построил ранний геймпад , чтобы уменьшить сложность и неловкость управления игрой.
Spacewar! — одна из самых важных и влиятельных игр в ранней истории видеоигр . Она была чрезвычайно популярна в небольшом сообществе программистов в 1960-х годах, и код , являющийся общественным достоянием, был широко портирован и воссоздан на других компьютерных системах в то время, особенно после того, как компьютерные системы с мониторами стали более распространенными к концу десятилетия. Она также была воссоздана на более современных языках программирования для эмуляторов PDP-1 . Она напрямую вдохновила многие другие видеоигры, такие как первые коммерческие аркадные видеоигры , Galaxy Game и Computer Space (обе с 1971 года), и более поздние игры, такие как Asteroids (1979). В 2007 году Spacewar! была включена в список десяти самых важных видеоигр в истории, что сформировало начало игрового канона в Библиотеке Конгресса , а в 2018 году она была включена в Всемирный зал славы видеоигр The Strong и Международным центром истории электронных игр .
В 1950-х годах различные компьютерные игры были созданы в контексте академических исследований в области компьютеров и программирования, а также для демонстрации вычислительной мощности, особенно после появления в конце десятилетия меньших и быстрых компьютеров, на которых программы могли создаваться и запускаться в реальном времени, а не выполняться по расписанию . Однако несколько программ были предназначены как для демонстрации мощности компьютера, на котором они работали, так и в качестве развлекательных продуктов; они, как правило, создавались студентами, аспирантами и сотрудниками университетов, например, в Массачусетском технологическом институте (MIT), где сотрудникам и студентам иногда разрешалось разрабатывать программы для экспериментального компьютера TX-0 . [1] Эти интерактивные графические игры были созданы сообществом программистов, многие из которых были студентами и сотрудниками университетов, связанными с Tech Model Railroad Club (TMRC), возглавляемым Аланом Котоком , Питером Сэмсоном и Бобом Сондерсом. В число игр вошли «Крестики-нолики» , в которой использовалась световая ручка для игры в простую игру в крестики-нолики против компьютера, и «Мышь в лабиринте» , в которой использовалась световая ручка для создания лабиринта из стен, по которому могла перемещаться виртуальная мышь. [1] [2] [3]
В сентябре 1961 года миникомпьютер PDP-1 компании Digital Equipment Corporation (DEC) был установлен в « комнате кладжа » на 2-м этаже здания 26, где располагался факультет электротехники Массачусетского технологического института. PDP-1 должен был дополнять старый TX-0, и, как и он, имел устройство чтения и записи перфоленты , а также принимал входные данные с панели переключателей и мог выводить данные на дисплей с электронно-лучевой трубкой (ЭЛТ). Летом перед его прибытием группа студентов и сотрудников университета обдумывала идеи программ, которые наглядно продемонстрировали бы возможности нового компьютера. Трое из них — Стив Рассел , тогда сотрудник Гарвардского университета и бывший научный сотрудник Массачусетского технологического института; Мартин Грец, научный сотрудник и бывший студент Массачусетского технологического института; и Уэйн Виитанен, научный сотрудник Гарварда и бывший сотрудник и студент Массачусетского технологического института — придумали идею Spacewar !. Они называли свое сотрудничество «Институтом Хингема», поскольку Гретц и Виитанен жили в многоквартирном доме на Хингем-стрит в Кембридже, штат Массачусетс . [2] [4] «У нас был этот совершенно новый PDP-1», — рассказал Рассел журналу Rolling Stone в интервью 1972 года. «Кто-то [ Марвин Мински ] создал несколько небольших программ для генерации узоров, которые создавали интересные узоры, как калейдоскоп . Не очень хорошая демонстрация. Вот этот дисплей, который мог делать всевозможные хорошие вещи! Поэтому мы начали обсуждать это, прикидывая, какие могли бы быть интересные дисплеи. Мы решили, что, вероятно, можно сделать что-то вроде двумерного маневрирования, и решили, что, естественно, очевидным решением будет создание космических кораблей». [2] [5]
Геймплей Spacewar! включает в себя два одноцветных космических корабля , называемых «игла» и «клин», каждый из которых управляется игроком, пытающихся стрелять друг в друга, маневрируя на двумерной плоскости в гравитационном колодце звезды, установленном на фоне звездного поля. [2] [4] Корабли стреляют торпедами, на которые не влияет гравитационное притяжение звезды. У кораблей ограниченное количество торпед и запас топлива, которое используется, когда игрок запускает двигатели корабля. [6] Торпеды выстреливаются по одной за раз, щелкая тумблером на компьютере или нажимая кнопку на панели управления, и между запусками есть период охлаждения . Корабли остаются в движении, даже когда игрок не ускоряется, а вращение кораблей не меняет направления их движения, хотя корабли могут вращаться с постоянной скоростью без инерции . [ 2]
Каждый игрок управляет одним из кораблей и должен попытаться сбить другой корабль, избегая столкновения со звездой или кораблем противника. Полет вблизи звезды может обеспечить игроку гравитационную помощь с риском неправильной оценки траектории и падения в звезду. Если корабль перемещается за один край экрана, он снова появляется на другой стороне в эффекте закручивания . Функция гиперпространства , или «тревожная кнопка», может использоваться как последнее средство уклонения от вражеских торпед, перемещая корабль игрока в другое место на экране после того, как он исчезает на несколько секунд, но повторный вход из гиперпространства происходит в случайном месте, и в некоторых версиях с каждым использованием увеличивается вероятность взрыва корабля. [6]
Элементы управления игрока включают в себя вращение по часовой стрелке и против часовой стрелки, прямую тягу, запуск торпед и гиперпространство. [6] Первоначально они контролировались с помощью тестовых переключателей на передней панели мини-компьютера PDP-1, с четырьмя переключателями для каждого игрока, но они оказались неудобными в использовании и быстро изнашивались при обычном игровом процессе, а также заставляли игроков случайно переключать управление и питание компьютера. Расположение переключателей также оставляло одного игрока с одной стороны дисплея ЭЛТ из-за ограниченного пространства перед компьютером, что ставило их в невыгодное положение. [2] Чтобы облегчить эти проблемы, Сондерс создал отдельное устройство управления, по сути, ранний геймпад . [7] [8] На геймпаде был переключатель для поворота влево или вправо, другой для прямой тяги или гиперпространства, а также кнопка запуска торпеды. Кнопка была бесшумной, так что у игрока противника не было предупреждения о том, что игрок пытается запустить торпеду во время периода перезарядки. [2]
Рассел, Грец и Виитанен разработали базовую концепцию Spacewar! летом 1961 года, в ожидании установки PDP-1. [4] Рассел недавно закончил читать серию Lensman Э. Э. «Дока» Смита и подумал, что эти истории станут хорошей основой для программы. «Его герои имели сильную тенденцию преследоваться злодеем по всей галактике и должны были придумывать способ выбраться из своей проблемы, пока их преследовали. Такого рода действия были тем, что наводило на мысль о Spacewar!. У него были некоторые очень яркие описания столкновений космических кораблей и маневров космического флота». [5] Другие источники вдохновения, упомянутые коллегой-программистом Мартином Грецом, включают романы «Жаворонок» Э. Э. Смита и японские фильмы в жанре токусацу . [9]
В течение первых нескольких месяцев после его установки сообщество программирования PDP-1 в MIT сосредоточилось на более простых программах, чтобы разобраться, как создавать программное обеспечение для компьютера. [2] В этот период Рассел часто навещал своих старых друзей в сообществе и описывал им концепцию Spacewar!. Рассел надеялся, что кто-то реализует игру, но сам делать этого не планировал. Однако другие члены сообщества посчитали, что он был логичным выбором для создания игры, и начали давить на него, чтобы он ее запрограммировал. [4] В ответ Рассел начал приводить различные оправдания, почему он не может этого сделать. [2] Одним из них было отсутствие тригонометрической функции , необходимой для расчета траекторий космического корабля. Это побудило Алана Котока из TMRC позвонить в DEC, где ему сообщили, что такая процедура у них уже написана. Коток поехал в DEC, чтобы забрать кассету с кодом, бросил ее перед Расселом и спросил, какие еще оправдания у него есть. [2] [4] Рассел, позже объяснив, что «я осмотрелся и не нашел оправдания, поэтому мне пришлось успокоиться и заняться расчетами», [2] начал писать код примерно в то время, когда в конце декабря 1961 года был установлен дисплей PDP-1. [2] [4] [10] Игра была разработана с учетом трех принципов, которые Рассел, Гретц и Виитанен разработали для создания программы, которая одинаково хорошо функционировала бы как развлекательный опыт для игроков и как демонстрация для зрителей: использовать как можно больше ресурсов компьютера, быть последовательно интересной и, следовательно, каждый забег должен быть разным, и быть развлекательной и, следовательно, игрой. [2] [11] Расселу, при содействии других программистов, включая Боба Сондерса и Стива Пайнера (но не Виитанена, который был призван в резерв армии США ), потребовалось около 200 часов, чтобы написать первую версию Spacewar! , или около шести недель на разработку базовой игры. [2] [12] [13] Она была написана на языке ассемблера PDP-1 . [14]
У Рассела была программа с подвижной точкой до конца января 1962 года и ранняя действующая игра с вращающимися космическими кораблями к февралю. [2] Два космических корабля были разработаны, чтобы вызвать ассоциации с изогнутым космическим кораблем из рассказов Бака Роджерса и ракетой PGM-11 Redstone . [4] Эта ранняя версия также содержала случайно сгенерированное фоновое звездное поле, изначально добавленное Расселом, потому что пустой фон мешал определить относительное движение двух космических кораблей на малых скоростях. [2] Сообщество программистов в этом районе, включая Институт Хингема и TMRC, разработало то, что позже было названо « хакерской этикой », согласно которой все программы свободно распространялись и модифицировались другими программистами в совместной среде без заботы о правах собственности или авторских правах, что привело к групповым усилиям по разработке первоначальной игры Рассела Spacewar!. [4] [13] Следовательно, поскольку неточность и отсутствие реализма в звездном поле раздражали члена TMRC Питера Сэмсона, он написал программу, основанную на реальных звездных картах, которые медленно прокручивались по ночному небу, включая каждую звезду в полосе между 22,5° с. ш. и 22,5° ю. ш. до пятой величины , отображаемую в их относительной яркости. Программа была названа «Дорогой планетарий» — ссылаясь на высокую цену компьютера PDP-1 по сравнению с аналоговым планетарием, как часть серии «дорогих» программ, таких как « Дорогая пишущая машинка» Пайнера — и была быстро включена в игру в марте Расселом, который был составителем основной версии игры. [2] [4] [7]
Первоначальная версия игры также не включала центральный звездный гравитационный колодец или функцию гиперпространства; они были написаны аспирантом Массачусетского технологического института и членом TMRC Дэном Эдвардсом и Гретцем соответственно, чтобы добавить элементы стратегии к тому, что изначально было игрой-стрелялкой чистых рефлексов. [2] [4] Ранее Рассел хотел добавить гравитацию, но не смог заставить программу выполнять вычисления достаточно быстро; Эдвардс оптимизировал функции рисования, чтобы освободить время обработки для расчета эффектов гравитации. [15] Первоначальная версия функции гиперпространства была ограничена тремя прыжками, но не несла никакого риска, за исключением возможного повторного входа в игру в опасном положении; более поздние версии убрали ограничение, но добавили возрастающий риск уничтожения корабля вместо его перемещения. Кроме того, в марте 1962 года Сондерс создал геймпады для игры, чтобы не дать «Space War Elbow» сидеть, сгорбившись над тумблерами мэйнфрейма. [2] [4] Игра была только многопользовательской, потому что у компьютера не осталось ресурсов для управления другим кораблем. [7] [16] Аналогичным образом, другие предложенные дополнения к игре, такие как более точное отображение взрыва при уничтожении космического корабля и воздействие гравитации на торпеды, пришлось отказаться, поскольку не хватало компьютерных ресурсов для их обработки при плавном ходе игры. [2] Одна функция, немного отличающаяся от скорости и направления торпед при каждом выстреле, была добавлена, а затем удалена Расселом после жалоб игроков. [15] После добавления функций и изменений Рассел и другие программисты переключили внимание с разработки игры на подготовку к ее демонстрации другим, например, на Дне открытых дверей в Массачусетском технологическом институте в конце апреля 1962 года. [2] [10] [17] [18] Группа добавила ограничение по времени, функцию гиперпространства и большой второй экран для зрителей на демонстрации, а в мае Грец представил доклад об игре «SPACEWAR! Real-Time Capability of the PDP-1» на первом собрании Общества пользователей цифрового оборудования компьютеров . [2] [19] Демонстрация прошла успешно, и игра оказалась очень популярной в Массачусетском технологическом институте; лаборатория, в которой размещался PDP-1, вскоре запретила играть, за исключением обеденного времени и после рабочего дня. [2] [20] Посетители, такие как Фредерик Пол , редактор Galaxy Science Fiction , с удовольствием играли в «прекрасную игру» и писали, что Массачусетский технологический институт «заимствовал идеи из научно-фантастических журналов», где игроки могли притворяться персонажами Skylark . [21]
Начиная с середины 1962 года и в течение следующих нескольких лет члены сообщества программирования PDP-1 в Массачусетском технологическом институте, включая Рассела и других членов Института Хингема, начали распространяться в других школах и работодателях, таких как Стэнфордский университет и DEC, и по мере того, как они это делали, они распространяли игру в других университетах и учреждениях с компьютером PDP-1. [2] [7] [19] В результате Spacewar! стала, пожалуй, первой видеоигрой, доступной за пределами одного исследовательского института. [22] В течение следующего десятилетия программисты в этих других учреждениях начали кодировать свои собственные варианты, включая такие функции, как возможность одновременного присутствия большего количества кораблей и игроков, замена функции гиперпространства на устройство маскировки , космические мины и даже версию с видом от первого лица, играемую на двух экранах, которая имитирует вид каждого пилота из кабины. [5] [6] Некоторые из этих установок Spacewar! также копировали геймпад Сондерса. [23] DEC узнала об игре вскоре после ее создания и провела демонстрации ее работы на своем PDP-1, а также опубликовала брошюру об игре и компьютере в 1963 году. [19] Согласно рассказу из вторых рук, услышанному Расселом во время работы в DEC, Spacewar! предположительно использовалась техническими специалистами DEC в качестве дымового теста на новых системах PDP-1 перед отправкой, поскольку это была единственная доступная программа, которая проверяла все аспекты оборудования. [13] [23] Хотя игра была широко распространена в то время, она все еще была очень ограничена в своем прямом доступе: хотя она была дешевле большинства мэйнфреймов, PDP-1 стоила 120 000 долларов США (что эквивалентно примерно 1 209 000 долларов США в 2023 году), и было продано всего 53 экземпляра, большинство из которых были без монитора, а многие из оставшихся — в защищенных военных местах или исследовательских лабораториях без свободного компьютерного времени, что не позволило оригинальной Spacewar! выйти за пределы узкой академической аудитории. [7] [19] [23] Хотя некоторые более поздние модели DEC, такие как PDP-6 , поставлялись с предустановленной Spacewar!, аудитория игры оставалась очень ограниченной; PDP-6, например, было продано всего 23 единицы. [8] [24]
Spacewar! была чрезвычайно популярна в небольшом сообществе программистов в 1960-х годах и широко воссоздавалась на других мини-компьютерах и мэйнфреймах того времени до перехода на ранние микрокомпьютерные системы в 1970-х годах. Как и во время разработки, игра находилась в открытом доступе , и код был доступен любому, кто имел к ней доступ или связывался с Расселом; не было предпринято никаких попыток продать ее на коммерческой основе, поскольку сообщество программистов было слишком мало, чтобы поддерживать какую-либо коммерческую отрасль. [19] [25] Первоначально она распространялась как людьми, приносившими копии кода в другие установки, так и программистами, воссоздававшими игру с помощью своего собственного кода. [23] Ранние установки включали PDP-1 в Bolt, Beranek, & Newman , которые также воссоздали геймпады; установка Рассела на PDP-1 в Лаборатории искусственного интеллекта Стэнфордского университета в 1963 году; и Университет Миннесоты , где выпускник Массачусетского технологического института Альберт Кухфилд в 1967–68 годах воссоздал игру для CDC 3100 и представил описание в Analog Science Fiction and Fact , опубликованное в 1971 году. Установка Стэнфорда была настолько популярна, что в 1966 году исследователи создали специальный «режим Spacewar» для разделения времени компьютерных ресурсов на их PDP-6, чтобы на нем можно было играть в игры, одновременно выполняя исследовательские программы. [19] Ранний компьютерный ученый Алан Кей заметил в 1972 году, что «игра Spacewar! расцветает спонтанно везде, где есть графический дисплей, подключенный к компьютеру», а Грец вспоминал в 1981 году, что по мере первоначального распространения игры ее можно было найти «практически на любом исследовательском компьютере, который имел программируемую ЭЛТ». [2] [5]
Большая часть этого распространения произошла через несколько лет после первоначальной разработки игры; хотя есть ранние истории об игроках и вариантах игры в нескольких местах, в основном около MIT и Стэнфорда, только после 1967 года компьютеры, подключенные к мониторам или терминалам, способным играть в Spacewar!, начали распространяться, что позволило игре охватить более широкую аудиторию и повлиять на более поздних разработчиков видеоигр — по оценкам, к 1971 году было более 1000 компьютеров с мониторами, а не несколько десятков. [23] Примерно в это же время было создано большинство вариантов игры для различных компьютерных систем, таких как более поздние системы PDP, а в 1972 году игра была настолько известна в сообществе программистов, что Rolling Stone спонсировал «Межгалактическую Олимпиаду Spacewar! ». [5] [23] Мероприятие состоялось 19 октября 1972 года в Стэнфордской лаборатории искусственного интеллекта с использованием варианта Spacewar! на комбинированном PDP-6/PDP-10, который поддерживал пять игроков, и был первым в истории турниром по видеоиграм, отчет о котором был опубликован в выпуске Rolling Stone от 7 декабря 1972 года . [19] [26]
В начале 1970-х годов Spacewar! перешла из больших компьютерных систем в коммерческие сети, поскольку она легла в основу первых двух игр с монетоприемником. Играя в Spacewar! в Стэнфорде где-то между 1966 и 1969 годами, студент колледжа Хью Так заметил, что версия игры с монетоприемником будет очень успешной. Хотя высокая цена мини-компьютера тогда не позволяла создать такую игру, в 1971 году Так и Билл Питтс создали прототип компьютерной игры с монетоприемником Galaxy Game с PDP-11 стоимостью 20 000 долларов США (что эквивалентно примерно 150 000 долларов США в 2023 году) , хотя они так и не выпустили более двух прототипов, представленных в Стэнфорде. [27] Примерно в то же время был представлен второй прототип игры с монетоприемником, основанный на Spacewar! , Computer Space , была разработана Ноланом Бушнеллом и Тедом Дабни , которая стала первой коммерчески продаваемой аркадной видеоигрой и первой широко доступной видеоигрой любого рода. [28] Хотя Так считал, что Computer Space была плохой имитацией Spacewar! , а его Galaxy Game — более совершенной адаптацией, многие игроки считали, что обе аркадные игры были улучшенными вариантами Spacewar! . [11]
Журнал Byte опубликовалверсию Spacewar! на языке ассемблера в 1977 году, которая работала на Altair 8800 и другихмикрокомпьютерах на базе Intel 8080 , используя осциллограф в качестве графического дисплея и таблицу поиска для аппроксимации расчетов орбит, [29] а также трехмерный вариант в 1979 году, написанный на Tiny BASIC . [30] Были также созданы более современные воссоздания игры для компьютеров. [31] Эмулированная версия оригинальной игры, сделанная общедоступной Мартином Гретцем и работающая на эмуляторе JavaScript PDP-1, была доступна для игры в Интернете в 2012 году. [32] Портативная консоль Analogue Pocket добавила поддержку запуска Spacewar! на эмулируемом PDP-1 в 2022 году. [33] Единственные рабочие PDP-1, о которых известно, хранятся в Музее истории компьютеров в Маунтин-Вью, Калифорния , где проводятся демонстрации машины, в том числе игра в Spacewar!. [ 34]
В дополнение к Galaxy Game и Computer Space , Spacewar! имел долгосрочные последствия, вдохновив множество других игр. [35] [36] [37] К ним относятся Orbitwar (1974, сетевые компьютеры PLATO), Space Wars (1977, аркадная игра) и Space War (1978, Atari 2600 ). [36] [37] Кроме того, в аркадной игре Asteroids (1979) дизайнер Эд Логг использовал элементы из Spacewar!, а именно кнопку гиперпространства и форму корабля игрока. [38] Продукты вплоть до компьютерной игры Star Control 1990 года черпали прямое вдохновение из Spacewar!. [ 23] Рассела цитируют, что аспект игры, который ему больше всего понравился, — это количество других программистов, которые вдохновились писать свои собственные игры, не чувствуя себя ограниченными в использовании собственного кода или дизайна Рассела. [20]
12 марта 2007 года The New York Times сообщила, что Spacewar! была включена в список десяти самых важных видеоигр в истории, так называемый игровой канон , которые было предложено архивировать в Библиотеке Конгресса . [39] Библиотека Конгресса приняла это предложение по сохранению видеоигр и начала с игр из этого списка. [40] [41] В 2018 году она была включена в Мировой зал славы видеоигр The Strong и Международным центром истории электронных игр . [42] Также в 2018 году Академия интерактивных искусств и наук вручила премию Pioneer Award , присуждаемую «людям, чья карьера в течение всей жизни помогла сформировать и определить индустрию интерактивных развлечений», оставшимся в живых участникам Spacewar!: Дэну Эдвардсу, Мартину Гретцу, Стивену Пайнеру, Стиву Расселу, Питеру Сэмсону, Роберту Сандерсу и Уэйну Виитанену. [43]