Русская Википедия:Spacewar!

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Шаблон:Компьютерная игра Spacewar! — одна из первых известных цифровых компьютерных игр. Создана Шаблон:Не переведено 5 при участии Мартина Греца и Уэйна Витенена, которые объединились в неформальную творческую группу под названием Hingham Institute. Эта группа в 1961 году задумала разработать игру на платформе мини-компьютера DEC PDP-1 в Массачусетском технологическом институте (МТИ). После того, как знакомый Рассела Шаблон:Не переведено 5 получил несколько подпрограмм от компании Digital Equipment Corporation (DEC) по расчёту траектории полёта космического аппарата, Рассел занялся программированием игры, а к февралю 1962 года у него была готова первая версия Spacewar!, и на это ушло примерно 200 человеко-часов работы.

В Spacewar! участвуют двое игроков, каждый из которых управляет своим космическим кораблём. Они маневрируют в невесомости рядом с гравитационным колодцем звезды. В начале на борту каждого есть некоторый запас топлива для маневрирования и некоторое число торпед. Симуляция игрового мира базируется на ньютоновской физике — если игрок не предпринимает каких-либо действий, то корабли движутся по инерции. Если корабль сталкивается со звездой, другим кораблем или в него попадёт торпеда, то он погибает. Игрок может в любое время использовать функцию перехода в гиперпространство для «прыжка» в случайное место на экране, но такой переход может уничтожить корабль, и с каждым использованием вероятность потери корабля увеличивается. Изначально игра управлялась переключателями на самом PDP-1, но впоследствии Боб Сандерс придумал и создал ранний геймпад, что сделало управление более удобным и улучшило игровой процессШаблон:Переход.

Spacewar! — одна из самых важных и влиятельных игр в ранней истории компьютерных игр. Она стала популярной в 1960-х годах настолько, что была установлена практически на всех компьютерах PDP-1[1]. Spacewar! портировалась на другие компьютерные платформы, а впоследствии была воссоздана на более современных языках программирования для эмуляторов компьютера PDP-1. Игра непосредственно вдохновила многих на создание других Шаблон:Нп5, примерами среди которых являются первые коммерческие игры для аркадных автоматов Galaxy Game и Computer Space, появившиеся в 1971 году. Помимо этих, было оказано влияние на более поздние, например на Asteroids 1979 года. В 2007 году Spacewar! вошла в десятку самых важных компьютерных игр всех времен, положивших начало созданию Шаблон:Не переведено 5 в Библиотеке Конгресса СШАШаблон:Переход.

Предыстория

Файл:Steve Russell-PDP-1-20070512.jpg
Стив Рассел, запрограммировавший первую версию Spacewar!

В 1950-х годах Массачусетский технологический институт получил первые компьютеры IBM 704, к которым студенты МТИ сразу же проявили интерес. Однако они остались недовольны тем, что для ввода программ требовалось участие людей-операторов, и что получение результатов занимало несколько часов. Студенты сравнивали эти взаимодействия с тем, что они, как послушники (программисты), просят о божественной помощи у капризного бога (компьютера) через посвящённое духовенство (операторов)[2].

Однако в июле 1958 года Лаборатория Линкольна решила, что их экспериментальный компьютер TX-0 больше им не нужен, и передала его МТИ. Студенты и аспиранты университета получили доступ к нему и возможность программировать. Далее члены университетского сообщества Шаблон:Не переведено 5 (TMRC, клуб железнодорожных моделистов) начали пробовать писать свои программы, в том числе и игры[2]. Сообщество разработало набор игр, в который вошли Tic-Tac-Toe, использующая световое перо для игры в крестики-нолики против компьютера, или Mouse in the Maze, где ручкой рисовались стены лабиринта, по которому должна была пройти виртуальная мышь[2]Шаблон:Sfn[3].

