Игра для программистов
| В этой статье не хватает ссылок на источники информации.
Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена.
Вы можете отредактировать эту статью, добавив ссылки на авторитетные источники. Эта отметка установлена 13 мая 2011. |
Игра для программистов — компьютерная игра, в которой человек не участвует напрямую в игре. Вместо этого он пишет управляющую программу, сражающуюся с себе подобными программами. Такие игры являются сложным и нетривиальным упражнением для программистов.
Содержание |
Классификация игр для программистов[править]
По языку программирования[править]
Программа может писаться на особом виде ассемблера, либо на языках высокого уровня. Чаще всего применяются интерпретируемые языки наподобие Python.
По цели игры[править]
По цели игры такие игры делятся на:
- Бои в памяти. Задача программы — «завесить» программу противника.
- Настольные игры (например, на заре кибернетики были популярны шахматные турниры среди ЭВМ).
- Боевые роботы. Целью игры является создать управляющую программу для боевого робота или танка. В некоторых играх также можно изменять конфигурацию робота (тип мотора, брони, орудий и т. д.). Бои роботов довольно зрелищны для посторонних.
- Прочие игры. Управление гоночной машиной, колонией микробов, и т. д.
История[править]
В 1961 году в Bell Labs была разработана игра «Дарвин». В начала 1980-х годов под влиянием «Дарвина» была разработана игра «Бой в памяти». Ей суждено было стать популярной, она даже перешагнула железный занавес: в Переславле-Залесском была своя команда по «Бою в памяти».
В 1970 году прошёл первый шахматный турнир среди ЭВМ.
В начале 90-х годов Томом Пойндекстером была разработана игра C Robots — первая программистская игра, в которой надо было управлять боевым роботом. Боевой робот — тележка, снабжённая радаром и миномётом. Для сканирования местности надо было указать, на какой угол повернуть радар, и остроту диаграммы направленности. Чем шире диаграмма, тем больше шансов, что вражеский робот попадёт в сектор обзора, но и точность сканирования, соответственно, меньше. Миномёт стреляет осколочным снарядом, для выстрела надо задать направление и расстояние, на котором должен приземлиться снаряд. У этой игры было много недостатков: интерпретатор был достаточно неудачным; робот, который стрелял много, обычно побеждал робота, который стрелял метко.
Игра C Robots была усовершенсовована Дэвидом Мальмбергом и переведена на язык Паскаль, она получила название Pascal Robots (или P-Robots). В игру был добавлен расход топлива; если робот оставался без топлива, ему оставалось только ждать, пока кто-то не прикончит его. Появились препятствия и командная игра. Добавлена возможность конфигурировать робота: можно выбрать одну из трёх пушек, один из пяти моторов, один из пяти топливных баков, один из трёх вариантов брони, а также дополнительное оборудование: защитное поле, дистанционные бомбы, ремонтный комплект и маскировку. Впрочем, баланс между оборудованием не был проработан, и был написан робот Now, эксплуатирующий этот дисбаланс. Now не имел никакого интеллекта; фактически он являлся огромным топливным баком, снабжённым лёгким мотором, лёгкой бронёй и защитным полем. Пользуясь тем, что у роботов с лёгкой бронёй защитное поле расходует очень мало топлива, Now легко выигрывал и в массовой перестрелке, и один на один. Также после того, как были опубликованы исходные тексты Pascal Robots, обнаружилось несколько несоответствий поведения игры заявленному в документации: например, в документации сказано, что дистанционная бомба поражает всех роботов независимо от того, включен ли щит; в реальности защитное поле спасает от бомбы.
Пожалуй, самая известная игра о боевых роботах — Robocode, разработанная в IBM. Эта игра сильно отличается от Pascal Robots. Если в Pascal Robots программист задаёт роботу, в какую сторону ехать, и он автоматически выйдет на этот курс, то в Robocode надо задавать, на какой угол повернуть руль и с какой скоростью ехать. Все роботы экипированы одинаково. Также снаряды поражают не осколками, а прямым попаданием.
Игра Robocode также в некоторой степени решила «проблему арбитра». Если в Pascal Robots, чтобы не допустить утечки кода, нужна была нейтральная сторона, проводящая соревнования (арбитр), то в Robocode можно просто выложить для свободной скачки class-файл своего робота. Обфускация достаточно надёжно защищает робота от декомпиляции.
В 1995 году прошли первые заезды в автосимуляторе RARS (Robot Auto Racing Simulator). В 1997 году был начат проект TORCS, позволявший ездить как людям, так и роботам.
Ныне существует много игр для программистов, но лишь немногие из них действительно популярны.
Турниры по настольным играм среди ЭВМ малопопулярны, чаще проводятся шахматные турниры между людьми и компьютерами. Лучшие из шахматных программ для ПК (2006 год) играют на уровне гроссмейстера, программы для специализированных компьютеров уверенно обыгрывают даже чемпионов. На начало 2010-х годов основная настольная игра для компьютеров — го; компьютер играет в го на уровне хорошего любителя.
Наиболее известные игры для программистов[править]
Бои в памяти[править]
- Дарвин — компьютерная игра для программистов, в которой сражались несколько ассемблерных программ до момента пока одна из программ не захватит всю память.
- Бой в памяти — разновидность компьютерной игры «Дарвин», где программы написаны на язык Redcode и работают под управлением Memory Array Redcode Simulator.
Управление боевыми роботами[править]
- C Robots
- Pascal Robots
- Robocode — битва роботов-танков. Программы можно писать на Java или .NET.
- Robot Battle
- Robotwar
- Robot Warfare 1 - битва роботов на 2D поле. http://robots.chat.ru
- Scalatron — соревнование роботов на арене. Сражение роботов предусмотрено, но для победы сражаться не обязательно. Программы можно писать на Scala или Java.
Прочие[править]
- Colobot — трёхмерная обучающая стратегическая игра, в которой можно запрограммировать роботов на встроенном языке.
- Ceebot — серия трёхмерных обучающих игр для детей, созданных на основе игры Colobot и ориентированных на использование в школах.
- Robot Auto Racing Simulator или RARS — трёхмерный симулятор гонок между запрограммированными гоночными автомобилями.
- TORCS — автосимулятор, основанный на RARS, и пригодный как для обычной езды, так и для соревнования между запрограммированными гоночными автомобилями.
- Snake Battle — «визуальное» программирование боевых змеек.
- Война вирусов — игра, имитирующая развитие двух колоний вирусов, которые развиваются сами и уничтожают друг друга.
- Захват флага — командные соревнования, целью которых является оценка умения участников атаковать и защищать компьютерные системы.
Open source[править]
Ссылки[править]
- Программирование бота для игры в Марио на Java. In association with the IEEE Consumer Electronics Society. 2009-ый год.
- Игры для программистов от IBM: Robocode и не только
| Жанры компьютерных игр | |
|---|---|
| Action |
Стелс-экшен • 3D-шутер (FPS • TPS) • Shoot 'em up • Тактический шутер • MMOFPS • Платформер • Файтинг • Beat 'em up • Слешер |
| RPG |
Тактическая • Японская • Action • Hack and slash • MMORPG • Roguelike • ZPG |
| Стратегия | |
| Квест | |
| Симулятор |
Авто- (Симрейсинг • Гонки на выживание) • Авиа- • Железной дороги • Космический • Мото- • Танковый • Ме́ха • Подводных лодок • Бога • Жизни • Cвиданий • Градостроительный • Спортивный • Спортивный менеджер • Экономический • Карточной игры • Коллекционной карточной игры |
| Другие |
Обучающая игра • Головоломка • Музыкальная игра • Игра для программистов • Аркада • Казуальная игра |

