Полигон для юных программистов В далеком 1987 году я, тогда ученик 9 класса ФМШ, впервые получил доступ не к алфавитно-цифровому терминалу регулярно виснущей ЕС ЭВМ, где можно было работать лишь с учебным интерпретатором русскоязычного паскалеподобного языка, а к настоящему персональному компьютеру Yamaha MSX 1 с четырьмя графическими режимами (напоминающими нынешние текстовые - экран делился на 3 области по 256 символов 8 на 8 точек, идущие строками по 32, и рисование графики, по сути, сводилось к перепрограммированию фонтов), внешним подключаемым дисководом (слово "винчестер" тогда обозначало исключительно винтовку) и одной казенной дискетой (720 К) на двоих, содержавшей операционную систему и еще ряд полезных программ, включая борландовский компилятор Паскаля (при этом на ней еще оставалось много места под игрушки, занимавшие обычно 16 или 32 килобайта, и собственные программы).
Естественно, дорвавшись до столь продвинутой техники, я решил от учебных программ типа вычисления факториала и сортировки массива перейти к чему-то серьезному и изучать Паскаль непосредственно в процессе написания собственной игры (кстати, лучший способ изучить язык программирования - это сразу начать писать на нем что-то реальное). Игра называлась "Третья мировая война", содержала хохмы типа "Минобороны СССР предупреждает: развязывание ядерной войны вредит вашему здоровью" и имела два режима: с использованием популярной тогда программы СОИ (космической противоракетной обороны, которую якобы намеревались создать США; это была одна из наиболее блестящих операций по дезинформации в истории, заставившая Советский Союз надорвать пуп в непосильной для него гонке вооружений, в то время как реально создание такой системы было тогда непосильно и для США) или советского "ассиметричного ответа", предусматривавшего поражение ракет противника исключительно наземными средствами. Суть игры была в том, что на полукруглую поверхность планеты, где были расположены города (советские или американские), сыпались из космоса по параболическим траекториям ракеты, а их надо было сбивать наземными ракетами, взлетающими вертикально, или лазерами с пролетающих сверху с постоянной скоростью спутников. Стрелять надо было с упреждением, самонаведения не было. Ответные удары в игре не фигурировали. Атака продолжалась фиксированное время, после чего сообщались общие потери (численности населения задействованных городов были честно выписаны мной из энциклопедии). Впоследствии упрощенная версия этой игры была реализована мной на Бэйсике для БК-0011.
К чему это я? А к тому, что в некой британской фирме тоже, видимо, решили поучить Паскаль (а может быть, Си). Да при этом еще заставить наивных пользователей оплатить эту учебу. Во всяком случае, игра с громким названием "Planetary Defense" (для русскоязычных наивных пользователей - "На страже Галактики") - это фактически то самое, что я описал выше. Ну разве что графика покруче (хотя все равно чисто двухмерная), и планета отображается не полукругом внизу, а кругом в центре экрана (причем этот круг еще медленно вращается). Еще отличия - у планеты может быть несколько естественных спутников (все вращаются по одной орбите), на которых также могут располагаться города и ракетные базы (1 шт.), и защитное поле (можно выбрать опционально, создается ли оно искусственными спутниками, которые гибнут при близких взрывах, или нет; в первом случае от поля очень быстро остаются жалкие ошметки, во втором оно оказывается почти непробиваемым, так что баланс играбельности не выдержан ни там, ни там).
Ракеты у вас двух типов (одни почему-то названы "экранными", другие "скоростными"; вторые, действительно, побыстрее, но тоже летят по прямой (исключая стартовый участок траектории) и не умеют самонаводиться; взрываются ваши ракеты, кстати, не при столкновении с другим объектом (если это не естественный спутник), а при достижении точки, в которую вы ткнули мышкой). Ракетные базы не уничтожаются, но число ракет обоего типа конечно. Вражеские ракеты тоже летят по прямой (даже не по параболическим траекториям!), но некоторые из них способны наводиться на город на финальной стадии полета. В отличие, опять-таки, от моей игры выбирать, с какой базы запустить ракету, не надо - автоматически выбирается ближайшая к указанной мышкой точке (это отображается линией между базой и мышиным курсором). Спутников с лазерами у игрока нет, зато они есть у противника (их можно сбить раньше, чем они успеют развернуться и начать отстреливать оборонительные ракеты; если не успеть этого сделать, придется запустить по спутнику несколько ракет практически одновременно - все он сбить не успеет). Еще у противника есть две разновидности кораблей - обычные, летящие (по прямой) прямо на планету, и "невидимые", появляющиеся лишь у края экрана - которые запускают собственные ракеты; естественно, такие корабли лучше сбивать прежде, чем они выстрелят. В старших миссиях на планету еще норовят упасть астероиды, почему-то горящие. Игроку в некоторых миссиях нужно не только защищать города планеты, но и прикрывать эвакуацию жителей. Эвакуационные корабли взлетают с планеты и летят (по прямой) к краю экрана, где уходят в гиперпространство; с ракетами и вражескими кораблями они не сталкиваются, но близкий взрыв (вашей собственной ракеты или пораженного ей объекта) их уничтожает. Также их могут сбивать лазеры со спутников.
Атака продолжается фиксированное время. В конце вам сообщают общие потери (миссия считается выигранной, если удалось сохранить не менее 25% населения). Ответные удары в игре не фигурируют. Хохмы отсутствуют, если не относить к таковым наличие планеты под названием Харьков (с соответствующими же городами).
В игре три уровня сложности (определяющие интенсивность вражеских атак; впрочем, это практически перекрывается возможностью менять в опциях скорость) и 21 миссия (в каждой - своя планета), которые, в принципе, образуют линейную кампанию, но можно выбрать в опциях, чтобы они были доступны сразу все. Идиотизм ситуации подчеркивается тем, что в последней миссии вы должны прикрывать эвакуацию крупной планеты, что, в принципе, возможно лишь при катастрофическом исходе военных действий. Однако после этого вам заявляют, что война выиграна!
Притом это безобразие еще и глючное. Играть можно в двух видеорежимах - 800*600 и 1024*768; второй удобнее, ибо на экран помещается вся картинка (планета и окружающий ее космос), а в первом ее надо скроллировать. Так вот при этих переключениях корректно восстанавливать исходный режим "виндов" (у меня это 800*600) игра не умеет. При выходе она просто наглухо повесила машину, оставив "виндам" на память разрешение от 1024*768, а частоту развертки - от 800*600. Так что после перезагрузки экран пошел свистящей рябью. Сами понимаете, сколько незлых тихих слов я сказал в адрес разработчиков, пока перезагружался в "safe mode" и вручную прописывал в реестре нужные значения. И это я еще знал, где и что прописывать, а что бы делал на моем месте "чайник" - вообще не представляю...
Не говоря уже о таких шалостях, как создание без спроса при инсталляции в главном меню (том, которое вызывается по кнопке Start) каталога "Программы" (расстарались горе-локализаторы) с соответствующими поддиректориями, куда и кладется сие чудо программерской мысли. Авторы, очевидно, не в курсе, что "винды" бывают не только русифицированные, и что у нормальных людей этот каталог называется Programs. Еще более они не в курсе, что его имя можно (и нужно!) получать из соответствующей системной переменной. Хорошо хоть они ничего не попытались писать в каталог Windows, который, например, у меня называется Mustdie...
В общем, то, что 17 лет назад годилось в качестве первой программы школьника, изучающего Паскаль, теперь подается как коммерческий продукт (защищенный, кстати, от копирования, то есть нужно еще и CD-ROM держать в дисководе!). Не имею в виду плагиат - я свои первые программы писал для себя и не распространял - говорю лишь об уровне. Если бы подобная программка лежала в Интернете в качестве одной из многочисленных бесплатных мелких игрушек (сейчас такие модно делать средствами flash), это было бы нормально, но покупать такое на диске?! Увольте.