Осенью 1961 года в компьютерной комнате электротехнического отдела МТИ был установлен мини-компьютер PDP-1 компании DEC. До его прибытия и установки группа студентов и сотрудников университета провела мозговой штурм по идеям программ, которые могли бы убедительным образом продемонстрировать возможности нового компьютера. Трое из них — Стив Рассел, сотрудник Гарвардского университета и бывший научный сотрудник МТИ; Мартин Грец, научный сотрудник и бывший студент МТИ; и Уэйн Витенен, научный сотрудник Гарварда и бывший сотрудник и студент МТИ — объединились в группу Hingham Institute, названную так потому, что Грец и Витенен жили на улице Хингам. Эта группа придумала идею для игры Spacewar!Шаблон:Sfn[4]. «У нас был новый PDP-1, — сказал Стив Рассел в интервью Rolling Stone 1972 года — Марвин Минский создал несколько небольших программ для создания паттернов, которые выглядели как калейдоскоп. Не очень хорошая демонстрация. У нас был дисплей, который мог делать всевозможные интересные вещи! Поэтому мы начали обсуждение, размышляя о том, что интересного можно было бы показать. Мы решили, что, можно было бы сделать что-то двумерное, маневрирующее, и естественным образом подумали, что очевидный пример для этого — космические корабли»Шаблон:Sfn[5].

Игровой процесс

Файл:Spacewar1.png
Воссоздание Spacewar! на Java-апплете

В Spacewar! участвует два космических корабля, названных the needle (Шаблон:Tr) и the wedge (Шаблон:Tr). Они могут стрелять друг в друга и одновременно маневрировать в невесомости среди звёзд[4]Шаблон:Sfn. Стрельба производится торпедами, на которые не действует гравитация звезды. В начале у каждого из игроков имеется некоторое количество торпед и запас топлива, который расходуется во время работы двигателей[6]. Физика кораблей частично основывается на ньютоновской механике: они остаются в движении если игрок не использует двигатели, но у них отсутствует инерция вращенияШаблон:Sfn.

В Spacewar! участвуют два игрока, каждый из которых управляет своим кораблём. Задачей игрока является уничтожение корабля противника, которого он может сбить торпедой. При этом нужно избегать столкновения со звездой, которая действует на корабли гравитационно: пролёт рядом с ней позволяет осуществить гравитационный манёвр, но если игрок ошибётся, то корабль может упасть на звезду. Игровое пространство таково, что если корабль вылетает за край экрана, то он появляется с другой стороны. В игре есть функция перехода в гиперпространство, или так называемая «паническая кнопка», которая например может быть использована для ухода от вражеских торпед. Вход в гиперпространство моментально перемещает корабль в случайное место на экране, но такой переход может уничтожить корабль, и в некоторых версиях игры при каждом использовании данной функции вероятность потери корабля возрастает[6].

Игрок может вращать корабль по часовой или против часовой стрелки, включать тягу вперёд, стрелять торпедами и входить в гиперпространство[6]. Изначально управление проводилось переключателями на передней панели мини-компьютера PDP-1, по четыре для каждого игрока. Однако их использование было неудобным, они быстро изнашивались во время игры, и к тому же игроки часто путали их с переключателем питания компьютера. Помимо этого, местоположение переключателей заставляло одного игрока сидеть сбоку от экрана, что оставляло его в невыгодном положенииШаблон:Sfn. Для решения этих проблем Коток и Сандерс создали отдельный элемент управления, по сути ранний геймпадШаблон:Sfn[7]. У него было два переключателя и одна кнопка запуска торпед. Первый переключатель использовался для поворота, второй — для создания тяги или перехода в гиперпространство. Кнопка была сделана беззвучной для того, чтобы противник не узнал, что оппонент пытается запустить торпедыШаблон:Sfn.

Разработка

Файл:Vinton Cerf-20070512.jpg
Винтон Серф играет в Spacewar! на PDP-1 в Музее компьютерной истории, встреча ICANN, 2007

Осенью 1961 года обсуждались идеи программ для PDP-1, и в то же время Стив Рассел прочитал серию «Шаблон:Не переведено 5» писателя Эдварда Смита. Он решил, что эти истории хорошо подойдут для будущей программы. Стив говорил, что «злодеи часто преследовали героев по всей галактике, и им нужно было все время выкручиваться из разных ситуаций. И мы предложили сделать на основе этого Spacewar!. В произведении были очень яркие описания сражений космических кораблей и манёвров космического флота»[5]. Программист Spacewar! Мартин Грец упоминал, что на них также повлияла серия «Шаблон:Не переведено 5» Смита и японские фантастические токусацу-фильмы[8].

