Сравнение игр для программистов

    В данном топике я попытаюсь сравнить некоторые из игр для программистов.
    • Colobot
    • CeeBot
    • Terrarium
    • Robocode
    • Evole
    • DarwinBots II
    • breve


    Более подробное описание для игр Colobot/CeeBot можно прочитать здесь, про Robocode здесь, про CoreWars здесь.

    Небольшое описание каждой из игр


    Colobot — программист управляет астронавтом, программы мы пишем для роботов, спектр задач от «пойди принеси» до «найди и убей».Цель выполнять различные миссии.

    CeeBot — старший брат Colobot'а, теже разработчики, но больше возможностей, данная игра нацелена на обучение программированию, имеет несколько версий нацеленых на разный возрастной контингент.Цель выполнять различные упражнения.

    Terrarium — программист создает своё животное, подконтрольные параметры от скорости, силы атаки, дальности зрения до алгоритмов поведения. Цель создать наиболее живучий организм.

    Robocode — программируем свой танк, наша цель выжить и изжить противника.

    Evolve — моделирование искусветнной жизни, программируем наш организм, который будет размножатся, умирать, изменятся.

    DarwinBots II — Аналогично Evolve программируем свой организм, как пишут авторы, данную программу можно считать «ALife version of C Robots».

    Breve — пакет для моделирования децентрализованных систем и искуственной жизни(Alife), имеет свой язык «steve», также поддерживает Python (чем сообственно может быть интересным), на нем же и написан.

    Сравнение



    Для тех у кого таблица выглядит криво, есть копия на docs.google.com

    Colobot Ceeboot Terrarium Robocode Evolve DarwinBots II breve
    Лицензия Shareware Shareware Своя лицензия Common Public License 1.0 Своя лицензия(указана на заглавной странице) Своя лицензия GPL
    Цена 68 $ or 47 € 68 $ or 47 € - - - - -
    Сайт Link Link Link Link Link Link Link
    Развивается
    ли проект?
    - + + + - + Последняя версия
    вышла 02/25/2008
    Текущая
    версия
    1.8 2.0.002 2.0 1.7.1.3 Beta 4.8e 2.44.1 2.7.2
    Жанр 3D RTS Logical,
    Education
    Alife Programing game Alife Alife Simulation
    Язык Свой язык
    синтаксис схож с
    С++ и Java
    Свой язык
    синтаксис схож с
    С++ ,Java,C#
    C# Java Свой язык
    KFORTH
    Свой язык Python,”steve”
    Open Source - - + + + + +
    Локализация Английский,
    польский,
    французский,
    русский
    Английский,
    французский,
    немецкий
    Английский Английский Английский Английский Английский
    Наличие
    визуализации
    3D мир 3D мир 2D арена 2D арена 2D,3D
    Простые
    формы
    2D Простые
    формы
    3D
    визуализация
    Возможность
    соревнования
    между
    ботами
    - + + + + + +
    Возможность
    соревнования
    между
    ботами и
    людьми
    - + - - - - -
    Поддержка
    Windows
    + + + + + + +
    Поддержка
    Linux
    - - - + + (консольная
    версия)
    - +
    Поддержка
    Mac
    - - - + - - +


    P.S. Это мой первый хабратопик, поэтому просьба указать на недостатки и ошибки в личку или аську. Так же хотелось бы услышать какие критерии стоит добавить, и какие игры по вашему мнению необходимо добавить в сравнение.

    UPD Спасибо пользователю shx, указал на ошибку Robocode работает под Mac, про Evolve, такого на сайте не сказано, прошу прощения, запутался при верстке.

    UPD.2 Спасибо пользователю Yizahi за идею с docs.google.
    Метки:
    Поделиться публикацией
    Комментарии 58
    • 0
      У них же совершенно разный уровень.
      Colobot — игра, которая прекрасно подойдет для начала обучения вашего чада программированию, в отличии от того же самого Robocode.
      • 0
        Robocode помоему соизмерим с Colobot, не так много там параметров можно контролировать (подобные игры бывают на олимпиадах). А насчет Alife игр согласен с вами, учту в следущий раз.
        • 0
          В Robocode очень много параметров можно контролировать. Если не верите — посмотрите на API.
          • 0
            Спасибо, тогда исправлюсь не так много параметров контролировать необходимо, для написания простого бота.Соответсвенно сложность будет зависить только от фантазии программиста.
    • +2
      А какую банально посоветуете? Ну чтобы поинтересней и не слишком уж тяжело (чтобы отдохнуть от работы а не продолжить её)
      • 0
        Colobot/CeeBot, очень хорошая документация, плюс можно «схалявить» сделать что-то вручную :) описание было в блоге «Игры для программистов». Возможно если любите противоборство то Robocode, можно к примеру устраивать посиделки с друзьями под пиво, и смотреть чей же бот все таки лучше :)
      • 0
        Безусловно, начинать надо с чего-то простого, вроде Colobot/Ceebot. А затем уже калибровать, пробовать что-нибудь посложнее.
    • +1
      Есть такая ещё игра Aerobots — также программирование логики космитических кораблей в звёздных баталиях.
      К сожалению, игра как-то потерялась в интернете. В гугле ещё живут посты на форумах автора GreenTea, но все они ведут уже на не рабочие сайты.

      Может вдруг автор увидит данный коммент на хабре и возродит проект. Очень бы хотелось онлайн-баталий.
    • +2
      Старый добрый CoreWar
      • 0
        Мне он показался слишком сложным относительно данных сред, все-таки сейчас не все знают низкоуровневые языки на должном уровне. Как аналог CoreWar здесь выступает Evolve.
        This simulator is a union of Conway's Game of Life and Core Wars
        .Как написано на офф. сайте.
        • 0
          Куда уж проще — одномерный мир, ассемблерообразный язык.
    • 0
      Вопрос: стоит ли перемещать этот хабратопик в тематический блог Игры для программистов ?
      • +2
        Да, несомненно стоит.
        Благо, карма уже позволяет.
    • 0
      Лучше бы одну игру, но подробно.
      • +1
        Этим направлением занимаюсь я :-)
    • 0
      А нет ли онлайн игр программистов? Что-то вроде арены на выживание роботов например. Вроде что-то такое слышал.
      • 0
        Вот к примеру репозитарий роботов Robocode, на сколько я понял в Terrarium данная функция поддерживалась, соотвесвенно критерий «Возможность соревнования между ботами» означает возможность именно арены(либо другой формы соревнований)
      • 0
        Обратите внимание на Terrarium.
      • 0
        Если не то потенциально свободная ниша для разработок)
        • +4
          Чем сообственно и собираюсь начать заниматся :)
          • 0
            Искренне желаю Вам удачи!
            Трудитесь! Задумка хорошая.
      • 0
        Сразу оговорюсь что возможность скачать с сайта робота-соперника и потом импортировать его к себе чтобы сразиться это не онлайн битва! Хочется именно чтобы можно было выбрать соперника, получать очки, может даже открывать по мере набирания экспы новые функции? Или покупать их в магазине. Это было бы очень круто (:
        • +4
          Ура, Теперь вам стал доступен цикл for!
          • 0
            ну что-то в этом духе ))
      • +4
        Начал делать в сентябре. Написал игровой сервер (свой «мир» со своими правилами, код в стиле pascal), php-обвязку (взаимодействие с игровым сервером по TCP/IP), js-скрипты (отображение боев, редактор кода). В итоге, уже вполне можно было соревноваться: писать свой код, тестировать на ботах, выставлять своих роботов на бой (немного поиграли с друзьями)… и все это в браузере. В планах было сделать систему заработка денег (турниры, дуэли), апгрейда роботов. Уже составил ТЗ на разработку флешки (чтобы бои были более красочными). А потом как-то все заглохло (занялся другим проектом). Двухмесячный труд лежит в папке мертвым грузом и вряд ли когда-нибудь проект увидит свет (сейчас все это кажется неперспективным).
        • +6
          Передайте кому-нибудь наработки, или выложите, а сообщество глядишь и подхватит идею и доделает :) Получится продвинутый MyBrute.
        • 0
          печально
        • 0
          я тоже хочу порекомендовать сделать имеющиеся наработки общественным достоянием )
      • 0
        В том же Core War есть возможность присылать своего бота на соревнования. Посмотрите www.koth.org/
        • 0
          нет, все равно не то…
          • 0
            Правильно я понимаю, что вам интересена именно статистика?
            • 0
              Не совсем, скорее мне интересно участвовать в боях непосредственно в онлайн, с возможностью посмотреть на чужие бои, но не раз в неделю а прямо здесь и сейчас. Что-то сделал, проверил результат с кем-то, переделал, еще раз посмотрел. В духе любых популярных сейчас браузерных игр. Ну и конечно экономическая составляющая прибавит интереса игре
    • 0
      В Colobot был сюжет, а остальные просто какие-то наборы заданий.
    • 0
      Странно, что в этих играх не использую динамические языки типа Javascript, Ruby или Python.
      • 0
        Breve — пакет для моделирования децентрализованных систем и искуственной жизни(Alife), имеет свой язык «steve», также поддерживает Python (чем сообственно может быть интересным), на нем же и написан.
    • 0
      а ни кто не пробовал Герберта (Herbert)?

    • 0
      Про Droidbattles забыли — программирование роботов на Ассемблере)
      Вот оф. сайт www.bluefire.nu/droidbattles/, а вообще есть в репозитории дебиана)
    • +2
      robocup
      футбол роботов на компьютере (robocup.org), команды мультиагенты. Кстати, давно мечтал — создать команду… а то там доминируют в основном иранские и немецкие и португальские команды (вроде бы так...). Если кому интересна тема robocup, а именно создание команды (создадим вместе основу, а там возможны ответвления — в зависимости от желания), пишите lnn1974()gmail.com. А там глядишь и свой чемпионат забубухаем!
    • +2
      а еще на хабре были уже топики про игры Light Bot и RoboZZle.
      правда обе они представители скорее casual games.
    • +1
      У меня таблица уползла под блоки «Прямой эфир ↓» и «Популярные блоги ↓»…
      • 0
        Да есть такая проблема, это так же ограничивает количество игр для сравнения, либо пришлось бы разбивать на несколько таблиц.

        Если вам интересна эта таблица, могу отослать вам копию в *.odt.
        • 0
          Отсылайте, если не трудно! ivanzoid@gmail.com
        • +1
          Сделайте в онлайн таблицах и поставьте ссылку в основном сообщении. Всем ведь файлы не поотправляешь.

          Можно в гугле — docs.google.com/, можно в альтернативном варианте (Zoho и др.).
        • 0
          Спасибо!
    • 0
      А есть что-нибудь в духе сражений Heroes 3? Подправить код юнитов в армии и сразиться с другом :))
      Те это видимо нечто вроде Robocode, но что бы несколько сущностей были совешенно разными, но играть могли сообща.
      • 0
        Colobot/CeeBot именно в плане взаимодействия различных видов, там есть примеры где один робот управляет другим.
    • 0
      А как насчет идеи выделить сервер… с возможностью выкладывания демонов с поддержкой api (и возможно обязательным проходом тестов на сервере)…
      для унификации выдавать пользователю (или группе ) свой открытый порт + пароль…
      а арена — шаблонизированный вывод работы этих демонов… тут можно визуализации под api…
    • +1
      Ещё одна игра для программистов.

      Название: GalaxyFX
      Язык: JavaFX script, Java
      Адрес сайта: www.electricjungle.ru/galaxyfx
      • 0
        Благодарю, заинтересовало, возможно скоро сделаю подробный обзор.
    • +2
      познакомится с breve мне пришлось в рамках недельного практического курса. нас было групп десять, по 2-3 человека в каждой. цель мероприятия — создать свою свору агентов с простым поведением для реактивной системы, и в последний день сразится с другими командами потребляя пиво+чипсы или кофе+булочки.

      задание походило на Mars Explorer Experiment, что описал Steel. конечно же можно было следовать и своим идеям.

      в общих чертах Mars Explorer Experiment выглядит так: есть стационарный корабль-матка издающий радиосигнал, есть свора из автономных роботов, которые словно scv терранов тусуются по поверхности планеты и собирают для матки минералы. по радиосигналу эти машины определяют угол к кораблю-матке. ещё они могут срать кирпичами^H ^H^H^H^H^H раскидывать радиоктивные плюшки с короткоживущим изотопом. плюшки можно так же находить и собирать, и тем самым взаимодействовать с остальным роем. (вроде муравьиного феромона). сенсоры роботов конечно ограничены, и помимо плюшек и минералов различают ещё и препятствия, которых (в нашем случае) на марсе огромное множество в виде стен и… стен. так же наши агенты-тараканы имели голод/заряд, который нет-нет да подпитывали поеданием минералов.

      мы программировали layered behaviour этих агентов более или менее простыми действиями с разными приоритетами. это походит на планировщик задач и nice. ) вот пример:

      randomWalkBehaviour set-level to 100.
      followTrailBehaviour set-level to 90.
      turnAwayBehaviour set-level to 80.
      aimFoodBehaviour set-level to 70.
      pickupBehaviour set-level to 60.
      carryHomeBehaviour set-level to 50.
      dropFoodBehaviour set-level to 40.
      collisionBehaviour set-level to 30.
      eatFoodBehaviour set-level to 20.
      deadBehaviour set-level to 10.

      и к примеру само поведение:

      SubsumptionBehaviour: СollisionBehavior {

      + variables:

      + to init:
      self set-name to «CollisionBehavior».
      + to check-if-fires for-agent theAgent (object):
      if (theAgent wall-collided):
      {
      #theAgent set-color to (1.0, 1.0, 0.2).
      theAgent set-label to «X».
      return 1.
      }
      if ((theAgent get-globalTicks) % 5):
      theAgent set-label to (theAgent get-number).
      #theAgent set-color to ((theAgent get-team) get-teamcolor).
      return 0.
      + to fire for-agent theAgent (object):
      #theAgent decelerate.
      theAgent relative-rotate around-axis (0,1,0) by (random[2 * 3.141]).
      #print «Collided!!!».

      }

      ох, какой большой пост получился! если кому интересно, могу написать коротко о двух или трёх хитрых тактиках моих сокурсников.
      • 0
        Я думаю многим было бы интересно услышать больше о breve, хотя бы потом что он использует Python.А вы насколько я вижу имеете опыт работы с ним, может быть напишите подробный обзор?
        • 0
          бреве на вид не сложный, императивный объектно-ориентироованный язык. мой очень поверхностный опыт заключался лишь в недельном рассматривании некоторых предоставленных доцентом классов-прототипов, просмотр примеров самого бреве, лурканьем по форуму производителя — всё это для поставленной задачи, создать одно-два наследование и написать несколько алгоритмов, мне хватило.

          что-либо особо интересное (к примеру интереснее, чем то, что интерпретатор бывало полностью рушился при прерывании программы нажатием кнопки «стоп» ) по бреве я сейчас не вспомню, так как прошло уже более двух лет.

          интерес к курсу у меня появился не из-за бреве, о боже, а скорей всего из-за быстрых видимых результатов и большой мотивации доцента, который сделал предварительную работу, написал скелет кода, набил прототипы.

    • 0
      Опа, а я после работы предпочитаю поиграть во что нибудь непрограммерское.
      • 0
        Так здесь игра не программерская, жанр тут другой…
    • 0
      Кстати, небольшая просьба к автору:
      Раз вы хотите организовать «стартап» посвященный игре для программиста, сразу скажу: Мы на работе недавно хотели разработать такой проект. Для начала просто для себя, а потом когда выйдет нормальная версия провести достойную олимпиаду среду школьников/студентов. На данном этапе все находится пока на стадии обсуждения, но если вы действительно будете разрабатывать нечто такое, то с удовольствием выступлю как консультант или тестер (возможно даже всем отделом).
      Имеется достаточное количество предварительных требований для игры:
      1. Проведение открытых/закрытых турниров.
      2. Возможность просмотра игр всеми участниками в реал-тайме или в записи, но главное хорошая визуализация.
      3. Поддержка различных ЯП. Как не прискорбно, но одно из требований это Object Pascal.
      4. и т.д.

      Очень хотелось бы быть в курсе ваших начинаний или успехов.
    • 0
      Хотелось бы поправить:
      • Terrarium поддерживает не только C#, а вообще любой .NET язык.
      • Robocode поддерживает .NET языки и JVM языки.

    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.