- Программерская игра
-
Игра для программистов — компьютерная игра, в которой человек не участвует напрямую в игре. Вместо этого он пишет управляющую программу, сражающуюся с себе подобными программами. Такие игры являются сложным и нетривиальным упражнением для программистов.
Содержание
Классификация игр для программистов
По языку программирования
Программа может писаться на особом виде ассемблера, либо на языках высокого уровня. Чаще всего применяются интерпретируемые языки наподобие Java, C#.
По цели игры
По цели игры такие игры делятся на:
- Бои в памяти. Задача программы — «завесить» программу противника.
- Настольные игры (например, на заре кибернетики были популярны шахматные турниры среди ЭВМ).
- Боевые роботы. Целью игры является создать управляющую программу для боевого робота или танка. В некоторых играх также можно изменять конфигурацию робота (тип мотора, брони, орудий и т. д.). Бои роботов довольно зрелищны для посторонних.
- Прочие игры. Управление гоночной машиной, колонией микробов, и т. д.
История
В 1961 году в Bell Labs была разработана игра «Дарвин». В начала 1980-х годов под влиянием «Дарвина» была разработана игра «Бой в памяти». Ей суждено было стать популярной, она даже перешагнула железный занавес: в Переславле-Залесском была своя команда по «Бою в памяти».
В 1970 году прошёл первый шахматный турнир среди ЭВМ.
В начале 90-х годов Томом Пойндекстером была разработана игра C Robots — первая программистская игра, в которой надо было управлять боевым роботом. Боевой робот — тележка, снабжённая радаром и миномётом. Для сканирования местности надо было указать, на какой угол повернуть радар, и остроту диаграммы направленности. Чем шире диаграмма, тем больше шансов, что вражеский робот попадёт в сектор обзора, но и точность сканирования, соответственно, меньше. Миномёт стреляет осколочным снарядом, для выстрела надо задать направление и расстояние, на котором должен приземлиться снаряд. У этой игры было много недостатков: интерпретатор был достаточно неудачным; робот, который стрелял много, обычно побеждал робота, который стрелял метко.
Игра C Robots была усовершенсовована Дэвидом Мальмбергом и переведена на язык Паскаль, она получила название Pascal Robots (или P-Robots). В игру был добавлен расход топлива; если робот оставался без топлива, ему оставалось только ждать, пока кто-то не прикончит его. Появились препятствия и командная игра. Добавлена возможность конфигурировать робота: можно выбрать одну из трёх пушек, один из пяти моторов, один из пяти топливных баков, один из трёх вариантов брони, а также дополнительное оборудование: защитное поле, дистанционные бомбы, ремонтный комплект и маскировку. Впрочем, баланс между оборудованием не был проработан, и был написан робот Now, эксплуатирующий этот дисбаланс. Now не имел никакого интеллекта; фактически он являлся огромным топливным баком, снабжённым лёгким мотором, лёгкой бронёй и защитным полем. Пользуясь тем, что у роботов с лёгкой бронёй защитное поле расходует очень мало топлива, Now легко выигрывал и в массовой перестрелке, и один на один. Также после того, как были опубликованы исходные тексты Pascal Robots, обнаружилось несколько несоответствий поведения игры заявленному в документации: например, в документации сказано, что дистанционная бомба поражает всех роботов независимо от того, включен ли щит; в реальности защитное поле спасает от бомбы.
Пожалуй, самая известная игра о боевых роботах — Robocode, разработанная в Pascal Robots. Если в Pascal Robots программист задаёт роботу, в какую сторону ехать, и он автоматически выйдет на этот курс, то в Robocode надо задавать, на какой угол повернуть руль и с какой скоростью ехать. Все роботы экипированы одинаково. Также снаряды поражают не осколками, а прямым попаданием.
Игра Robocode также в некоторой степени решила «проблему арбитра». Если в Pascal Robots, чтобы не допустить утечки кода, нужна была нейтральная сторона, проводящая соревнования (арбитр), то в Robocode можно просто выложить для свободной скачки class-файл своего робота. Обфускация достаточно надёжно защищает робота от декомпиляции.
В 1995 году прошли первые заезды в автосимуляторе RARS (Robot Auto Racing Simulator). В 1997 году был начат проект
Ныне существует много игр для программистов, но лишь немногие из них действительно популярны.
Турниры по настольным играм среди ЭВМ малопопулярны, чаще проводятся шахматные турниры между людьми и компьютерами. Лучшие из шахматных программ для ПК (2006 год) играют на уровне гроссмейстера, программы для специализированных компьютеров уверенно обыгрывают даже чемпионов.
Наиболее известные игры для программистов
Бои в памяти
Управление боевыми роботами
- C Robots
- Pascal Robots
- Robocode — http://robocode.sourceforge.net/?Open&ca=daw-prod-obocode
- Robot Battle
Прочие
-
- Сolobot)
- RARS — программист должен создать искусственный интеллект для гоночного автомобиля.
- автосимулятор, основанный на RARS, и пригодный и для обычной езды, и как платформа для создания искусственного интеллекта.
- Snake Battle — «визуальное» программирование боевых змеек.
- Война вирусов (Virus War) — создание колоний вирусов.
- Захват флага (Capture the Flag, CTF) — игра для хакеров.
Ссылки
Жанры компьютерных игр Аркада • Платформер • Казуальная игра Квест • Interactive fiction • Визуальный роман • Любительский квест • Головоломка • Survival horror Файтинг • Beat 'em up • Слэшер Стратегия • Глобальная стратегия • Пошаговая стратегия • Стратегия в реальном времени • Варгейм • Артиллерия Ролевая игра • Тактическая ролевая игра • Японская ролевая игра • Hack and slash • MMORPG • ZPG • Эпическая игра Стелс-экшен • 3D-шутер • Shoot 'em up • Тактический шутер • Танцевальные игры • Ритмические игры • Музыкальный симулятор Симулятор • Автосимулятор • Авиасимулятор • Симулятор поезда • Космосимулятор • Танковый симулятор • Меха-симулятор • Симулятор подводных лодок • Симулятор бога • Симулятор жизни • Симулятор свиданий • Градостроительный симулятор • Спортивный симулятор • Спортивный менеджер • Экономический симулятор Обучающая игра • Игра для программистов
Wikimedia Foundation. 2010.