В первые несколько месяцев после установки PDP-1 сообщество программистов МТИ сосредоточилось на простых программах для того, чтобы определить возможности разработки программного обеспеченияШаблон:Sfn. В этот период Рассел часто посещал своих старых друзей из сообщества и описывал им концепцию Spacewar!. Рассел надеялся, что кто-нибудь займется реализацией игры, но не планировал делать это сам. Однако другие члены сообщества считали его наиболее логичным кандидатом на создание игры и начали оказывать на него давление, чтобы он ее запрограммировалШаблон:Sfn. В ответ Рассел начал придумывать различные оправдания тому, почему он не может начать работать над игройШаблон:Sfn. Одним из них было отсутствие тригонометрической функции, необходимой для расчёта траектории полёта космического аппарата. Это побудило Алана Котока из Tech Model Railroad Club позвонить в DEC, где ему сообщили, что у них уже есть такая программа. Коток приехал в DEC, забрал содержащую код перфоленту, положил её перед Расселом и спросил, какие у него есть другие оправдания. Рассел потом рассказывал, что «я оглянулся по сторонам и не нашёл оправданий, и поэтому мне пришлось остановиться и подумать», и в декабре 1961 года он начал писать код игры[9]Шаблон:Sfn. Игра была разработана в соответствии с тремя принципами Рассела, Греца и Вийтанена, которые они установили для себя. По ним, программа должна была задействовать все ресурсы компьютера; быть последовательно интересной — и соответственно каждый сеанс должен отличаться от других; и наконец, развлекать игроков, а значит, быть игройШаблон:SfnШаблон:Sfn. Расселу, с помощью других программистов, включая Боба Сандерса и Стива Пайнера (но не Витенена, который был вызван из запаса Шаблон:Не переведено 5), понадобилось около 200 человеко-часов на то, чтобы написать первую версию Spacewar!, и на это ушло шесть недельШаблон:Sfn[9]Шаблон:Sfn.

Файл:From Expensive Planetarium.svg
Фрагмент кода из Expensive Planetarium, ответственный за звёздные карты

К январю 1962 года Рассел получил программу, позволяющую двигать точку, а к февралю была готова ранняя рабочая версия с вращаемыми космическими кораблямиШаблон:Sfn. Эти два космических корабля были задуманы таким образом, чтобы напоминать пузатый космический корабль из рассказов про Бака Роджерса и ракету PGM-11 Redstone[4]. Стив посчитал, что пустой фон затрудняет определение скорости движения космических кораблей и поэтому добавил случайно генерируемый звёздный фонШаблон:Sfn. В соответствии с неформальной «хакерской этикой», выработанной сообществом программистов, включавшим Hingham Institute и TMRC, все программы свободно распространялись и изменялись другими программистами на условиях сотрудничества, не обращая внимание на вопросы собственности или авторских прав. Это привело к тому, что в доработку первоначальной версии программы Рассела включилось множество людей[4]Шаблон:Sfn. Затем, поскольку неточность и отсутствие реализма на звёздном экране раздражали члена TMRC Питера Самсона, то он написал программу, использующую данные реальных звёздных карт, и при этом она отрисовывала на медленно перемещающемся фоне каждую звезду в диапазоне от 22,5° с. ш. до 22,5° ю. ш. до пятой величины. Эта программа была названа Expensive Planetarium (Шаблон:Tr-en), так как была намного дороже аналогового планетария из-за стоимости компьютера PDP-1 и вошла в серию других «дорогостоящих» программ, таких как Expensive Typewriter Пайнера. По мере появления новых подпрограмм Spacewar! Рассел собирал их в основную версию, и в марте 1962 года Planetarium стала частью игрыШаблон:Sfn[4]Шаблон:Sfn.

Файл:Spacewar screenshot.jpg
Spacewar!, запущенная на PDP-1 в музее компьютерной истории, 2007 год

В первоначальной версии игры также не было звезды по центру и функции гиперпространственного прыжка. Звезда и гравитация от неё были добавлены выпускником МТИ Дэном Эдвардсом, а гиперпространство — членом TMRC Мартином Грецом. Эти элементы были задуманы для того, чтобы сделать игру более стратегической. В первой версии в гиперпространстве можно было входить не более трёх раз и переход был безопасным — корабль мог только случайно попасть в опасное место; в более поздних версиях ограничение было убрано, но добавили увеличивающийся с каждым гиперпереходом риск разрушения корабля. Где-то в это же время Коток и Сандерс разработали для Spacewar! геймпадыШаблон:Sfn. Игра была только многопользовательской, так как у компьютера не осталось вычислительных мощностей для управления другим кораблёмШаблон:Sfn[10]. Аналогично, предлагалось улучшить графически взрывы кораблей и добавить влияние гравитации на торпеды, но обе эти идеи пришлось отклонить по той же причинеШаблон:Sfn. В конце апреля 1962 года Spacewar! была практически завершена, включив в себя все дополнения и изменения. В последующем Рассел с другими программистами начали готовить игру для демонстрации. Так, Spacewar! была показана в мае того же года во время мероприятия открытых дверей МТИ Science Open HouseШаблон:Sfn[11]. Для демонстрации были добавлены ограничение по времени и большой экран для зрителей, и в том же месяце Грец на первом заседании Общества пользователей компьютеров компании Digital Equipment (Шаблон:Нп5) предоставил доклад об игре «SPACEWAR! Real-Time Capability of the PDP-1»Шаблон:Sfn. Демонстрация пользовалась успехом и игра приобрела большую популярность в МТИ. В лаборатории, в которой размещался PDP-1, вскоре был установлен запрет на игру, и разрешалось играть только во время обеда и в нерабочее времяШаблон:Sfn[12]. Редактор Galaxy Science Fiction Фредерик Пол писал, что МТИ «позаимствовал детали из научно-фантастических журналов» и что игроки «могли притворяться персонажами серии Скайларк»[13].

Начиная с лета 1962 года члены сообщества программистов PDP-1 МТИ, включая Рассела и группу Hingham Institute, получили распределение в другие учебные заведения и компании, включая Стэнфордский университет и DEC. Это дало выпускникам возможность распространить игру в другие организации, где были свои компьютеры PDP-1Шаблон:Sfn[4]Шаблон:Sfn. В результате Spacewar! стала, вероятно, первой компьтерной игрой, доступной за пределами одного исследовательского институтаШаблон:Sfn. В течение следующего десятилетия программисты этих учреждений начали писать свои собственные версии игры: добавлялись новые корабли, увеличивалось число игроков, гиперпространство заменялось на устройство невидимости, включались в игру космические мины и менялся обзор на вид от первого лица. В последнем случае игра использовала два монитора, и каждый из них показывал своему игроку вид из его кабины[5][6]. Для некоторых из версий Spacewar! копировался и дорабатывался геймпад Сандерса[14].

Как Расселу рассказывали на работе в DEC, Spacewar! использовалась в компании для «дымового тестирования» новых компьютеров PDP-1. Это была единственная доступная программа, которая использовала все аспекты аппаратного обеспечения PDP-1Шаблон:Sfn[14]. Несмотря на то, что игра была широко распространена для своего времени, она была ограничена из-за стоимости компьютера PDP-1 — его цена составляла Шаблон:Число долларов США. В большинстве случаев компьютеры продавались без монитора, в основном на военные объекты или в исследовательские лаборатории, где не было свободного компьютерного времени. Совокупность этих факторов не позволила Spacewar! выйти за пределы узкой академической аудитории. Всего было продано 53 экземпляра PDP-1[4]Шаблон:Sfn[14]. Более поздние модели компьютеров DEC, такие как Шаблон:Нп5, поставлялись с заранее установленной версией Spacewar!, но аудитория игры осталась весьма ограниченной. Например, всего было продано 23 компьютера PDP-6[7]Шаблон:Sfn.

Наследие

Файл:PDP-12 VCF 2001.jpg
Два человека играют в Spacewar! на компьютере Шаблон:Нп5 на Vintage Computer Festival

Spacewar! пользовалась популярностью в 1960-х годах в небольшом сообществе программистов и широко портировалась на других мини-компьютерах и мейнфреймах того времени, а в 1970-х годах игра появилась и на ранних микрокомпьютерных системах[4]. В 1972 году учёный Алан Кэй, специализирующийся на теории вычислительных систем, отметил, что «Spacewar! спонтанно расцветала везде, где был графический дисплей, подключённый к компьютеру». Мартин Грец в 1981 году вспоминал, что, после того как игра распространилась, её можно было найти на «практически любом исследовательском компьютере, где присутствовала программируемая ЭЛП»[5]Шаблон:Sfn. Более масштабно игра распространилась через несколько лет после её первоначального выпуска. Хотя некоторые утверждали, что играли в различные версии Spacewar!, в основном в МТИ и Стэнфордском университете, но компьютеры, способные запускать эту игру, начали появляться только в 1967 году. Так Spacewar! охватила широкую аудиторию и оказала влияние на будущих геймдизайнеров компьютерных игр. По оценкам, к 1971 году в Соединённых Штатах было около тысячи компьютеров с мониторами[14]. Примерно в то же время для различных компьютерных систем было разработано большинство известных версий игры. Появились версии для более поздних компьютеров PDP, а к 1972 году Spacewar! стала настолько известной в сообществе программистов, что был проведён турнир «Intergalactic Spacewar! Olympics» под спонсорством издательства Rolling Stone[5][14]. Мероприятие состоялось 19 октября 1972 года в Лаборатории искусственного интеллекта Стэнфордского университета и считается первым в истории турниром по компьютерным играмШаблон:Sfn[15].

