RobotWar: язык ассемблера для боевых роботов от автора Castle Wolfenstein
Tea Leaves
0:00 / 0:00
RobotWar: язык ассемблера для боевых роботов от автора Castle Wolfenstein
1 572 просмотра · 6 лет назад
Tea Leaves
9,01 тыс. подписчиков
1 572 просмотра · 6 лет назад
Все слышали о Castle Wolfenstein. Меньше людей знают, что создатель Wolfenstein разработал, вероятно, первую игру, основанную на программировании.
Этот канал всегда существовал на стыке языков программирования и старых игр. Поэтому вполне уместно, что я расскажу о том, что, насколько мне известно, является первой игрой, основанной на программировании: RobotWar от Сайласа Уорнера.
RobotWar — это игра, в которой вы программируете роботов для сражения на арене, используя язык, имеющий сходства как с Forth, так и с языком ассемблера. Насколько я могу судить, это оригинальное изобретение автора.
Но прежде чем мы перейдем к игре, давайте немного поговорим о самом Сайласе Уорнере. Этот человек — легенда. Вы когда-нибудь играли в Wolfenstein? Все они черпают вдохновение из Castle Wolfenstein. Оригинальный Wolfenstein был фантастической экшен-игрой для своего времени, позволяющей убивать нацистов, одновременно сбегая с их военными планами. В игре были случайные варианты расположения комнат и сокровищ, разрушаемые стены, оцифрованная речь в 1981 году, поведение врагов, которое могло казаться поразительно реалистичным, и всё это на машинах всего с 48 КБ оперативной памяти.
Сайлас Уорнер сам был удивительной личностью, добрым великаном, который создавал целые жанры программного обеспечения одним движением руки. В середине 1970-х годов в Университете Индианы он открыл для себя образовательную систему PLATO, мэйнфрейм, подключенный к тысячам графических терминалов. Он написал множество игр для PLATO, включая Empire, Conquest и раннюю версию RobotWar под названием Robot Wars.
RobotWar удивителен на первый взгляд, потому что сама идея игры на языке программирования для Apple II поразительна. Но дело не только в этом. Для 8-битного компьютера 1981 года здесь происходит очень многое. У вас есть язык программирования и виртуальная машина, на которой работают роботы. У вас есть то, что по сути является небольшим компилятором или интерпретатором для запуска этих программ. У вас есть симулятор, в котором одновременно работают несколько роботов. И у вас даже есть полноэкранный редактор для написания программ. В 1981 году существовали реальные системы разработки на языке ассемблера, в которых не было полноэкранных редакторов.
В руководстве подробно описываются роботы, которых вы программируете. Каждый из них движется по гусеницам, способным перемещаться как горизонтально, так и вертикально. У каждого робота есть радарная антенна, которую можно наводить в любом направлении, чтобы определить расстояние до любого робота, на которого она направлена. И у каждого робота есть одна пушка, которую можно поворачивать в любом направлении, и которая стреляет снарядами с таймером. У пушки бесконечный боезапас, но между выстрелами есть период охлаждения. И самое главное, у каждого робота есть компьютер.
Компьютерная схема в RobotWar поразительна; возможно, она даже сложнее, чем процессор, на котором работал Apple II. Есть 24 регистра общего назначения, обозначенных буквами от A до W, а также Z. Вы можете использовать их для хранения любых значений во время программирования. Затем идут 9 регистров ввода/вывода, которые управляют определенными функциями.
X и Y показывают горизонтальное или вертикальное положение на поле боя.
AIM управляет углом, под которым направлено орудие.
Регистр RADAR управляет радаром робота — вы сохраняете в нем значение для отправки радиолокационного импульса и считываете значение для обнаружения противника.
Регистр SHOT позволяет стрелять из орудия робота — вы сохраняете желаемое расстояние для стрельбы в регистре SHOT.
Регистр DAMAGE показывает, насколько сильно вас поразили.
SPEEDX и SPEEDY управляют вашей горизонтальной и вертикальной скоростью.
наконец, есть регистр, который выдает случайное число.
RobotWar вдохновил множество других игр для программирования — практически на всех платформах, включая RoboWar и ChipWits на Macintosh, CoreWar на Windows и Unix-системах. Это также явное превосходство современных игр в области программирования, таких как Shenzhen I/O, TIS-100 и Human Resource Machine.