Читайте также: Необычные игры на SEGA, Мой топ-10 игр начала 90-х
Среди компьютерных игр есть отдельная группа древних ископаемых, которые тем не менее живее всех живых.
Чем они отличаются от других? Во-первых, это очень простой и азартный геймплей, который актуален во все времена. Человек буквально с первых секунд, без каких-либо вступлений, начинает играть и втягивается.
Во-вторых, очень простая визуализация. Любая из этих игр может быть сделана красиво в графике вплоть до 3D, но также может быть представлена в символьном виде и ничего не потерять от этого.
В-третьих, каждая из них иллюстрирует какую-то одну простую и ясную идею, которая реализуется с помощью специального алгоритма. Понимание этого алгоритма и воспроизведение его самостоятельно является неплохой практикой в программировании.
Ниже я перечислю те игры, которые считаю полезными для обучения программированию. Примечание: чтобы они были полезны, в них не надо играть, их надо писать. Или, играя в них, стараться понять, как они сделаны.
1. Life
Это не совсем игра, но классический пример клеточного автомата. С помощью всего трёх простейших условий, описывающих жизнь и смерть клеток, игра позволяет творить очень крутые вещи, внутри неё можно даже создать действующий компьютер!
2. Tetris
Это просто безусловная классика. Каждый программист должен написать Тетрис. Здесь есть основная база, нужная для интерактивных игр – пользовательский ввод, игровой цикл с таймером, представление объектов в памяти, работа с массивами и циклами. И если её реализация кажется слишком простой, всегда можно подумать над тем, как переписать её – например, попытаться сделать размер программы меньше, или решить задачу каким-нибудь другим, нестандартным способом.
3. Snake
Змейка, ползающая по экрану и поедающая яблоки, не так проста, как кажется. Знаете, что такое стек?
4. Xonix
Эта с виду простая игра таит в себе задачу определения замкнутого объема. Заставит подумать!
5. Arkanoid или Space Invaders
При всей их непохожести друг на друга, в основе эти две игры почти одинаковы. Здесь вы столкнетесь с обработкой взаимодействия множества разных объектов друг с другом.
6. Color Lines и другие "поставь предметы в ряд"
Поиск непрерывных цепочек и построение оптимальных маршрутов.
7. Tapper
В этой динамичной игре про бармена прячется реализация обслуживания очередей. А при желании можно даже потренироваться в создании многопоточной программы.
8. Asteroids
Работа с векторной графикой и тригонометрией в подчеркнуто минималистичном стиле.
9. Pac-Man
Ориентирование в лабиринте, программирование стратегии преследования и избегания
10. Zanac (условно)
Здесь представлена целая категория вертикальных или горизонтальных скроллеров. Отличительной особенностью таких игр является работа с большими количествами графических элементов и создание уровней, которые гораздо больше, чем помещается на экране.
Освоив по отдельности техники, применяемые в вышеперечисленных играх, вы несомненно сможете затем их комбинировать, чтобы писать более сложные игры.
А в следующий раз я расскажу о том, откуда берутся идеи для игр.