(Опубликована в газете "Переходный возраст", N11 (39), 1997. Писалась в поддержку проводимых республиканских заочных соревнований "Игровое программирование")
Одно из чудес XX века - компьютер - замечателен тем, что позволяет значительно облегчить человеческую работу и сделать ДЕЛО гораздо приятнее и эффективнее, тем самым увеличив время на столь любимый многими двуногими отдых. И homo sapiens не был бы по-настоящему sapiens'ом, если бы не попытался и компьютер использовать в сфере развлечений. Так появились компьютерные игры...
Игры, в которые играют люди
Первые игры появились на больших ЭВМ, которые занимали порой несколько залов. Я встречался с игрой "Крестики-нолики" на таких машинах. Игрок вводил свой ход с клавиатуры, указывая координаты клетки, куда он ставит крестик или нолик. Компьютер делал ответный ход и выводил результат на огромную бумажную ленту. Игрок смотрел распечатку и делал следующий ход.
Ну а потом пошло-поехало... Сначала появились мониторы, стремительно стала развиваться графика, появились новые устройства управления (например, джойстик - устройство, используемое только в играх), компьютер научился проигрывать музыку и "говорить", "различать" 16 с хвостиком миллионов (!) цветов.
Естественно, это отразилось и в играх. Возникли различные жанры игр: аркадные - что-то и кто-то постоянно носится по экрану; RPG (Role Play Game) - ролевые - вы сами создаете себе персонажа, которым будете играть, и играете от его лица; игры-квесты - нужно что-нибудь найти, как-нибудь применить и возможно, что-нибудь произойдет; игры-симуляторы, связанные с управлением каким-нибудь ездящим, плавающим или летающим средством передвижения; спортивные игры - всем известные футбол, баскетбол и т.п.; и много других. Получили распространение игры, использующие основные идеи какихлибо уже появившихся ранее (классический пример - DOOM-подобные игры - от хита всех времен и народов игры DOOM).
Короче, нынешние компьютерные игры даже и не снились тому оператору ЭВМ, который втихаря от начальства играл в "Крестикинолики". Он не отождествлял себя ни с "крестиком", ни с "ноликом" и четко представлял, где он, где игровое поле, а где начальник.
А приходилось ли вам когда-нибудь наблюдать за человеком, играющим, к примеру, в автомобильный симулятор типа Формулы-1? Если да, то вы наверняка заметили, что каждый раз, когда "его" автомобиль вписывается в поворот, игрок инстинктивно отклоняется в сторону, словно он сам сидит в болиде и взаправду ощущает действие инерции.
В наши дни игры позволяют человеку полностью забыть об окружающей реальности и погрузиться в новую, компьютерную, реальность. И возможность почувствовать себя внутри автомобиля - это одна из многих черт "виртуальной реальности". Сам термин "виртуальная реальность" обозначает мир, который мы воображаем, представляем себе, но при этом сами же в него "окунаемся", и он кажется нам вполне реальным, как тот, что окружает нас в действительности. Оказавшись в виртуальном мире, вы действительно можете почувствовать себя истребителем монстров, исследователем далеких уголков космоса, побыть самураем или ковбоем Дикого Запада.
Но поговорим теперь о людях, играющих в эти игры. Итак...
Люди, которые играют в игры
Если уже знакомый нам оператор довольствовался примитивными "Крестиками-ноликами", то теперешний закаленный в боях игроман значительно привередливее. Что же может удовлетворить современного тинейджера, воспринимающего достижения технического прогресса (в том числе и в компьютерной области) как само собой разумеющееся и с завидной легкостью приспосабливающего их к собственным нуждам? Ему подавай такую игру, чтобы она будоражила мысль, подогревала кровь, заставляла работать воображение. Человек начинает играть в компьютерные игры, и чем больше он играет, чем больше опыта он набирает, тем капризнее становится. Он требует все более сложных игр, его интересуют уже не только сам процесс игры, но и ее общий вид, музыкальное сопровождение, внутренняя логика. И наконец наступает день, когда человек перестает играть даже в самые любимые свои игры - надоело...
Надоело играть с тупым и предсказуемым соперником, все уловки которого вы уже успели раскусить. "Вот бы посражаться с настоящим, живым противником!" - начинаете мечтать вы. И это уже возможно: большинство современных игр позволяют играть одновременно нескольким участникам - либо на одном компьютере, либо на нескольких.
Эти игры, как, впрочем, и все другие компьютерные игры, сделали люди, о которых речь пойдет ниже.
Люди, которые делают игры
Как бы ни росли возможности компьютера, сам по себе он ничего не может сделать. Правильно сказал известный американский фантаст Гарри Гаррисон: "Компьютер - вообще-то машина глупая. Это просто большой арифмометр, который считает на пальцах. Только пальцев у него невероятно много и считает он с неимоверной скоростью".
Компьютер - ничто без тех людей, которые заставляют его делать нечто. Конечно же, я говорю о программистах. Среди многих людей, не причастных к этой профессии, бытует мнение, что программисты принадлежат к некоей особой тайной касте. Их деятельность и смысл жизни непонятны непосвященным, а сами программисты не желают снизойти до объяснений. Вот такие это гордецы! (Самое интересное, что некоторые программисты, любящие пококетничать, сами считают себя такими).
Но давайте разрушим этот миф. Программисты - это простые люди! Как пелось в песне: "Вы просто поверьте, а поймете потом". Ведь не считаете же вы первоклассного автомеханика, починившего вам автомобиль, высшим существом. А все это потому, что к этому вы привыкли давно, а программисты - это что-то новое у нас (хотя и эта профессия существует уже не менее пятидесяти лет).
А теперь - самое интересное. Знаете ли вы, что среди сегодняшних программистов очень много молодых ребят? Недалекое будущее этой профессии за теми, кому сегодня 14-17 лет. Именно поколение молодых стоит сейчас у руля информатизации общества. И некоторые сегодняшние школьники могут дать фору не одному программиступрофессионалу.
Можно предположить, что наше общество идет к тому времени, когда ни один человек не сможет обойтись без знания программирования (под знанием программирования я подразумеваю здесь понимание построений основных конструкций в языках программирования). Программирование уже сейчас может очень сильно облегчить работу человека, занимающегося обработкой текстов, составлением графиков, поддержкой различных баз данных (конечно, если он делает это с помощью компьютера). Человек, не владеющий такими знаниями, не сможет нормально существовать в том огромном потоке информации, который несет нам новое время.
В настоящее время существует и другая тенденция. Как и все в мире информатики, средства разработки программ тоже улучшаются и уже дошли до того, что для написания хорошей программы совсем не обязательно придумывать что-то самому: можно пользоваться материалом огромной библиотеки, наработанной другими программистами. А это, к сожалению, уже не требует от программиста того мастерства, той изворотливости ума, которые были необходимы ему ранее.
Такая тенденция влечет за собой две вещи. Во-первых, из-за все большей простоты написания программ все большее количество людей начинает заниматься "программированием", составляя свои программы из уже готовых блоков. Вся работа их состоит в том, чтобы найти и правильно соединить такие блоки (я взял слово "программирование" в кавычки, так как это "программирование" - это уже не та тяжелая и кропотливая работа, которая подразумевалась под этим словом ранее). Людей, занимающихся таким "программированием", я бы назвал "псевдопрограммистами". Во-вторых, все больше становится пропасть между псевдопрограммистами и Программистами с большой буквы. Ко вторым я отношу тех людей, которые при работе используют не только чужие блоки, но и постоянно пишут свои (конечно, такие, которых еще нет: изобретать велосипед было бы глупо).
Но вернемся к играм. Если кто-то думает, что программисты только пишут программы и не играют в игры, то он будет неправ. Как и обыкновенные люди, они тоже любят отвлечься, расслабиться.
Но есть одна особенная черта, которая присуща только игрокампрограммистам. Почти любой программист, играющий в какую-либо игру, сознательно или подсознательно пытается разобраться, а как же другой программист смог сделать такую классную игру. В голове начинают крутиться мысли, он думает, как бы сделал он. И тут можно думать о двух моментах: об оформлении игры и о том, по какой стратегии сражаются против тебя компьютерные противники. Если ваши мысли вертятся вокруг второго, поздравляем, вы - потенциальный (или реальный) Программист. Тогда вам должна быть близка мысль об игровом программировании!
Игры, которые делают людей
Что же такое игровое программирование? Это тоже разновидность игры для нескольких человек, только в этой игре вы управляете персонажами не лихорадочным нажатием кнопок, не дерганьем джойстика из стороны в сторону, а программой.
Здесь все как в старых рыцарских турнирах. Сначала выбирается место и правила: все участники оговаривают возможности персонажей, которыми они будут управлять, то есть придумывается среда обитания персонажей. Затем идет этап подготовки: каждый участник должен описать набор действий своего персонажа - написать программу. Здесь сказывается все: и опыт, и умение логически мыслить, и умение предсказывать шаги соперника. Когда каждый участник напишет свою программу-стратегию, эти стратегии "сталкиваются" между собой на заранее оговоренной "территории", которую обычно называют обстановкой. И здесь игрок уже ничего не может изменить: все, что мог, он сделал при написании стратегии, его персонаж будет строго действовать полученным инструкциям.
Вся прелесть игрового программирования состоит в том, что игра начинается задолго до проведения боя и успех зачастую предрешен еще до решающей схватки. Когда игрок разрабатывает стратегию, он уже играет, так как мысленно сталкивает своего персонажа с противником и просчитывает, что при этом получится. Это очень похоже на игру в солдатиков: сталкивая металлические (деревянные, пластмассовые или в какие вы там играли) фигурки, вы мысленно видите огромное поле боя, слышите крики атакующих, стоны раненых... Ну а сам бой - это лишь подтверждение или опровержение той картины, которую нарисовало ваше буйное воображение.
Возможно, многие подумают, что это страшно тяжелая вещь, доступная лишь программистам (уж слишком часто я бросал слово "программа" направо и налево). Нет! Для того, чтобы участвовать в таких играх, не обязательно хорошо знать какой-либо язык программирования, хотя
это и может очень помочь. Любой человек, обладающий неплохим логическим мышлением, может попробовать свои силы в соревнованиях. Для участия достаточно выучить некоторые основные правила, ибо без правил не обходится ни одна игра. Правда, эти правила будут несколько специфичны, но не так уж и сложны. Главное - чтобы человек имел желание.
Такие турниры могут быть очень ценными как для программистов, так и для не-программистов. Программисту они не позволяют расслабляться: он может постоянно поддерживать форму, оттачивать мастерство. Не-программист, играя, понимает, что программирование - это очень интересная
вещь, которой стоит заниматься хотя бы для удовольствия.
Игровое программирование медленно набирает силу. Вот и в нашей республике оно наконец-то начало разворачиваться. Участвовать в таких соревнованиях может любой желающий, лишь бы он был школьником или студентом. Больше ничто не имеет значения. Хочешь - участвуй! Попробуй свои силы и возможно, ты победишь! К тому же победителю достанутся ценные призы (хотя и не поцелуй прекрасной дамы, как это было у рыцарей).
Так что добро пожаловать на турнир. Игровое программирование только начинается...
Алексей Геpасимович
(Black Knight)
|