В начале 1970-х годов Spacewar! стала основой для первых двух коммерческих компьютерных игр. Где-то между 1966 и 1969 годами студент колледжа Хью Так сыграл в Spacewar! в Стэнфордском университете, и посчитал, что игровой автомат с этой игрой должен быть успешным. В то время дороговизна мини-компьютеров не позволяла коммерчески реализовать такой проект, Так и Билл Питтс в 1971 году на основе компьютера PDP-11 стоимостью в Шаблон:Число долларов США создали прототип аркадного автомата с игрой Galaxy Game. Примерно в то же время Нолан Бушнелл и Шаблон:Не переведено 5 разработали свой вариант аркадного автомата на основе Spacewar! с игрой Computer Space, которая стала первой коммерческой аркадной компьютерной игрой и первой широко доступной компьютерной игройШаблон:Sfn. Хотя Так считал, что Computer Space является плохой имитацией Spacewar!, а его игра — более совершённой адаптацией, но многие игроки рассматривали обе игры как улучшенные варианты Spacewar!Шаблон:Sfn.

В 1977 году журнал Byte опубликовал исходный код Spacewar! на ассемблере для Altair 8800 и других компьютеров, архитектура которых построена на базе процессора Intel 8080. Данная версия игры использовала осциллограф в качестве графического дисплея и таблицы поиска для вычисления орбит вокруг звезды[16]. Позже в 1979 году в том же журнале была опубликована версия игры с трёхмерным игровым пространством, реализованная на языке Tiny BASIC[17]. Были выпущены и воссозданы версии игры для современных компьютеров. Примером последнего может служить поставка Spacewar! в комплекте с Microsoft XNA Game Studio Express[18]. Эмулированная версия оригинальной игры, основанная на оригинальном исходном коде, предоставленном Мартином Грецем в открытый доступ и работающая на эмуляторе PDP-1, написанном на JavaScript, была размещёна в Интернете в 2012 году[19]. По состоянию на май 2006 года существовал по крайней мере один рабочий PDP-1 в Музее компьютерной истории в Маунтин-Вью, штат Калифорния, на котором устраивались различные демонстрации, в том числе и игры в Spacewar![20].

Кроме Galaxy Game и Computer Space, влияние Spacewar! ощутили на себе и многие другие игры[21]. К ним относятся Orbitwar (1974 год, PLATO), Шаблон:Не переведено 5 (1977 год, игровые автоматы) и Шаблон:Не переведено 5 (1978 год, Atari 2600)[22]Шаблон:Sfn. Создавая игру Asteroids, геймдизайнер Шаблон:Не переведено 5 позаимствовал элементы из Spacewar!, а именно кнопку гиперпространства и форму корабля игрока[23]. Ещё в 1990 году разработчики компьютерной игры Star Control черпали вдохновение из Spacewar![14]. Рассел говорил, что он был удовлетворён тем, что Spacewar! побудила множество программистов на написание собственных игр без оглядки на код и дизайн его игры[12].

В марте 2007 года газета «Нью-Йорк таймс» сообщила, что Spacewar! была включена в список десяти наиболее важных видеоигр всех времен, так называемого «игрового канона», и которые было предложено заархивировать в Библиотеке Конгресса[24]. Библиотека Конгресса приняла это предложение по сохранению видеоигр и начала с игр из этого списка[25][26]. 29 ноября 2018 года Академия интерактивных искусств и наук вручила премию «Пионер», присуждаемую «лицам, чья карьера способствовала формированию и определению индустрии интерактивных развлечений», разработчикам Spacewar! — Дэну Эдвардсу, Мартину Грецу, Стивену Пайнеру, Стиву Расселу, Питеру Самсону, Роберту Сандерсу и Уэйну Витенену[27].

См. также

Примечания

Источники Шаблон:Примечания

Публикации Шаблон:Refbegin

Шаблон:Refend

Ссылки

Внешние ссылки

Шаблон:Выбор языка Шаблон:Хорошая статья