ХабраВойны — python-robots

    Драфт течпревью игры для программистов. (очень грязный, опубликовал, чтобы собрать мнения и замечания, не минусуйте сильно, пожалуйста) По мотивам
    habrahabr.ru/blogs/sport_programming/74536
    и
    habrahabr.ru/blogs/sport_programming/74523
    Готов в общем-то движок. Игра пошаговая, интерфейс к программам-игрокам — STDIN STDOUT, т.е. можно использовать любые языки программирования (хоть brainfuck, если он ввод-вывод поддерживает.)
    Будет гуй-тестер на wxPython (Linux/Windows/OSX) и сайт с возможностью загрузки своих скриптов или бинарников, развернутой системой рейтинга игроков (в т.ч. по времени выполнения кода). Планируются коммандные бои и sdk для нескольких языков.
    Все (включая сайт) будет под GPL и некоммерческим.
    Приглашаются дезагнеры и флешеры

    PS. Строго не судите, написанно absolute бегиннером буквально за ночь, под влиянием обсуждения на хабре. Лучше поддержите советом и коммитом
    Update: Написал рабочее описание формата ввода/вывода программ-игроков
    UPD Тут лежит примерное недоделаное сдк, код бота на питоне будет вроде такого:

    Copy Source | Copy HTML
    1. #!/usr/bin/python
    2. """Sample game bot for python-robots"""
    3. import pyr-sdk
    4.  
    5.  
    6. class DumbBoot(pyr-sdk.Pobot):
    7.     def main(self):
    8.         """Main cyclic function: :))"""
    9.         for enemyrobot in self.robots:
    10.             if self.GetDistToRobot(enemyrobot)<4:
    11.                 self.FireToRobot(enemyrobot)
    12.         if self.energy<50:
    13.             self.KillYMySelf()
    14.         if not self.isWallAhead():
    15.             self.Go()
    16.         else:
    17.             self.Left()
    18.  
    19.         ###########common part
    20.         self.reloading()
    21.  
    22.     def start(self):
    23.         """some code which run once"""
    24.         pass
    25.  
    26. if __name__=="__main__":
    27.     darvin_small_metal_guy = DumbBoot()
    28.  

    Similar posts

    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 30

      +1
      Его бы сначала оттестить не мешало бы. Где сия радость?
        0
        он нерабочий пока, ищу ментора )
      • UFO just landed and posted this here
          0
          практическая ценность — найти ментора. код писался весь за несколько часов, впопыхах. Когда все будет написано, красиво откоменнтено и отлажено, обещаю, напишу туториал )
          –1
          а с безопасностью как? пользовательские скрипты выполняются в зандбоксе?
            0
            в openvz будут выполнятся. архитектура простая — «движок» на питоне, который забирает у программ-игроков ходы, он будет прикручен к пользовательскому (для пользования на вашем компьютере) гую, он же будет прикручен к серверной части, а в серверной части будут уже в сендбоксе выполнятся
              –1
              а по времени выполнения и занимаемой памяти ограничения есть?
                0
                будет в openvz ограничено
                  –1
                  Понял. Я сперва подумал, что человек скачивает игрушку, запускает её у себя под виндой, скармливает ей скрипты чужих роботов (игрушка их поочерёдно запускает), и наблюдает за войнушкой.
                  А у вас отдельный игровой сервер будет.
                    0
                    и игрушка отдельно под виндой тоже будет.
                  0
                  и по времени будет, будет статистика по времени, и турниры с органичением времени
              +2
              Неплохо было бы описать интерфейс общения робота с движком игры, чтобы не копаться в коде движка в поисках возможных действий робота и их синтаксиса…
              А так идея хорошая, довольно интересно, я бы попробовал написать бота :-)
                0
                15 минут подождите, залью на вики в гугль код и сюда
                +1
                >>Приглашаются дезагнеры и флешеры
                Балуюсь немного сией радостью, чем смогу помогу.
                P.S. Можно будет на С++ писать? Ураааа!
                  0
                  да!
                  можно в личку контакты? обсудим насчет флеша
                  хочется побыстрее все запустить, думаю флеш будет быстрей чем гуй прикручивать
                  +3
                  Вы бы не торопились, выложили бы уже с каким-то реальными наработками, а не просто исходниками. Потому как идея просто отличная, обожаю такие игры, с удовольствием поучаствовал бы.
                    0
                    хочу найти ментора, так как на питоне только недавно начал писать
                    +1
                    Мультиязычность — это good.
                      0
                      Ну если STDIN STDOUT то перл )
                      А вобще чтоб не нарваться на Version conflict и не допонимания входных даннныъ все таки strict IoC API было бы не плохо, хотя бы для основных языков.

                        0
                        так готово почти для питона
                        для питона будет. надеюсь кто-нибудь для остального хозяйства напишет — это ж просто
                        +1
                        У меня пару вопросов.
                        Почему только война, почему только тупое убийство?
                        А вы сами попытались написать хотя бы пару стратегий для вашего игрового мира?
                        Попробуйте и увидите, насколько окажется ограниченным их круг. Все будут похожи как одна капля, ну может немного вариаций с константами.

                        Посмотрите, что творят поляки itpw.mimuw.edu.pl/.
                        Они с 2002 года проводят подобные соревнования. И у них была только один раз «война». А потом пошли действительно стоящие задания. Чего стоит задача «бетономешалки». Вот тут точно есть где развернуться стратегам.
                          +1
                          Это всего лишь проба, написанная за пару часов. Интересна техническая возможность серверной игры с равными правами для компилируемых и интерпретируемых языков, интересность этой идеи публике. Если оно будет интересно и реализуема — не проблема прикрутить другой движок, более сложный и интересный. Считайте «роботов» заглушкой
                          0
                          очень интересная затея, ради нее не грех и python изучить
                            +1
                            Общая идея мне понравилась, но только общая.

                            Мне кажется, с таким маленьким обзором основное время будет потрачено на случайное рысканье по карте, что сложно сделать лучше или хуже. И результат встречи после такого рыcканья будет зависеть от геометрии встречи, а не от разумности роботов.

                            Предлагаю:
                            1. увеличить количество различных преград, что бы получилось что-то типа классической Battle City;
                            2. существенно увеличить обзор одного юнита, и сделать обзор не действием;
                            3. (самое главное) дать возможность дружественным юнитам обмениваться информацией между собой, что существенно увеличит варианты стратегии.
                              0
                              забил уже на обзор, сделал полный обзор
                            • UFO just landed and posted this here
                                0
                                Вот в этом, кстати, я бы поучаствовал!
                                Тем более, я — питонист.
                                  0
                                  Когда будет сайт, на нем будет выбор «дисциплин» — движков. Пишите движок, будет клево.
                                    0
                                    … я к тому же и djang-ист.
                                    С сайтом помощь не нужна?
                                0
                                Чем дело-то закончилось? Всем не интересно стало?

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