Сетки и игры имеют важное значение. Сетки являются основой для многих игр. Кроме того, они занимают особое место в информационных технологиях. Например, они позволяют показать изображения. А игра о жизни, основанная на решетке, открыла абсолютно новое направление в информатике. Правила другой компьютерной игры на основе решетки помогут объяснить, почему люди больше не являются лучшими игроками на планете. Программисты превратили саму жизнь в одну из таких игр.
Решетки и игры как изображения
Игры как высокотехнологичная область искусства
История компьютерных игр довольно коротка, но отрасль настолько разрослась, что сегодня стоит дороже, чем киноиндустрия. Играете ли вы за тролля в Warcraft или деретесь с назойливыми свинками в Angry Birds, за этим стоят компьютерные программы, установленные в игровых приставках, ноутбуках, смартфонах и планшетах, которые мы носим с собой по всему миру. Они обеспечивают нам и развлечения, и новые способы взаимодействия с другими людьми.
Полные видеоигры можно разделить на две основные категории. Над большими играми работают многие сотни людей — программисты, дизайнеры и художники. Они используют и науку — например, в физических движках, компьютерных программах, которые моделируют физические законы виртуального мира. Эти движки определяют, как падают камни или как ткань развевается на ветру. Конечно же, здесь мы наблюдаем пример компьютерного моделирования, только оно используется скорее для развлечения, чем для исследований. Сегодня видеоигры представляют собой сплав информатики и художественного творчества. Как сказал пионер отрасли Ричард Гэриотт, это квинтэссенция высокотехнологичного искусства.
Вторая основная категория игр — независимые игры, в основном разрабатываются для смартфонов. Здесь для результата хватит небольшой группы увлеченных и творческих программистов и дизайнеров. Появление рынка приложений для смартфонов привело к взрывному росту новых идей и тем, которые можно исследовать и развить. Это особенно верно для игр, интегрированных в социальные сети (наши так называемые социальные графы), в которых все мы проводим много времени. Говорят, идея для приложения найдется у каждого, и с небольшой помощью вы сможете сами что-нибудь создать. Если вам интересно, можно взять бесплатный программный пакет из интернета, который позволит превратить ваши идеи в код для смартфона. Потом его можно скачать на свой телефон и удивить друзей.
Пиксельные картинки
В основе своей компьютерные игры строятся на компьютерной графике и изображениях (хотя можно ждать появления компьютерных игр, в которые вы будете играть в реальном мире и при этом задействовать все органы чувств!). Изображения, которые мы видим на экране, состоят из многих тысяч пикселов. Пикселы — это просто элементы картинки, маленькие точки на экране. Их яркость и цвет можно изменять, потому что они представлены в виде цифр. Если экран достаточно велик, можно создать абсолютно любое изображение, установив для пикселов определенное значение с помощью правильно подобранных чисел. Чем больше пикселов, тем выше разрешение и тем более детальное и четкое изображение мы можем получить. На рис. 54a изображена голова робота из 64 пикселов (8×8). Рисунок едва узнаваем, поскольку пикселов не хватает, чтобы показать детали. На рис. 54b — та же картинка, но пикселов уже 256 (16×16). Очевидно, что это голова робота. Если добавить еще пикселов, то есть увеличить разрешение, картинка может стать еще более подробной — например, на ней можно показать форму глаз, носа и рта.
Сам экран компьютера можно считать решеткой, и в таком случае игра — это серия изображений, которые мы контролируем (снова представление в действии).
Изображения можно создавать самыми разными способами с помощью компьютерной графики. Простые растровые методы подразумевают сохранение каждого пиксела. Нашу первую картинку можно сохранить в виде 64 цифр:
Здесь 0 означает белый пиксел, а 1 — черный пиксел. Мы создаем изображения, продвигаясь по линиям сверху вниз и быстро устанавливая значение пикселов.
Чем больше пикселов, тем яснее изображение, но и тем больше цифр необходимо сохранить, чтобы представить его. Чтобы сохранить изображение робота в более высоком разрешении, нам понадобится 256 цифр вместо всего лишь 64: