Игры, которые мы выбираем. Программируем игру

25 января 2014

«Чего ради изучать чужие игры, если я собираюсь сочинить свою?» — спросите вы, и сами же ответите — «Чтобы не повторять промашек и воспользоваться находками». Мало описать игру, нужно разобраться в том, какие качества игрока учитывали другие разработчики, какие приемы использовали, какие ограничения в реализации игры, и прочие умности. В исследовательское путешествие по играм нас приглашает Василий Гришин. Хотите прогуляться и поспорить? — Тогда в путь! Начнем, пожалуй, с "Робота-полицейского—4”.

Ступив на грязную, плохо освещенную улицу, отбросьте в сторону все благородство и человечность, в этой игре они сослужат вам плохую службу. Неожиданная, яростная агрессия со стороны хорошо и разнообразно вооруженных врагов сначала ставит в легкое недоумение, приводя в замешательство. Но в дальнейшем чувство собственной значимости, искусно разжигаемое создателями игры, берет верх, заставляя обращаться с оружием как с единственным средством выживания. Механические монстры-ниндзя, творения рук преступной корпорации, с методической беспощадностью обрушивая на хромированный корпус робота град сабельных ударов (во II этапе), лишь способствуют зарождению у вас праведного гнева. А новые этапы, где кажется, что каждый угол и выбоина в стене несут гибель, ставят вас перед необходимостью выступить в роли разрушителя, уничтожая все живое, находящееся в пределах поражения. А так как ответственность за этот кошмар ложится на военных дельцов ОСР, то орудием мщения должны выступить именно вы. И взрыв огромной силы, возвещая о наступлении на земле мира и покоя, навсегда уничтожит оплот корпорации зла, под обломками которой и будут навсегда погребены последние дьявольские семена киборгов-ниндзя.

Однако переведем дух, сбросим воинственный пыл универсального уничтожителя и продолжим путь. Безусловный контраст ощущений дают нам такие игры, как “Принц Персии”, “Русалочка”, и “Аладдин”. Судьбы мультипликационных героев, как и испытания, выпадающие на их долю, погружают нас в мир приключений, подчас опасных, но очень зрелищных и увлекательных, Кажется невероятным, что эти игры захватывают нас сильнее, чем пресловутые Терминаторы или Робокопы (мнение В.Гришина), где под условностями игры подразумевается наша нелегкая, подчас, жизнь с ее подвохами, коварными ударами и вынужденной, порой, агрессивностью. Герои же детских фильмов в играх выглядят более убедительнее и человечнее, что ли. И характеры-то у них какие разные! Трудолюбивый и озорной Аладдин, все невероятные приключения которого начинаются с упоминания о магической лампе, исполняющей любые желания. Поневоле заражаешься его стойкостью в борьбе со злом.

Вот бесстрашный и рассудительный Принц, не теряя времени, мечом и смекалкой прокладывает себе дорогу в хитросплетении дворцовых переходов. Принц, чья так необходимая и нам целеустремленность приведет его к победе. Вспомним и добрую, отзывчивую русалочку, которая, имея храброе сердце и хороших, верных друзей, смело противостоит, злым козням, придворных подводного царства. На мой взгляд, будут неправы те игроки, кто, используя игровой компьютер только как средство проведения досуга, механически проходя этап за этапом, умело и слаженно нажимая на кнопки джойстика, не один раз “проходя” сложную игру, потом, пренебрежительно пожав плечами, бросают: “Я ожидал большего”. Они и не подозревают, что игра и от них может потребовать нечто большего, чем праздное развлечение. Способны ли вы прочувствовать это? Готовы ли вы сами к встрече с игрой, в которой, пусть в символической форме, но присутствует элемент рассуждения о жизни и вечных ценностях любви и добра?

Поверьте героям игр, живите их жизнью, и тогда, если в вас еще не угас романтик и искатель приключений, в этом куда более реальном компьютерном мире вы сможете найти и свое место. “Чудачество” — скажет кто-то. А мне почему-то хочется, чтобы таких чудаков было больше.

Программируем игру

—Вы видели теннис на Уимблдоне? А теперь увидите на Бейсике. — так начала занятия Зеленая Ящерица, которую приятели называют просто ЗЯ. Дело в том, что к нам в журнал приходит много писем, в которых читатели сообщают, что собираются стать крутыми программистами, и сами будут создавать игры. Великий Дракон не мог остаться безучастным к такому благородному стремлению, и посему в перерыве между оптимизацией системного кода MS-DOS и разгромом вражеских полчищ поручил своей ассистентке ЗЯ посодействовать начинающим игроделам.

— Для начала — продолжила ЗЯ — напишем программу полета мяча. Вместо мяча по экрану будет летать буква “О”. Размеры экрана 80x25 позиций. Верхняя позиция - первая, нижняя - двадцать пятая. По нижней позиции будет двигаться ракетка. Но ее пока нет, мяч будет отражаться от 23-й позиции. Обозначим X и Y координаты мяча, а XV и YV — скорость вдоль сторон экрана. В первых девяти операторах [с номерами от 10 до 90] очистим экран и установим начальную позицию мяча. Если вы используете PC-компьютер, то для вывода мяча в заданную позицию экрана применяйте операторы LOCATE и PRINT. Учтите, что на иных компьютерах для этого придется указывать другие командные слова, возможно, это будет PRINTXY. Напишите нам, какие команды на компьютере, который вы используете. Для задержки запишем пустой цикл. Вместо числа 400 можете поставить другое, которое лучше соответствует быстродействию используемой вами машины.

Как показать движение мяча? Бесконечно просто! Изобразим его в позиции (X,Y), операторы 60,70, сделаем паузу [80,90], чтобы глаз успел его заметить, уберем его, записав на его место пробел [100,110], а затем учитывая скорость пересчитаем координаты [140, 150], и поместим его в новой рассчитанной позиции [160,170]. Операторы 120 и 130 обеспечивают отражение от вертикальных и горизонтальных границ.

И так бесконечное число раз (оператор [200]). Что вы говорите? Слишком долго? Присылайте ваши варианты! Но учтите, что в следующем номере мы уже будем программировать ракетку. Так что поторопитесь.

Программируем игру Денди

0CLS
20 X=20
30Y=10
40YV=-1
60LOCATE Y,X
70PRINT “0”
80FORI=0TO400
90NEXTI
100LOCATEY,X
100PRINT” ”
120IF X>=80ORX<=1THENXV=-XV
130IFY>=23ORY<=1THENYV=-YV
140X=X+XV
150Y=Y+YV
160 LOCALE Y,X
170 PRINT”0”
180FORI=0TO400
190NEXTI
200GOTO100
210END

Урок ЗЯ законспектировал Александр Безенов
Журнал "Видео-Асс Dendy", №12, 1994 год.