Programmer Unknown's BattleGround: открытая площадка для сражений программистов

    image

    Изначально проект PUBG (просим прощения у оригинальной PUBG за использование их аббревиатуры, мы всего лишь хотим использовать эту игру для развития навыков программирования и не планируем публиковать ее в Steam в будущем) был разработан как внутренний проект нашей студии для развлечения. Затем же мы подумали, что он может быть полезен другим студиям, компаниям и образовательным учреждениям, и опубликовали его под лицензией MIT.

    Что это такое?


    PUBG представляет собой автоматическое поле боя, на котором алгоритмы сражаются друг с другом в режиме реального времени. Каждый алгоритм контролирует существо (которое может быть быком, носорогом и т.д.) с целью собрать пули и атаковать ими своих противников. Каждая победа увеличивает коэффициент интеллекта каждого существа, самые умные из которых отображаются в единой таблице рекордов.

    image

    Посмотрите как это работает у нас.

    Зачем это нужно?


    1. Если вы изучаете программирование, вы можете использовать PUBG для тренировки
      навыка проекции абстрактных задач на конкретные элементы алгоритма.
    2. Если вы работаете в команде, вы можете организовать еженедельные соревнования
      и награждать победителя пиццей, пивом или iPhone X.
    3. Если вы преподаете программирование, вы можете использовать PUBG как небольшую
      лабораторию с целью демонстрации работы прикладных базовых алгоритмов. Создавать
      мозг для существа зачастую гораздо интереснее чем рисовать параболу на экране.

    Как создать своего бота?


    1. Скачайте последнюю версию игры.
    2. Откройте файл /brains/br_edmund.js для редактирования, прочитайте комментарии в нем и измените логику мозга до желаемого поведения существа.
    3. Откройте /index.html в браузере чтобы увидеть что у вас получилось. Это все.
    4. Вы можете изменить массив cfg_sources в файле config.js чтобы убрать из игры некоторых существ или добавить своих собственных.
    5. Вы можете редактировать другие переменные в файле config.js для изменения правил игры, например установить shuffleBrains в false чтобы начинать игру с вашего мозга, или изменить значение maxAliveCreatures чтобы сражаться с большим или меньшим количеством врагов.
    6. Попробуйте свои умения в сражениях с лучшими мозгами.

    Материалы


    По ссылке доступа подробная документация с описанием способностей животных, правил, порядка проведения соревнований и др. Исходные коды проекты доступны на GitHub, вы можете их использовать на свое усмотрение: форкнуть в свою версию для обучения, соревнований с друзьями и т.д. Удачных и веселых битв!
    Share post

    Comments 16

      0
      О, это что-то новенькое.
      Теперь появился отличный повод посидеть и позависать. Как раз хотелось скорость мышления увеличить.
        –11
        Ха-ха-ха сейчас люди умные , но по жизни тупые как пробка важны и игра это подтверждает. Поэтому, ребят, читайте книги.
          0
          умные, но по жизни тупые

          Это как?

          +4
          Откройте файл /brains/br_edmund.js для редактирования, прочитайте комментарии в нем и измените логику мозга до желаемого поведения существа.

          Эх, вот бы была возможность писать на более других языках, нежели JS.

            –2

            Всегда считал, что нормальному программисту примерно без разницы, на каком языке писать

              +2
              Сходу, например, на лиспе сможете написать более менее осмысленное ПО, не изучив его? Сильно сомневаюсь.
                0

                Сходу, быть может, и нет. Я ж не имел ввиду, что можно просто сесть и начать на любом языке писать. К тому в комментарии и было слово "примерно", ещё и курсивом выделенное.
                Неужто Вы будете отрицать, что любой программист, знакомый с C-подобным синтаксисом, не сможет писать на JS? Безусловно, не сходу, а затратив, быть может, может пару часов на изучение, но все же сможет, и довольно быстро. Я лишь хотел сказать, что выбор JS в этом плане не так уж и плох.

              • UFO just landed and posted this here
                  +7

                  Это не повод заставлять всех писать на JS.
                  В соревнованиях на codenjoy.com или даже на Russian AI Cup разработчики предоставили API, с которым можно работать любым языком.

                  0
                  js давно практически выполняет роль ассемблера, почти все пишут хотя бы на typescript, а некоторые даже на Purescript.
                  Но, что бы можно было писать на высокоуровневых языках, они могли бы описать API — оставалось бы только биндинги написать.
                  0
                  Такие игры очень классные, кстати, но нужно давать свой, более интуитивный интерфейс для задания поведения. Например графический редактор программирования существа. Давать разные события, вроде «Противник появился на экране» или «Вас атаковали» и функции «Идти туда» «Повернуться туда». Посмотрите Blueprint в Unreal Engine 4. Там правда это полноценный ООП графический, но идея та же, только чуть полегче.

                  Так и аудитория будет больше, и игра будет дружелюбнее к обычным пользователям, при этом развивая их логическое мышление. Особенно полезно будет детям и школьникам, которые смогут совмещать соревнование и развитие.
                    +4
                    У создателя PUBG был ник PlayerUnknown, отсюда и название PlayerUnknown's Battlegrounds. В вашем случае могло было быть Amoneron's Battlegrounds, или просто ABG :)
                      +1
                      Эм… А почему я могу влиять на ход игры, двигая «персов» и предметы? Или я что-то не так делаю?
                        0
                        > абстрактных задач

                        Ну-ну.
                          0
                          Но это же арена codecombat и только одним ЯП. У codecombat логику можно описывать на python\js\coffeescript\lua\java.
                            0
                            Спасибо за проект!

                            Тема игр и программирования — очень плодотворная) На Ruby кстати тоже можно делать web-игры :)
                            github.com/yeahrb/yeah, с помощью Opal компилируются в веб приложение, например asteroids (код игры)

                            Only users with full accounts can post comments. Log in, please.