На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
! Правила раздела
1. Необходимо уважительно относиться ко всем играм и игрокам, а свое отношение к той или иной игре излагать аргументированно.
2. Разработка компьютерных игр обсуждается здесь: Разработка игр
3. Для холиваров существует соответствующий раздел: Holy wars
4. Свое отношение к модерированию данного раздела Вы можете высказать здесь: Serafim
Модераторы: Serafim
  
> Screeps - кто ещё играет?, Как впечатление?
    user posted image

    Помню, лед надцать назад (это был год 2002-й, что-ли) втыкал в игрушку ColoBot. Надо было исследовать мир и выполнять задания, программируя ботов. Ну или не программируя, но тогда медленнее. И вот, прошли эти самые надцать лет, и попала мне в руки полноценная MMO-игруха, где ботоводство - не порок, а неотъемлемая часть геймплея. Первые впечатления весьма положительные - программируется всё на вполне современном java-скрипте, работает шустро. Графика, конечно, весьма условная, но и дело то тут не в графике.

    Есть кто ещё играет? Стоит ли, не разобравшись, соваться в "большой" мир (в смысле, на основные сервера), если да, то какие от этого бенефиты?
    "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
    Морган Фриман
    Реализация шаблонов Jinja2 для C++ Jinja2 C++
      Репозиторий чувака, который ведёт канал "Screepers для новчиков": https://github.com/thPion/Screeps-Nooby-Guide
      Ну и сам видеогайд: https://www.youtube.com/playlist?list=PL0EZ...EYYPE3tGYT2zGT2
      "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
      Морган Фриман
      Реализация шаблонов Jinja2 для C++ Jinja2 C++
        Вот тут мы кажется её уже обсуждали страницы три: игры для программистов

        И пришли к выводу (не играя :P ) что играть нет смысла... Лично я попробовал чуть-чуть демку, и понял для себя, что хоть всю жизнь считал, что графика для меня не имеет никакого значения, но оказывается что имеет.
        То есть в Маджести я с огромным удовольствием смотрю как гуляют автоматические персонажи, пусть они прорисованы довольно условно. В той игре про ИИ роботов тоже графика не ахти, но там хотя бы роботы. А вот следить за жизнью просто двигающихся кружочков с полосками снизу и сверху - увы, как-то не впечатляет. Хоть бы майнкрафтовую обёртку пикселизированную сделали! Хотя может быть за пару лет графика получшела? :-?
        Над нами - правила форума, внутри нас - нравственный закон!
        (Девиз начинающего модератора.)
          Dark_Sup, ну, сейчас графика не сильно отличается от той, что на скриншоте. Но тут есть один момент, который может извинить разработчиков: игра написана полностью на JavaScript. И ботов своих ты пишешь тоже на JS. Наворачивать графику - это утяжелять основной игровой цикл, в котором крутятся боты всех игроков и NPC, обсчитывается игромир. Вот оно надо? Конечно да - не для любителей милых 3D-моделек. Но так и основа геймплея в другом - не мышколтыкальство, а ботописание. Всё, что ты можешь сделать руками в игрухе - это выбрать стартовый сектор и натыкать construction sites. Для всего остального - java script. Учи своих "пчёлок" собирать энергию, строить, чинить, атаковать и т. п. Там даже на внутриигровом рынке "ручками" не поторгуешь - тоже скриптовать надобно. Вот как-то так.
          "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
          Морган Фриман
          Реализация шаблонов Jinja2 для C++ Jinja2 C++
            Цитата Flex Ferrum @
            Но тут есть один момент, который может извинить разработчиков: игра написана полностью на JavaScript

            Первое что попалось http://www.quakejs.com 8-)

            Право — это возведенная в закон справедливость. Закон есть этика, высеченная в логике.
              Цитата Flex Ferrum @
              Там даже на внутриигровом рынке "ручками" не поторгуешь - тоже скриптовать надобно. Вот как-то так.

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

              Цитата Flex Ferrum @
              игра написана полностью на JavaScript. И ботов своих ты пишешь тоже на JS. Наворачивать графику - это утяжелять основной игровой цикл, в котором крутятся боты всех игроков и NPC, обсчитывается игромир. Вот оно надо?

              Погоди, насколько я понял, "фишка" игры в том, что "думают" твои боты - на сервере, поэтому они и планировали "торговать" серверным пространством для "мышления". А всякие 3D-модельки - это ж чисто отображение, его на клиенте делать надо. Или теперь мозги им тоже на уровень клиента перенесли? :unsure:
              Над нами - правила форума, внутри нас - нравственный закон!
              (Девиз начинающего модератора.)
                Цитата Dark_Sup @
                Погоди, насколько я понял, "фишка" игры в том, что "думают" твои боты - на сервере, поэтому они и планировали "торговать" серверным пространством для "мышления". А всякие 3D-модельки - это ж чисто отображение, его на клиенте делать надо. Или теперь мозги им тоже на уровень клиента перенесли?

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

                Добавлено
                Цитата Dark_Sup @
                Погоди, насколько я понял, "фишка" игры в том, что "думают" твои боты - на сервере, поэтому они и планировали "торговать" серверным пространством для "мышления".

                Собственно, уже торгуют. Там подписка.
                "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                Морган Фриман
                Реализация шаблонов Jinja2 для C++ Jinja2 C++
                  Цитата Flex Ferrum @
                  И ботов своих ты пишешь тоже на JS. Наворачивать графику - это утяжелять основной игровой цикл, в котором крутятся боты всех игроков и NPC, обсчитывается игромир.

                  Обсчет графики в многопользовательских играх, даже браузерных, большей частью происходит на клиенте. Только если речь не идет об облачных сервисах, вроде nVidia GRID. Так что -- нет, не извиняет. С мнением Супыча полностью солидарен.
                  char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
                  for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;


                  user posted image Чат Исходников в СкайпеНе тормози, форум теперь здесь!Чат Исходников в Дискорде
                    Цитата Flex Ferrum @
                    У них есть режим "браузерной" песочницы, когда вся игра крутится на клиенте.

                    Ну мне кажется твой браузер сможет целый город этих ботов "обслужить"... сам вон писал недавно в своих статьях по С++, какие немеряные количества вычислений способен делать средненький современный процессор!
                    А как, кстати, выглядит неловкий момент, когда боту "не хватает памяти" или процессорной мощности для срабатывания скрипта? Он резко замирает на месте, или начинает совершать непредсказуемые поступки? :unsure:

                    Цитата B.V. @
                    Обсчет графики в многопользовательских играх, даже браузерных, большей частью происходит на клиенте. Только если речь не идет об облачных сервисах, вроде nVidia GRID.

                    Ну вот мне тоже так кажется. Пусть себе на сервере бегают единицы и нолики среди ссылок на горы, леса и постройки... я подозреваю, что даже в хвалёном ВоВе или ВоТе происходит примерно то же самое. Это уже когда сервер присылает мне инфу о том, какой нолик где находится, то мой местный комп натягивает на него текстурку танка, замка, леса или эльфийской лучницы, ничуть этим не забирая памяти с сервера создателей игры... Поэтому за два года можно было бы какой-никакой графон этим "роботам" прикрутить, раз уж у нас футуристический сеттинг. А они чем всё это время занимались? Джаваскрипт полировали? :wacko:
                    Над нами - правила форума, внутри нас - нравственный закон!
                    (Девиз начинающего модератора.)
                      Цитата Dark_Sup @
                      Поэтому за два года можно было бы какой-никакой графон этим "роботам" прикрутить, раз уж у нас футуристический сеттинг

                      Остается вопрос "зачем". Если целевая аудитория программисты, которым интересно программировать, то графон им нафиг не нужен.

                      Право — это возведенная в закон справедливость. Закон есть этика, высеченная в логике.
                        Вот да.
                        "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                        Морган Фриман
                        Реализация шаблонов Jinja2 для C++ Jinja2 C++
                          Цитата Астарот @
                          Если целевая аудитория программисты, которым интересно программировать, то графон им нафиг не нужен.

                          Прямо сейчас смотрю лайв http://peka2.tv/sscait, турнир ботов в СК БВ. И ты знаешь, выглядит намного интереснее, чем приведенный выше образец.
                          char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
                          for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;


                          user posted image Чат Исходников в СкайпеНе тормози, форум теперь здесь!Чат Исходников в Дискорде
                            Цитата B.V. @
                            Прямо сейчас смотрю лайв http://peka2.tv/sscait, турнир ботов в СК БВ. И ты знаешь, выглядит намного интереснее, чем приведенный выше образец.

                            И о чем это говорит, кроме того, что смотреть тебе приятнее на более навернутую графику? :)

                            Право — это возведенная в закон справедливость. Закон есть этика, высеченная в логике.
                              Цитата Астарот @
                              Остается вопрос "зачем". Если целевая аудитория программисты, которым интересно программировать, то графон им нафиг не нужен.

                              к красивой графике интереса было бы больше, имхо.

                              напрограммировал - и *красота* ожила, а не только кружочки забегали.
                              =^''^=
                                Цитата Астарот @
                                Остается вопрос "зачем". Если целевая аудитория программисты, которым интересно программировать, то графон им нафиг не нужен.

                                Нет, если уж совсем упоротые гики, которые даже "Матрицу" смотрели разглядывая тамошнюю консоль с падающими буквами - то да. Но думаю у создателей была надежда привлечь чуть больше людей...
                                Вот я тоже так думал - мол, графика ничто, процесс всё... тем более я с удовольствием играл и в первую Цивилизацию, и в Диггера, и в ранние полу-текстовые ролевки с квестами... да даже в ту упоротую игру, где надо было вертолёты с парашютистами сбивать, сейчас даже вспомнить страшно! Там тоже были кружочки и квадратики вместо юнитов, только за каждым квадратиком стояло понимание того, кто он, зачем он, что делает и почему. А уж дальше ты сам представлял эти эпичные баталии...
                                Или вот майнкрафт - пиксели на пол-экрана, но из них составляется такая шикарная картина со смыслом и красотой! Поэтому графика, пусть даже схематичная, наполняет игру смыслом, который ты порой даже сам додумываешь... а здесь совсем уж схематичные кружочки с довольно размытыми целями в жизни. :(
                                Над нами - правила форума, внутри нас - нравственный закон!
                                (Девиз начинающего модератора.)
                                  Цитата снежОк @
                                  Цитата Астарот @
                                  Остается вопрос "зачем". Если целевая аудитория программисты, которым интересно программировать, то графон им нафиг не нужен.

                                  к красивой графике интереса было бы больше, имхо.

                                  напрограммировал - и *красота* ожила, а не только кружочки забегали.

                                  Тут вот ведь какое дело: если основная задача в том, чтобы написать программу, которая заставляет эти кружочки правильно бегать, и большую часть времени ты проводишь в каком-нибудь NetBeans, а не в игрухе, то на внешний вид кружочков становится немного пофиг. Бегают, не тупят - ну и хорошо. А вот если тупят и не бегают - то хреново, и ты вместе с логами и IDE пытаешься заставить их не тупить...
                                  "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                  Морган Фриман
                                  Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                    Цитата Dark_Sup @
                                    Нет, если уж совсем упоротые гики, которые даже "Матрицу" смотрели разглядывая тамошнюю консоль с падающими буквами - то да

                                    Я как бы не против того, что тут:
                                    Прикреплённая картинка
                                    Прикреплённая картинка

                                    правая часть смотрится куда лучше, чем левая. Но если нет ресурсов, а ЦА те самые упоротые гики, то и ASCII сойдет :)

                                    Добавлено
                                    Цитата Flex Ferrum @
                                    ты проводишь в каком-нибудь NetBeans

                                    Если что - Оракл прекратил его поддерживать и развивать, отдал Apache. Переходи на Idea :)

                                    Право — это возведенная в закон справедливость. Закон есть этика, высеченная в логике.
                                      Dark_Sup, цель жизни кружочка ты задаешь ему сам. С какими модулями создал, какую роль задал, как эту роль запрограммировал - так и будет кружочек целиться. :) Сходи, например, сюда: https://github.com/thPion/Screeps-Nooby-Gui...rt14Refactoring Этакий расширенный туториал и стартер кит в одном флаконе. Посмотри в файлики, в названии которых есть role. Вот в них и прописаны цели жизни кружочков и как их достигать. :)
                                      "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                      Морган Фриман
                                      Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                        Цитата Flex Ferrum @
                                        большую часть времени ты проводишь в каком-нибудь NetBeans, а не в игрухе, то на внешний вид кружочков становится немного пофиг.

                                        То есть ты тамошние скрипты пишешь не на встроенном редакторе, а где-то вовне? :huh:

                                        Ну и опять же... когда программа написана и кружочки бегают нормально, неужели не хочется сесть и понаблюдать за ними спокойно? И приятно глядеть на создание рук своих, и всякие непредсказуемые огрехи скрипта только так можно выловить, и новые какие-нибудь фишки приспособить... Нейросеть-то на джаве осилишь написать? :crazy:
                                        Над нами - правила форума, внутри нас - нравственный закон!
                                        (Девиз начинающего модератора.)
                                          Цитата Dark_Sup @
                                          То есть ты тамошние скрипты пишешь не на встроенном редакторе, а где-то вовне? :huh:

                                          Все, буквально все встреченные мной "встроенные редакторы" вызывали леденящий душу восторг и желание немедленно начать пробежку по направлению к нормальной ide :)

                                          Право — это возведенная в закон справедливость. Закон есть этика, высеченная в логике.
                                            Астарот, вот!
                                            Встроенный редактор неплох, и синтаксис подсвечивает, и автокомплит имеет, но вот этот самый синтаксис чекать не умеет. Да и расположен он не в отдельной закладке, а под окном с игровым полем. Не, мож, конечно, для бывших гинекологов - норм. Они и квартиру обоями через замочную скважину оклеить могут. Но вот для обычных девелоперов... :) Маловато будет! Ма-ло-ва-то! :D
                                            Сообщение отредактировано: Flex Ferrum -
                                            "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                            Морган Фриман
                                            Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                              Цитата Flex Ferrum @
                                              Dark_Sup, цель жизни кружочка ты задаешь ему сам. С какими модулями создал, какую роль задал, как эту роль запрограммировал - так и будет кружочек целиться. :)

                                              Да я в курсе. Ведь пытался в демку играть, вот это меня больше всего и добило. Что цели жизни кружочка никак не влияют на его внешний вид... ну, только полоски по периметру разнятся. То есть будь он у тебя хоть стрелок, хоть танк, хоть сборщик, хоть разведчик - увы, выглядеть будет едино. Вот ты же помнишь первую "Цивилизацию" - там по-сути были тоже квадратики, отличающиеся цифрами параметров... ну там ещё примитивнее было - атака, защита, количество ходов. Но зато создатели постарались и в нескольких пикселях этого квадратика показали схематично, что вот это мужик с дубьём, там катапульта, а тут линкор. И сразу какая-то индивидуальность появлялась у "квадратов с цифрами", ты уже не вёл в атаку пиксели, ты уже командовал танковыми армиями. Вот для чего у нас изобразительные возможности нужны!

                                              Цитата Астарот @
                                              правая часть смотрится куда лучше, чем левая. Но если нет ресурсов, а ЦА те самые упоротые гики, то и ASCII сойдет :)

                                              Это понятно, если стоит задача как можно быстрее выпустить и хоть что-то показать - то пойдет и текстовка. Но что мешает за ДВА ГОДА сделать "правую часть"? Какие там на фиг ресурсы - вместо клеток сделать кубики с текстуркой, а вместо кружочков - каких-нибудь анимированных персоналий, зависящих по виду от параметров? Никто не просит в браузере делать новый Дум с ботами, но хотя бы немного облагородить движок вполне можно....

                                              Добавлено
                                              Цитата Flex Ferrum @
                                              Астарот, вот!
                                              Встроенный редактор неплох, и синтаксис подсвечивает, и автокомплит имеет, но вот этот самый синтаксис чекать не умеет.

                                              А методы из специфичных функций игры ты как будешь спеллчекать и автокомплитить? Или там тебе ещё и набор библиотек для внешнего редактора пришлось добывать? :unsure:
                                              Над нами - правила форума, внутри нас - нравственный закон!
                                              (Девиз начинающего модератора.)
                                                Цитата Flex Ferrum @
                                                Встроенный редактор неплох, и синтаксис подсвечивает, и автокомплит имеет, но вот этот самый синтаксис чекать не умеет

                                                Главное он шоткаты не умеет! И квикхелпа нет. И реформата. И... и... Блин! Да у него ваще ничего нет! :D

                                                Добавлено
                                                Цитата Dark_Sup @
                                                То есть будь он у тебя хоть стрелок, хоть танк, хоть сборщик, хоть разведчик - увы, выглядеть будет едино

                                                Это да, упущение, наверное. С другой стороны - а как его кастомизировать, если он отличается от соседа поведением? :-?

                                                Добавлено
                                                Цитата Dark_Sup @
                                                Но что мешает за ДВА ГОДА сделать "правую часть"? Какие там на фиг ресурсы - вместо клеток сделать кубики с текстуркой, а вместо кружочков - каких-нибудь анимированных персоналий, зависящих по виду от параметров?

                                                Скажем так, для общего случая - когда у тебя клетка развивается не по дням, а по часам, и имеет адову прорву внутренних параметров, к примеру плотность грунта, его температура, влажность, запах и цвет, то визуализация всего этого добра либо отнимет столько времени, что развитие встанет на месте, либо превратится в фикцию :)

                                                Право — это возведенная в закон справедливость. Закон есть этика, высеченная в логике.
                                                  Цитата Астарот @
                                                  Это да, упущение, наверное. С другой стороны - а как его кастомизировать, если он отличается от соседа поведением? :-?


                                                  Поведение-поведением, но у тебя есть для каждого крипа параметры. Жизнь, скорость, стоимость, вместительность (если не ошибаюсь), огневая мощь. Да, поведение ты сам им пишешь, но по соотношению параметров можно модельку подбирать... можно и на танке с большой пукой руду возить, но это не отменяет его вид как танка. :D
                                                  Над нами - правила форума, внутри нас - нравственный закон!
                                                  (Девиз начинающего модератора.)
                                                    Цитата Dark_Sup @
                                                    Поведение-поведением, но у тебя есть для каждого крипа параметры. Жизнь, скорость, стоимость, вместительность (если не ошибаюсь), огневая мощь. Да, поведение ты сам им пишешь, но по соотношению параметров можно модельку подбирать... можно и на танке с большой пукой руду возить, но это не отменяет его вид как танка. :D

                                                    Теперь у тебя произошел апдейт, который к существующим пяти параметрам добавляет шестой - я в математике слаб, скажи, как умный человек, сколько было возможных сочетаний, и сколько стало? :D

                                                    Право — это возведенная в закон справедливость. Закон есть этика, высеченная в логике.
                                                      Цитата Dark_Sup @
                                                      Поведение-поведением, но у тебя есть для каждого крипа параметры. Жизнь, скорость, стоимость, вместительность (если не ошибаюсь), огневая мощь.

                                                      Тут Астя ближе к истине. Один крип от другого (с точки зрения движка) отличается только набором модулей, коих может быть до 50-ти штук. Один у тебя - транспорт, поэтому у него до жопы модулей carry и move. Другой - харвестер, поэтому ты вешаешь на него максимальное количество work, carry, move. Третий - захватчик. Ты вешаешь на него move и claim. Ну и т. д. Вариантов комбинаций... Ну, ты там в институте работаешь, на комбинаторике прикинь. А дальше начинается другое веселье - тюнинг в рамках ролей. Одни могут ходить за "мёдом" в соседние игровые зоны (комнаты), другие - не могут, третьи - только минералы таскают, четвёртые служат временным хранилищем. Пятые - занимаются ремонтом, но структурно от харвестеров не отличаются. Шестые - апгрейдят room controller, но, сцуко, тоже структурно от харвестеров не отличаются. Седьмые... Ну, ты уже понял. :) Информативность от кастомизации внешнего вида кружочков будет весьма условная. :D

                                                      Добавлено
                                                      Цитата Dark_Sup @
                                                      А методы из специфичных функций игры ты как будешь спеллчекать и автокомплитить? Или там тебе ещё и набор библиотек для внешнего редактора пришлось добывать?

                                                      Ну, это "добывать" - нагуглить минут за пять. Но да, надо потратить некоторые усилия. :)

                                                      Цитата Астарот @
                                                      Главное он шоткаты не умеет! И квикхелпа нет. И реформата. И... и... Блин! Да у него ваще ничего нет!

                                                      Вот да. :D

                                                      Цитата Астарот @
                                                      Это да, упущение, наверное. С другой стороны - а как его кастомизировать, если он отличается от соседа поведением?

                                                      К слову, вроде как для этой игрухи ещё и моды можно делать. Но что эти моды модят - я пока не разбирался.
                                                      "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                      Морган Фриман
                                                      Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                        Кому интересно, вот пример кода более-менее серьёзного бота:
                                                        https://github.com/TooAngel/screeps/tree/master/src

                                                        (доступен в качестве мода в Steam для приватных серверов)

                                                        Добавлено
                                                        В качестве домашнего задания можно посчитать количество ролей, которые могут выполнять creep'ы у этого бота.

                                                        Добавлено
                                                        Гы-гы. Шикарно. :D
                                                        ExpandedWrap disabled
                                                          checkPlayers: function() {
                                                              for (let name in Memory.players) {
                                                                let player = Memory.players[name];
                                                                 /* ... */
                                                           
                                                                if (player.idiot === undefined) {
                                                                  player.idiot = 0;
                                                                  console.log(`Missing idiot: ${name}`);
                                                                }
                                                              }
                                                            }
                                                        Сообщение отредактировано: Flex Ferrum -
                                                        "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                        Морган Фриман
                                                        Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                          Цитата Flex Ferrum @
                                                          В качестве домашнего задания можно посчитать количество ролей, которые могут выполнять creep'ы у этого бота.

                                                          А там нельзя на разных крипов разный код привязывать? Надо на всю свою песочницу делать некий универсальный? :huh:
                                                          Над нами - правила форума, внутри нас - нравственный закон!
                                                          (Девиз начинающего модератора.)
                                                            Цитата Dark_Sup @
                                                            Цитата Flex Ferrum @
                                                            В качестве домашнего задания можно посчитать количество ролей, которые могут выполнять creep'ы у этого бота.

                                                            А там нельзя на разных крипов разный код привязывать? Надо на всю свою песочницу делать некий универсальный? :huh:

                                                            Ну как... Вешаешь на крипа атрибут "role". Потом switch по этому атрибуту и вызов соответствующей роли функции.
                                                            "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                            Морган Фриман
                                                            Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                              Цитата Dark_Sup @
                                                              А там нельзя на разных крипов разный код привязывать? Надо на всю свою песочницу делать некий универсальный?

                                                              Если что, исходники моего бота можно посмотреть здесь. Надо учесть, что на современном JS я начал программировать несколько дней назад. :)
                                                              "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                              Морган Фриман
                                                              Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                Там чего, ещё и репозиторий надо разворачивать, чтобы поиграться? :wall:
                                                                Над нами - правила форума, внутри нас - нравственный закон!
                                                                (Девиз начинающего модератора.)
                                                                  Цитата Dark_Sup @
                                                                  Там чего, ещё и репозиторий надо разворачивать, чтобы поиграться?

                                                                  Не. Это я для собственного удобства. Без репозитория как-то некомфортно. :)
                                                                  "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                                  Морган Фриман
                                                                  Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                    Ааа... профессиональная деформация. :D А по куче мелких файлов разбрасывать - тоже "для удобства", или игра заставляет? Я помню, когда на JS писал, у меня всё в один здоровый файл с кучей функций поместилось. А вторым файлом шел jQuery.
                                                                    Над нами - правила форума, внутри нас - нравственный закон!
                                                                    (Девиз начинающего модератора.)
                                                                      Цитата Dark_Sup @
                                                                      А по куче мелких файлов разбрасывать - тоже "для удобства", или игра заставляет?

                                                                      Ага. Для удобства. Тоже "профессиональная деформация". :D
                                                                      Сообщение отредактировано: Flex Ferrum -
                                                                      "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                                      Морган Фриман
                                                                      Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                        Фу, а как же параметризовать? :D

                                                                        ExpandedWrap disabled
                                                                                  if (energyToUse < 200)
                                                                                      return;
                                                                           
                                                                                  var harvestingConfig = [WORK, CARRY, MOVE];
                                                                                  var claimingConfig = undefined;
                                                                           
                                                                                  if (energyToUse >= 350)
                                                                                      harvestingConfig = [WORK, WORK, CARRY, CARRY, MOVE];
                                                                           
                                                                                  if (energyToUse >= 400)
                                                                                      harvestingConfig = [WORK, WORK, CARRY, CARRY, MOVE, MOVE];
                                                                           
                                                                                  if (energyToUse >= 500)
                                                                                      harvestingConfig = [WORK, WORK, WORK, CARRY, CARRY, MOVE, MOVE];
                                                                                  
                                                                                  if (energyToUse >= 600)
                                                                                      harvestingConfig = this.getHarvesterConfig(energyToUse);
                                                                                  
                                                                                  if (energyToUse >= 700)
                                                                                      claimingConfig = [MOVE, MOVE, CLAIM];
                                                                        Над нами - правила форума, внутри нас - нравственный закон!
                                                                        (Девиз начинающего модератора.)
                                                                          Цитата Dark_Sup @
                                                                          Фу, а как же параметризовать?

                                                                          Ну, тут пока код из серии "чтоб работало". :)
                                                                          "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                                          Морган Фриман
                                                                          Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                            И где боевой модуль? :huh: Как не посмотрю - один ищет ресурсы по комнатам, другой собирает ресурсы или запрашивает ближайший ресурсный объект...

                                                                            А тут же самое главное - закодировать военные хитрости! Это ж вам не роботы отдельные, здесь куча юнитов, с ними можно попробовать различные групповые схемы! Прорыв обороны, удержание позиций, окружение малых групп врага, обходы с флангов, вызов подкреплений, тактическое отступление с оставлением засады... эх, такую бы мощь, да в Старкрафте! А то у меня никогда ловкости пальцев не хватает ни на чего серьёзнее, чем "обвести всех в рамку и ломанулись, будь что будет". Максимум что успеваешь - выбирать самые опасные цели, и то, для всей тусовки. Даже на необходимость отступления в "переломный момент" можешь не успеть среагировать и всех твоих резко убивают. Я уж не говорю об использовании разных абилок в нужные моменты, это только комп может успеть, ну и B.V. наверное с его многолетним опытом.
                                                                            Над нами - правила форума, внутри нас - нравственный закон!
                                                                            (Девиз начинающего модератора.)
                                                                              Цитата Dark_Sup @
                                                                              И где боевой модуль? Как не посмотрю - один ищет ресурсы по комнатам, другой собирает ресурсы или запрашивает ближайший ресурсный объект...

                                                                              Пока только защитный написал (в репу ещё не кинул). До боевого - рановато. Да и со стабильным сбором ресурсов надо разобраться.
                                                                              "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                                              Морган Фриман
                                                                              Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                                А "песочница" даёт возможность столкнуться с чем-нибудь враждебным? Или там только комнаты с ресурсами и полный релакс?
                                                                                Над нами - правила форума, внутри нас - нравственный закон!
                                                                                (Девиз начинающего модератора.)
                                                                                  Цитата Dark_Sup @
                                                                                  А "песочница" даёт возможность столкнуться с чем-нибудь враждебным? Или там только комнаты с ресурсами и полный релакс?

                                                                                  Приватный сервер - да. Симуляция - частично. В любом режиме можно нагнать себе в комнату негодяев и доблестно их замочить. Но атакующие тактики - либо на приватном сервере, либо на боевом.
                                                                                  "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                                                  Морган Фриман
                                                                                  Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                                    Цитата Dark_Sup @
                                                                                    А "песочница" даёт возможность столкнуться с чем-нибудь враждебным? Или там только комнаты с ресурсами и полный релакс?
                                                                                    Судя по роликам, там и боты иногда своих разведчиков/диверсантов засылают. И если зазеваться, такой диверсант запросто может комнату зачистить.
                                                                                    Всё написанное выше это всего лишь моё мнение, возможно ошибочное.
                                                                                      А, так можно наверное сделать две враждующие базы, каждую наделить своим скриптом и посмотреть, как они будут сражаться? :D
                                                                                      Над нами - правила форума, внутри нас - нравственный закон!
                                                                                      (Девиз начинающего модератора.)
                                                                                        Цитата Dark_Sup @
                                                                                        А, так можно наверное сделать две враждующие базы, каждую наделить своим скриптом и посмотреть, как они будут сражаться? :D

                                                                                        Ставь себе эту фиговину, будешь с Флексом воевать :D

                                                                                        Право — это возведенная в закон справедливость. Закон есть этика, высеченная в логике.
                                                                                          Цитата Dark_Sup @
                                                                                          А, так можно наверное сделать две враждующие базы, каждую наделить своим скриптом и посмотреть, как они будут сражаться?

                                                                                          Ага. И так тоже можно. В приватный сервер можно заргузить своих ботов, чтобы развивались самостоятельно.
                                                                                          "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                                                          Морган Фриман
                                                                                          Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                                            Цитата Flex Ferrum @
                                                                                            Ага. И так тоже можно. В приватный сервер можно заргузить своих ботов, чтобы развивались самостоятельно.

                                                                                            Поднимай приватный сервер, и прокачивай Супыча в ботоводстве :D

                                                                                            Право — это возведенная в закон справедливость. Закон есть этика, высеченная в логике.
                                                                                              Цитата Астарот @
                                                                                              Поднимай приватный сервер, и прокачивай Супыча в ботоводстве

                                                                                              Да он уже поднят. К нему только доступ снаружи надо дать (дырку на роутере пропилить). И ещё один мой знакомый обещался поднять. :)
                                                                                              "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                                                              Морган Фриман
                                                                                              Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                                                Цитата Flex Ferrum @
                                                                                                Да он уже поднят. К нему только доступ снаружи надо дать (дырку на роутере пропилить). И ещё один мой знакомый обещался поднять. :)

                                                                                                Хмм... а деньги тогда кому заносить? :unsure: Там же создатели бабло берут за пользование сервером...
                                                                                                Над нами - правила форума, внутри нас - нравственный закон!
                                                                                                (Девиз начинающего модератора.)
                                                                                                  Цитата Dark_Sup @

                                                                                                  Хмм... а деньги тогда кому заносить? Там же создатели бабло берут за пользование сервером...

                                                                                                  За пользование _их_ сервером. За пользованием _моим_ сервером бабло можешь заносить мне. Если хочешь. :D

                                                                                                  Добавлено
                                                                                                  Хотел сервак на своём NAS поднять, а там Node.JS только четвёртой версии. А нужен не ниже шестой...
                                                                                                  Сообщение отредактировано: Flex Ferrum -
                                                                                                  "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                                                                  Морган Фриман
                                                                                                  Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                                                    Цитата Flex Ferrum @
                                                                                                    Хотел сервак на своём NAS поднять, а там Node.JS только четвёртой версии. А нужен не ниже шестой...

                                                                                                    Эх, останется Супыч не прокачаным :(

                                                                                                    Право — это возведенная в закон справедливость. Закон есть этика, высеченная в логике.
                                                                                                      Цитата Астарот @
                                                                                                      Эх, останется Супыч не прокачаным

                                                                                                      Печалька.

                                                                                                      Забавное наблюдение. Архитектурные подходы к реализации бота, которые были продемонстрированы в туториале, и которые я подсмотрел как минимум в двух репозиториях, не совсем состоятельны с точки зрения удобства реализации глобальных задач развития. Поэтому пришлось "разворачивать" реализация с линейной логики на "акторную" модель.

                                                                                                      Добавлено
                                                                                                      Посмотрим, что получится.
                                                                                                      Сообщение отредактировано: Flex Ferrum -
                                                                                                      "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                                                                      Морган Фриман
                                                                                                      Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                                                        Все это полумеры! Херачь нейросеть!
                                                                                                        Над нами - правила форума, внутри нас - нравственный закон!
                                                                                                        (Девиз начинающего модератора.)
                                                                                                          Цитата Dark_Sup @
                                                                                                          Все это полумеры! Херачь нейросеть!

                                                                                                          Памяти всего два мега. Нейросеть не влезет.

                                                                                                          Добавлено
                                                                                                          Но даже с нейростеью или чем-то подобным - раскладка по действиям необходима.
                                                                                                          "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                                                                          Морган Фриман
                                                                                                          Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                                                            Прошёлся по репам на гитхабе, в которые народ выкладывает свои скрипты. Забавно читать фразы типа: "Ну, в целом, конечно, работает, но скрипт ориентирован больше на микроменеджмент, а не на глобальное развитие..." При этом скрипт фичастый, исходников - куча. Но... Ведь... Нельзя играть в стратегическую игрушку сидя в одной-двух комнатах (секторах и т. п.). Нужны ресурсы, нужна энергия, нужно производственные и транспортные цепочки выстраивать и всё такое прочее. Если не прописываешь логику развития - то долго ли протянешь до вайпа?
                                                                                                            Сообщение отредактировано: Flex Ferrum -
                                                                                                            "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                                                                            Морган Фриман
                                                                                                            Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                                                              Цитата Flex Ferrum @
                                                                                                              Но даже с нейростеью или чем-то подобным - раскладка по действиям необходима.

                                                                                                              Ну да... на входе нейроны получают все возможные параметры окружающего мира, на выходе набор всех возможных действий. Ну а потом начинаем учить... если "Добби плохой", то понижаем коэффициенты на нейронах, приведших к этому выбору, если получилось хорошо, то дарим носокповышаем... :P
                                                                                                              Впрочем, ты гораздо лучше меня в этом осведомлён, наверное там масса подводных камней, и главное - что ты сам не всегда можешь быть уверен, какое действие было наилучшим в текущих условиях. :-?

                                                                                                              Добавлено
                                                                                                              Цитата Flex Ferrum @
                                                                                                              Памяти всего два мега.

                                                                                                              Это бессмысленная жестокость разработчиков, или у тебя сервер 1987 года? :huh:
                                                                                                              Над нами - правила форума, внутри нас - нравственный закон!
                                                                                                              (Девиз начинающего модератора.)
                                                                                                                Цитата Dark_Sup @
                                                                                                                Это бессмысленная жестокость разработчиков, или у тебя сервер 1987 года?

                                                                                                                Осмысленная жестокость. Чтобы жизнь малиной не казалась. :) Там ещё и по CPU ограничения, которые зависят от текущего уровня игрока. :)
                                                                                                                Каждому боту даётся по два мегабайта для "своих нужд". В них можно размещать пользовательские данные. Правда, экспериментальным путём выяснилось, что карта маршрутов для одной комнаты даже на десяток килобайт не тянет.

                                                                                                                Добавлено
                                                                                                                А, и исходники не должны занимать больше мегабайта.
                                                                                                                Но, блин, мегабайт исходников на JS - это овердохера. :)
                                                                                                                "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                                                                                Морган Фриман
                                                                                                                Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                                                                  Цитата Flex Ferrum @
                                                                                                                  Там ещё и по CPU ограничения, которые зависят от текущего уровня игрока. :)
                                                                                                                  Каждому боту даётся по два мегабайта для "своих нужд"

                                                                                                                  Мне вот интересно, как это технически организовано? :scratch:

                                                                                                                  Право — это возведенная в закон справедливость. Закон есть этика, высеченная в логике.
                                                                                                                    Цитата Астарот @
                                                                                                                    Мне вот интересно, как это технически организовано?

                                                                                                                    У них на сайте написано, как эта "песочница" работает. Кроме того, для каждой функции расписана приблизительная "цена" использования.
                                                                                                                    "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                                                                                    Морган Фриман
                                                                                                                    Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                                                                      Цитата Flex Ferrum @
                                                                                                                      У них на сайте написано, как эта "песочница" работает

                                                                                                                      А в двух словах?

                                                                                                                      Право — это возведенная в закон справедливость. Закон есть этика, высеченная в логике.
                                                                                                                        Да я толком пока не разбирался, поэтому ни в двух словах не выйдет, ни в двухстах...
                                                                                                                        "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                                                                                        Морган Фриман
                                                                                                                        Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                                                                          Я просто слабо себе представляю, как можно пользователю выдать квоту на проц или память :scratch: Для процесса node.js это, наверное, возможно, а вот как порезать на кусочки для такого абстрактного понятия, как "пользователь"... :-?

                                                                                                                          Право — это возведенная в закон справедливость. Закон есть этика, высеченная в логике.
                                                                                                                            Как именно это сделано на уровне скриптов - не написано. Но идея в следующем. У тебя есть параметр GCL, пропорционально которому тебе дается определённое количество тиков. На первом уровне - это 30 тиков (один тик - одна миллисекунда). Если твой скрипт (по времени) не влез в эти тики - то его выполнение грубо прерывается. В смысле, у него отбирают управление. :) А вот если скрипт выполнится и ещё осталось времени - этот остаток складывается в корзинку. И в следующий раз у тебя может быть бонус к доступным тикам - на столько, на сколько в корзине накопилось тиков. Но не больше 500. Как-то так.
                                                                                                                            "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                                                                                            Морган Фриман
                                                                                                                            Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                                                                              Цитата Flex Ferrum @
                                                                                                                              У тебя есть параметр GCL

                                                                                                                              Greater Catholic League? GNU Common Lisp? :D

                                                                                                                              Право — это возведенная в закон справедливость. Закон есть этика, высеченная в логике.
                                                                                                                                Цитата Астарот @
                                                                                                                                Greater Catholic League? GNU Common Lisp?

                                                                                                                                Global Control Level.
                                                                                                                                "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                                                                                                Морган Фриман
                                                                                                                                Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                                                                                  Цитата Flex Ferrum @
                                                                                                                                  Каждому боту даётся по два мегабайта для "своих нужд".

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

                                                                                                                                  Добавлено
                                                                                                                                  Цитата Flex Ferrum @
                                                                                                                                  У тебя есть параметр GCL, пропорционально которому тебе дается определённое количество тиков. На первом уровне - это 30 тиков (один тик - одна миллисекунда). Если твой скрипт (по времени) не влез в эти тики - то его выполнение грубо прерывается.

                                                                                                                                  Ну погоди, 30 мс - это ведь не только от кода зависит, это же не 30 строчек... тут скорее скорость сервера должна влиять. То есть если ты развернешь сервер на старом ноутбуке, то твои крипы будут тупее, чем с ровно таким же скриптом но на десятипроцессорном супер-серваке из датацентра?

                                                                                                                                  Добавлено
                                                                                                                                  А вообще такая идея мне нравится! Современные программисты вообще привыкли что их программа может жрать процессор и память словно свинья - помои. У меня студенты с удивлением спрашивают - а зачем вообще столько типов данных для целого числа, какая разница сколько оно байт съедает? <_<

                                                                                                                                  Ну а команду прогеров Файрфокса я бы вообще посадил в эту игру гамать до просветления. :angry: :crazy:
                                                                                                                                  Над нами - правила форума, внутри нас - нравственный закон!
                                                                                                                                  (Девиз начинающего модератора.)
                                                                                                                                    Цитата Dark_Sup @
                                                                                                                                    30 мс

                                                                                                                                    Тут "тики", а уж как они ложатся на миллисекунды - вопрос открытый.

                                                                                                                                    Добавлено
                                                                                                                                    Цитата Dark_Sup @
                                                                                                                                    У меня студенты с удивлением спрашивают - а зачем вообще столько типов данных для целого числа, какая разница сколько оно байт съедает? <_<

                                                                                                                                    И чо ты им отвечаешь? :popcorn:

                                                                                                                                    Право — это возведенная в закон справедливость. Закон есть этика, высеченная в логике.
                                                                                                                                      Цитата Dark_Sup @
                                                                                                                                      Ну а команду прогеров Файрфокса я бы вообще посадил в эту игру гамать до просветления. :angry: :crazy:

                                                                                                                                      точно!
                                                                                                                                      =^''^=
                                                                                                                                        Цитата Астарот @
                                                                                                                                        И чо ты им отвечаешь? :popcorn:

                                                                                                                                        По-разному. Раньше говорил "а как же мобильники?", но теперь и у них оперативы стало по 3 гига и этот аргумент перестал действовать. Потом про быстродействие иногда объясняю.

                                                                                                                                        Теперь обычно говорю, что это сейчас наши тестовые программы съедает 10 килобайт памяти. А вот когда они приступят к промышленному программированиютм, то придётся обрабатывать в памяти миллионные выборки из различных БД, и тут уже начнешь задумываться, зачем я взял тип данных long для хранения года рождения. :-?

                                                                                                                                        Цитата Астарот @
                                                                                                                                        Тут "тики", а уж как они ложатся на миллисекунды - вопрос открытый.

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

                                                                                                                                        Цитата Flex Ferrum @
                                                                                                                                        В смысле, у него отбирают управление. :) А вот если скрипт выполнится и ещё осталось времени - этот остаток складывается в корзинку.

                                                                                                                                        А если "отбирается управление", и твой юнит не успел додумать, то крип просто вообще ничего не делает? И в следующий раз начнет "думать с начала" и опять ему не хватит времени? Имеет ли смысл сначала несколько "раундов" постоять, накапливая время, а потом провести комплексный расчет окружающего мира, составить перечень задач и дальше уже тупо и быстро их выполнять, ограниченно реагируя на изменение обстановки?
                                                                                                                                        Над нами - правила форума, внутри нас - нравственный закон!
                                                                                                                                        (Девиз начинающего модератора.)
                                                                                                                                          Цитата Dark_Sup @
                                                                                                                                          то придётся обрабатывать в памяти миллионные выборки из различных БД, и тут уже начнешь задумываться, зачем я взял тип данных long для хранения года рождения. :-?

                                                                                                                                          А не боишься, что они возьмут калькулятор, и посчитают эту "экономию"? :D

                                                                                                                                          Цитата Dark_Sup @
                                                                                                                                          Вот это как раз интересный вопрос. И распараллеливаются ли эти "тики" на многопроцессорных системах (подозреваю что нет, но могло бы послужить хорошую службу).

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

                                                                                                                                          Цитата Dark_Sup @
                                                                                                                                          и дальше уже тупо и быстро их выполнять, ограниченно реагируя на изменение обстановки?

                                                                                                                                          Самое время задать вопрос - у них есть "память", или они там по принципу php - каждый раз все заново? :D

                                                                                                                                          Право — это возведенная в закон справедливость. Закон есть этика, высеченная в логике.
                                                                                                                                            Dark_Sup, как написано в доке, код разных ботов выполняется параллельно. Но вот код одного бота - строго в одном потоке. Думаю, если бот не уложил я в отведенное ему время - то просто управление отбивается, и всё. Не доделал - твои проблемы. Опять же, в доке рекомендуют тяжёлые операции шедулировать здравствуйте а момент, когда тиков будет достаточно. Хотя при этом в туториалах рекомендуют использовать метод moveTo, которые по-умолчанию использует поиск пути, который, тадам!, тяжёлый. Гы-гы.

                                                                                                                                            Астарот, у них есть память. После каждого тика она сериализуется и кладется в хранилище, а перед выполненим очередного тика - десериализуется. Поэтому функции и несериализуемые объекты в ней не подержишь...
                                                                                                                                            "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                                                                                                            Морган Фриман
                                                                                                                                            Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                                                                                              Цитата Flex Ferrum @
                                                                                                                                              осле каждого тика она сериализуется и кладется в хранилище, а перед выполненим очередного тика - десериализуется. Поэтому функции и несериализуемые объекты в ней не подержишь...

                                                                                                                                              Да, для этого мы возьмем js с его функциями первого порядка, которые можно передавать, возвращать, складывать в объекты, прятать в замыкания, а потом разом это выкинем нах и ограничимся хранением json'а :D

                                                                                                                                              Цитата Flex Ferrum @
                                                                                                                                              Dark_Sup, как написано в доке, код разных ботов выполняется параллельно

                                                                                                                                              Параллельно? *вздернутая бровь* Нода стала поддерживать параллельные вычисления?

                                                                                                                                              Право — это возведенная в закон справедливость. Закон есть этика, высеченная в логике.
                                                                                                                                                Астарот, все, о чём ты говоришь, юзать можно. Нельзя только в "долговременной" памяти сохранять. А на счёт параллельности - я так понимаю, что перед запуском бота ему готовят собственный снимок игровой ситуации, а то, что делает бот с объектами, рассматривается как команды, которые будут фактически исполнены после завершения тика уже в рамках всего мира.
                                                                                                                                                "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                                                                                                                Морган Фриман
                                                                                                                                                Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                                                                                                  Цитата Flex Ferrum @
                                                                                                                                                  Астарот, все, о чём ты говоришь, юзать можно. Нельзя только в "долговременной" памяти сохранять.

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

                                                                                                                                                  Цитата Flex Ferrum @
                                                                                                                                                  А на счёт параллельности - я так понимаю, что перед запуском бота ему готовят собственный снимок игровой ситуации, а то, что делает бот с объектами, рассматривается как команды, которые будут фактически исполнены после завершения тика уже в рамках всего мира.

                                                                                                                                                  Я про то, что нода не умеет параллельность. Она работает в один поток, то есть все вычисления конкуррентны, но не параллельны. По-крайней мере раньше так было :scratch:

                                                                                                                                                  Право — это возведенная в закон справедливость. Закон есть этика, высеченная в логике.
                                                                                                                                                    Цитата Астарот @
                                                                                                                                                    Ну, так в этом и жопа же Не получится набить объект готовыми функциями, которые инициированы другими функциями, а потом этого кадавра запустить на следующий игровой тик, придется все разбирать до состояния данных, а это уже не по феншую.

                                                                                                                                                    Ну да. Так - не получится. А вот сохранять в стейте имя функции, которую надо следующей вызвать (для обработки какой-нибудь активности) - вполне себе можно. А все игрища с функциями второго порядка и прочем - это уже на уровня кода обработки. А так то, конечно, да. Второе, что я захотел, это для крипа в его памяти хранить функцию обработки согласно роли. Не свезло. :) Потом ещё долго удивлялся - а схрена ли не работает. :)


                                                                                                                                                    Цитата Астарот @
                                                                                                                                                    Я про то, что нода не умеет параллельность. Она работает в один поток, то есть все вычисления конкуррентны, но не параллельны.

                                                                                                                                                    Ну да. Конкуррентны. Забыл, что речь про ноду. У меня то обычно "конкуррентность" и "параллельность" - суть синонимы. :D

                                                                                                                                                    Добавлено
                                                                                                                                                    Вообще, сейчас (в свете общей логики работы игрового движка и запуска ботов) выбранный подход выглядит достаточно перспективным - очереди ожидающих действий, очереди активных действий, всё это сериализуется и обрабатывается. По крайней мере нет нужды городит ветвистые if-else'ы и делать кучу проверок при обработке каждого крипа. Ну, как минимум.
                                                                                                                                                    "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                                                                                                                    Морган Фриман
                                                                                                                                                    Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                                                                                                      Цитата Астарот @
                                                                                                                                                      А не боишься, что они возьмут калькулятор, и посчитают эту "экономию"? :D

                                                                                                                                                      Да я боюсь что они уйдут в Питон или 1С и вообще знать забудут что такое "тип данных". :D Ну то есть будут чуть отличать число от строки, но не более...

                                                                                                                                                      Добавлено
                                                                                                                                                      Цитата Flex Ferrum @
                                                                                                                                                      Вообще, сейчас (в свете общей логики работы игрового движка и запуска ботов) выбранный подход выглядит достаточно перспективным - очереди ожидающих действий, очереди активных действий, всё это сериализуется и обрабатывается. По крайней мере нет нужды городит ветвистые if-else'ы и делать кучу проверок при обработке каждого крипа. Ну, как минимум.


                                                                                                                                                      Я в этой вашей высокодуховной речи не уловил главного - они могут между собой результатами вычисления обмениваться, или у них настолько всё параллельно, что никак не передать?
                                                                                                                                                      Над нами - правила форума, внутри нас - нравственный закон!
                                                                                                                                                      (Девиз начинающего модератора.)
                                                                                                                                                        Цитата Dark_Sup @
                                                                                                                                                        Я в этой вашей высокодуховной речи не уловил главного - они могут между собой результатами вычисления обмениваться, или у них настолько всё параллельно, что никак не передать?

                                                                                                                                                        Боты между собой - нет. Каждый работает в своём персональном "снимке" игрового пространства и только с тем, что ему фактически доступно.
                                                                                                                                                        "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                                                                                                                        Морган Фриман
                                                                                                                                                        Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                                                                                                          Цитата Flex Ferrum @
                                                                                                                                                          очереди ожидающих действий, очереди активных действий, всё это сериализуется и обрабатывается. По крайней мере нет нужды городит ветвистые if-else'ы и делать кучу проверок при обработке каждого крипа. Ну, как минимум.

                                                                                                                                                          В данной модели тебе нужны колбэки на действия, в идеале сообщения в очереди должны быть этими самыми функциями, которые останется только вызвать. Но с ограничением на сохранение только сериализуемых объектов вся твоя акторная модель выльется фактически в свич-кейс, только в проекции сбоку.

                                                                                                                                                          Цитата Dark_Sup @
                                                                                                                                                          Я в этой вашей высокодуховной речи не уловил главного - они могут между собой результатами вычисления обмениваться, или у них настолько всё параллельно, что никак не передать?

                                                                                                                                                          Там же общее хранилище есть, чем не шина данных?

                                                                                                                                                          Право — это возведенная в закон справедливость. Закон есть этика, высеченная в логике.
                                                                                                                                                            Цитата Астарот @
                                                                                                                                                            В данной модели тебе нужны колбэки на действия, в идеале сообщения в очереди должны быть этими самыми функциями, которые останется только вызвать. Но с ограничением на сохранение только сериализуемых объектов вся твоя акторная модель выльется фактически в свич-кейс, только в проекции сбоку.

                                                                                                                                                            Именно так. Ага.

                                                                                                                                                            Цитата Астарот @
                                                                                                                                                            Там же общее хранилище есть, чем не шина данных?

                                                                                                                                                            Оно персональное, для бота. Добраться до памяти другого бота - нельзя (штатными средствами).
                                                                                                                                                            "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                                                                                                                            Морган Фриман
                                                                                                                                                            Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                                                                                                              Цитата Flex Ferrum @
                                                                                                                                                              Оно персональное, для бота. Добраться до памяти другого бота - нельзя (штатными средствами).

                                                                                                                                                              Ээээ... У тебя множество юнитов, они в начале тика откуда-то загружают себе "мозги". Вот это место, где лежат сереализованные мозги с прошлого раза разве не подходит под шину данных?
                                                                                                                                                              Сообщение отредактировано: Астарот -

                                                                                                                                                              Право — это возведенная в закон справедливость. Закон есть этика, высеченная в логике.
                                                                                                                                                                Цитата Астарот @
                                                                                                                                                                Вот это место, где лежат сереализованные мозги с прошлого раза разве не подходит под шину данных?

                                                                                                                                                                Шину данных между юинтами и всем остальным - да, подходит. Но мой и твой (условно) боты так не смогут данными обмениваться.
                                                                                                                                                                "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                                                                                                                                Морган Фриман
                                                                                                                                                                Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                                                                                                                  Цитата Flex Ferrum @
                                                                                                                                                                  Шину данных между юинтами и всем остальным - да, подходит. Но мой и твой (условно) боты так не смогут данными обмениваться.

                                                                                                                                                                  Так я и не предлагаю обмениваться данными ботам двух разных игроков. Я про обмен в рамках одного игрока. Потому что без подобного обмена невозможно заставить ботов как-то координировать свои действия.

                                                                                                                                                                  Право — это возведенная в закон справедливость. Закон есть этика, высеченная в логике.
                                                                                                                                                                    Цитата Астарот @
                                                                                                                                                                    Так я и не предлагаю обмениваться данными ботам двух разных игроков. Я про обмен в рамках одного игрока. Потому что без подобного обмена невозможно заставить ботов как-то координировать свои действия.

                                                                                                                                                                    А, с этим то как раз всё в порядке.
                                                                                                                                                                    "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                                                                                                                                    Морган Фриман
                                                                                                                                                                    Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                                                                                                                      Супыч же с этого начал:
                                                                                                                                                                      Цитата Dark_Sup @
                                                                                                                                                                      Я в этой вашей высокодуховной речи не уловил главного - они могут между собой результатами вычисления обмениваться, или у них настолько всё параллельно, что никак не передать?

                                                                                                                                                                      :)

                                                                                                                                                                      Право — это возведенная в закон справедливость. Закон есть этика, высеченная в логике.
                                                                                                                                                                        Цитата Астарот @
                                                                                                                                                                        Супыч же с этого начал:

                                                                                                                                                                        Я так понял, что он про ботов разных игроков, а не про юнитов одного.
                                                                                                                                                                        "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                                                                                                                                        Морган Фриман
                                                                                                                                                                        Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                                                                                                                          Цитата Flex Ferrum @
                                                                                                                                                                          Я так понял, что он про ботов разных игроков, а не про юнитов одного.

                                                                                                                                                                          А смысл общаться Оркам и Людям, да еще в состоянии войны? По идее юниты противоборствующих сторон должны снимать данные с игрового поля с учетом того, что они "видят", "слышат" и что там еще игра предусматривает. То есть по-хорошему юниты должны "общаться" только с Миром, а Мир уже эмитировать события подписчикам, типа "и тут из кустов выезжает танк!"

                                                                                                                                                                          Право — это возведенная в закон справедливость. Закон есть этика, высеченная в логике.
                                                                                                                                                                            Цитата Астарот @
                                                                                                                                                                            А смысл общаться Оркам и Людям, да еще в состоянии войны? По идее юниты противоборствующих сторон должны снимать данные с игрового поля с учетом того, что они "видят", "слышат" и что там еще игра предусматривает. То есть по-хорошему юниты должны "общаться" только с Миром, а Мир уже эмитировать события подписчикам, типа "и тут из кустов выезжает танк!"

                                                                                                                                                                            Я с тобой полностью согласен. Просто... Уточняю, как я понял комментарий Супыча.
                                                                                                                                                                            "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                                                                                                                                            Морган Фриман
                                                                                                                                                                            Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                                                                                                                              Чёт даже мимолетно захотелось поднять дома эту хреновину :D

                                                                                                                                                                              Право — это возведенная в закон справедливость. Закон есть этика, высеченная в логике.
                                                                                                                                                                                Ну таки и в чём проблема? :) Вот кто-бы "сорцовый" сервачок бы поднял...
                                                                                                                                                                                "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                                                                                                                                                Морган Фриман
                                                                                                                                                                                Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                                                                                                                                  Цитата Flex Ferrum @
                                                                                                                                                                                  Ну таки и в чём проблема? :)

                                                                                                                                                                                  В том, что и так есть дофига всякого, чем по-вечерам заняться нужно :D От самообразования и до заброшенных проектов, которые уже пылью покрылись. Только скриперсов там и не хватало :D

                                                                                                                                                                                  Цитата Flex Ferrum @
                                                                                                                                                                                  Вот кто-бы "сорцовый" сервачок бы поднял...

                                                                                                                                                                                  Что же тебя останавливает? :D

                                                                                                                                                                                  Право — это возведенная в закон справедливость. Закон есть этика, высеченная в логике.
                                                                                                                                                                                    Цитата Астарот @
                                                                                                                                                                                    Что же тебя останавливает?

                                                                                                                                                                                    Отсутствие площадки. :)
                                                                                                                                                                                    "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                                                                                                                                                    Морган Фриман
                                                                                                                                                                                    Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                                                                                                                                      Цитата Flex Ferrum @
                                                                                                                                                                                      Отсутствие площадки. :)

                                                                                                                                                                                      У тебя ж белый айпишник есть! Линка в старый ноут - и вперде! :D

                                                                                                                                                                                      Право — это возведенная в закон справедливость. Закон есть этика, высеченная в логике.
                                                                                                                                                                                        Цитата Астарот @
                                                                                                                                                                                        Линка в старый ноут - и вперде!

                                                                                                                                                                                        У меня нету старого ноута. :)

                                                                                                                                                                                        Добавлено
                                                                                                                                                                                        Точнее, есть, но он очень старый. Ему скоро 20 лет стукнет. :D
                                                                                                                                                                                        "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                                                                                                                                                        Морган Фриман
                                                                                                                                                                                        Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                                                                                                                                          Цитата Flex Ferrum @
                                                                                                                                                                                          Точнее, есть, но он очень старый. Ему скоро 20 лет стукнет. :D

                                                                                                                                                                                          Так можа его и хватит? :D

                                                                                                                                                                                          Право — это возведенная в закон справедливость. Закон есть этика, высеченная в логике.
                                                                                                                                                                                            Впрочем, вдруг один мой старый товарищ (здесь не присутствующий) сдержит своё обещание и поднимет сервачокс...

                                                                                                                                                                                            Добавлено
                                                                                                                                                                                            Цитата Астарот @
                                                                                                                                                                                            Так можа его и хватит?

                                                                                                                                                                                            Там 256 мегабайт оперативки. :D
                                                                                                                                                                                            "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                                                                                                                                                            Морган Фриман
                                                                                                                                                                                            Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                                                                                                                                              Супа, ты недавно комп апгрейдил! :D Сгрузи товарищу бутылочкустарое железо - он ее сдастна нем игрушку развернет :D
                                                                                                                                                                                              Сообщение отредактировано: Астарот -

                                                                                                                                                                                              Право — это возведенная в закон справедливость. Закон есть этика, высеченная в логике.
                                                                                                                                                                                                Цитата Астарот @
                                                                                                                                                                                                В том, что и так есть дофига всякого, чем по-вечерам заняться нужно :D От самообразования и до заброшенных проектов, которые уже пылью покрылись. Только скриперсов там и не хватало :D

                                                                                                                                                                                                Вот-вот, я тоже усиленно давлю в себе это желание по тем же причинам. Ну плюс у меня "ещёжедети". И студенты, которые дипломы хотят защищать.
                                                                                                                                                                                                А то пару лет назад также с подачи Флекса на Хартстоун подсел, так только летом немного отпустило... Вот интересно, Флекс когда на всё это время находит? Или он уже в своей иерархии такой высокий руководитель, что работу на "биологических скрипсов" скидывать может, а сам - давай программировать электронных? :scratch:

                                                                                                                                                                                                Добавлено
                                                                                                                                                                                                Цитата Астарот @
                                                                                                                                                                                                Супа, ты недавно комп апгрейдил! :D Сгрузи товарищу старое железо - он ее на нем игрушку развернет :D

                                                                                                                                                                                                Да я его сыну отдал. Он апгрейднул свой комп, и отдал свою старую материнку куда-то друзьям. :P

                                                                                                                                                                                                Добавлено
                                                                                                                                                                                                Но конечно попробовать было бы прикольно! А дорого сия игрушка стоит "для старта"? Или её в режиме песочницы можно вообще бесплатно брать?
                                                                                                                                                                                                Над нами - правила форума, внутри нас - нравственный закон!
                                                                                                                                                                                                (Девиз начинающего модератора.)
                                                                                                                                                                                                  Цитата Dark_Sup @
                                                                                                                                                                                                  Но конечно попробовать было бы прикольно! А дорого сия игрушка стоит "для старта"? Или её в режиме песочницы можно вообще бесплатно брать?

                                                                                                                                                                                                  Слушай, вот не знаю. :) Мне её жена подарила. На стиме ценник стоит. :)
                                                                                                                                                                                                  "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                                                                                                                                                                  Морган Фриман
                                                                                                                                                                                                  Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                                                                                                                                                    Цитата Dark_Sup @
                                                                                                                                                                                                    У меня студенты с удивлением спрашивают - а зачем вообще столько типов данных для целого числа, какая разница сколько оно байт съедает?

                                                                                                                                                                                                    Не слышал ответ Супыча на этот вопрос (живьём), я же ответил на него так: Числа :D
                                                                                                                                                                                                    "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                                                                                                                                                                    Морган Фриман
                                                                                                                                                                                                    Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                                                                                                                                                      Вот ведь, казалось бы, простая задачка. Есть две смежных комнаты. Одна - стартовая, где основная база. Из второй хочется таскать ресурсы (энергию, в смысле). Задача - построить логистику: сначала разведать комнату, потом создать крипа, который будет майнить энергию, потом послать его в эту комнату, заставить сделать контейнер, потом заставить таскать в этот контейнер результат майнинга, потом построить траспортного крипа, который будет тягать собранную энергию из построенного контейнера в "домашнюю" комнату. Просто... Ага...
                                                                                                                                                                                                      "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                                                                                                                                                                      Морган Фриман
                                                                                                                                                                                                      Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                                                                                                                                                        Цитата Flex Ferrum @
                                                                                                                                                                                                        Просто... Ага...

                                                                                                                                                                                                        А в чем конкретно сложность? То есть я не спорю, что сложно, но конкретно - в чем именно?

                                                                                                                                                                                                        Право — это возведенная в закон справедливость. Закон есть этика, высеченная в логике.
                                                                                                                                                                                                          И это ещё в ванильных условиях, когда не надо охранять ни крипа, ни контейнер!

                                                                                                                                                                                                          А постройку крипов "базой" ты тоже регламентируешь кодом? :unsure:
                                                                                                                                                                                                          Над нами - правила форума, внутри нас - нравственный закон!
                                                                                                                                                                                                          (Девиз начинающего модератора.)
                                                                                                                                                                                                            Цитата Dark_Sup @
                                                                                                                                                                                                            А постройку крипов "базой" ты тоже регламентируешь кодом?

                                                                                                                                                                                                            Да.

                                                                                                                                                                                                            Цитата Dark_Sup @
                                                                                                                                                                                                            И это ещё в ванильных условиях, когда не надо охранять ни крипа, ни контейнер!

                                                                                                                                                                                                            Типа того. Охранять, правда, придётся. Иногда кто-нибудь так и норовит прийти и пострелять... :)


                                                                                                                                                                                                            Цитата Астарот @

                                                                                                                                                                                                            А в чем конкретно сложность? То есть я не спорю, что сложно, но конкретно - в чем именно?

                                                                                                                                                                                                            Ты когда-нибудь пробовал писать несколько согласованных между собой конечных автоматов на JavaScript? А без отладчика, с одними только логами? :)
                                                                                                                                                                                                            "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                                                                                                                                                                            Морган Фриман
                                                                                                                                                                                                            Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                                                                                                                                                              Цитата Flex Ferrum @
                                                                                                                                                                                                              Ты когда-нибудь пробовал писать несколько согласованных между собой конечных автоматов на JavaScript?

                                                                                                                                                                                                              Я не уверен, что тебе нужно эти автоматы согласовывать между собой :) То есть архитектура решения не должна базироваться на "прямом взаимодействии" твоих ботов. Как мне видится - я не претендую! просто фантазирую - ИИ разведчика должен включать в себя только разведку, без учета того, что он разведует для кого-то еще. ИИ бота, который должен таскать энергию не должен ничего знать о "разведчике". Он должен тупо мониторить возникновение события "есть откуда таскать", после чего включаться и начинать таскать. Все остальное такое же независимое и атомарное. Разведчик нашел что-то? Положил инфу в общее хранилище. Если сервант позволяет, то сделать издателя-подписчика и рассылать эвенты подписанным ботам. Так "таскатель" узнает, что есть что таскать :-? А согласовывать работу нескольких конечных автоматов это адЪ...

                                                                                                                                                                                                              Цитата Flex Ferrum @
                                                                                                                                                                                                              А без отладчика, с одними только логами? :)

                                                                                                                                                                                                              А почему без отладчика? :blink:

                                                                                                                                                                                                              Право — это возведенная в закон справедливость. Закон есть этика, высеченная в логике.
                                                                                                                                                                                                                Цитата Астарот @
                                                                                                                                                                                                                Я не уверен, что тебе нужно эти автоматы согласовывать между собой То есть архитектура решения не должна базироваться на "прямом взаимодействии" твоих ботов.

                                                                                                                                                                                                                Возможно. Но есть нюанс. Если с крипами всё более менее ясно - они просто выполняют задания, которые им даются (кто-то ведь должен сказать, куда бежать скауту, и что харвестить харвестеру), то вот с глобальными стратегиями и стратегиями развития/защиты комнаты - всё несколько интереснее. А они тоже есть. :)
                                                                                                                                                                                                                "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                                                                                                                                                                                Морган Фриман
                                                                                                                                                                                                                Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                                                                                                                                                                  Цитата Flex Ferrum @
                                                                                                                                                                                                                  то вот с глобальными стратегиями и стратегиями развития/защиты комнаты - всё несколько интереснее. А они тоже есть. :)

                                                                                                                                                                                                                  Решать эту задачу путем "согласовывания стейт машин" - добровольный выстрел себе в голову. Изоляции никакой, всё влияет на всех... Чем вообще "глобальная стратегия" отличается от стратегии поведения отдельного юнита?

                                                                                                                                                                                                                  Право — это возведенная в закон справедливость. Закон есть этика, высеченная в логике.
                                                                                                                                                                                                                    Цитата Астарот @
                                                                                                                                                                                                                    Изоляции никакой, всё влияет на всех... Чем вообще "глобальная стратегия" отличается от стратегии поведения отдельного юнита?

                                                                                                                                                                                                                    Есть нюанс. Довольно серьёзный. Если юниты будут работать (выполнять задачи) совсем независимо друг от друга, то при определённых локальных максимумах эффективности может выйти глобальная неэффективность. Ну вот примеры из "жизни". Нужно создать нового юнита. Для этого надо накопить энергию. А одному из "живых" юнитов вот прям сейчас приспичило подремонтироваться. А потом другому, а потом - третьему, и накопленная энергия выжирается, нужно копить снова. Им бы вполне можно было бы и притормозить, но... :) Тут выходит как в оркестре/хоре. В принципе, все могут и умеют играть или петь. И умеют делать это хорошо. Но вот без дирижёра выйдет так себе. :) Нужна хоть какая-то согласованность действий.
                                                                                                                                                                                                                    "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                                                                                                                                                                                    Морган Фриман
                                                                                                                                                                                                                    Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                                                                                                                                                                      Ну Астя просто в Цивилизации мало играл, видимо. Там как раз очень хорошо видно, что комп играет плохо именно потому, что проходится по всем юнитам и даёт им наиболее перспективные (с точки зрения юнита) задачи. В итоге проигрывая человеку, который способен свои войска окинуть глобальным взглядом и понять ситуацию "в целом". Даже несмотря на многократное превосходство в живой силе и ресурсах у компа.
                                                                                                                                                                                                                      Над нами - правила форума, внутри нас - нравственный закон!
                                                                                                                                                                                                                      (Девиз начинающего модератора.)
                                                                                                                                                                                                                        Цитата Flex Ferrum @
                                                                                                                                                                                                                        Есть нюанс. Довольно серьёзный. Если юниты будут работать (выполнять задачи) совсем независимо друг от друга, то при определённых локальных максимумах эффективности может выйти глобальная неэффективность. Ну вот примеры из "жизни". Нужно создать нового юнита. Для этого надо накопить энергию. А одному из "живых" юнитов вот прям сейчас приспичило подремонтироваться. А потом другому, а потом - третьему, и накопленная энергия выжирается, нужно копить снова. Им бы вполне можно было бы и притормозить, но... :) Тут выходит как в оркестре/хоре. В принципе, все могут и умеют играть или петь. И умеют делать это хорошо. Но вот без дирижёра выйдет так себе. :) Нужна хоть какая-то согласованность действий.

                                                                                                                                                                                                                        Вот юнит решил "подремонтироваться" - он же берет откуда-то информацию о том где ему ремонтироваться и можно ли это сделать вообще? Берет. Оттуда же он может взять информацию о том, что сейчас ремонтироваться низя, и ему совершенно незачем знать, почему низя и когда будет можно. То есть жить они все должны через общую шину данных и получать только ту инфу, которая им нужна - как в общем-то нам наука и говорит, называя это "принципом минимальной осведомленности".

                                                                                                                                                                                                                        Добавлено
                                                                                                                                                                                                                        Цитата Dark_Sup @
                                                                                                                                                                                                                        Ну Астя просто в Цивилизации мало играл, видимо. Там как раз очень хорошо видно, что комп играет плохо именно потому, что проходится по всем юнитам и даёт им наиболее перспективные (с точки зрения юнита) задачи. В итоге проигрывая человеку, который способен свои войска окинуть глобальным взглядом и понять ситуацию "в целом". Даже несмотря на многократное превосходство в живой силе и ресурсах у компа.

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

                                                                                                                                                                                                                        Право — это возведенная в закон справедливость. Закон есть этика, высеченная в логике.
                                                                                                                                                                                                                          Астарот, информацию о том, где ремонтироваться, юнит берет с карты. Нашёл точку spawn'а и побёг к ней. Прибег - присосаться и качает энергию. Если никто другой в этот же момент не ремонтируется. И spawn ничем не занят. В итоге - типичное состояние гонки. А общая шина данных, про которую ты толкуешь, и есть средство синхронизации персональных автоматов юнитов. Ну, по сути. Кто-то ведь выставляет на неё информацию о том, что можно, а что нельзя. В идеале, юнита для ремонта надо выбирать не посредством демократического голосования "кто первый встал - того и тапки", а самого изношенного.
                                                                                                                                                                                                                          Сообщение отредактировано: Flex Ferrum -
                                                                                                                                                                                                                          "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                                                                                                                                                                                          Морган Фриман
                                                                                                                                                                                                                          Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                                                                                                                                                                            Цитата Flex Ferrum @
                                                                                                                                                                                                                            А общая шина данных, про которую ты толкуешь, и есть средство синхронизации персональных автоматов юнитов.

                                                                                                                                                                                                                            Извините! Но общая шина данных - это способ синхронизации чего угодно с чем угодно. Я-то делаю стойку на твою фразу:
                                                                                                                                                                                                                            Цитата Flex Ferrum @
                                                                                                                                                                                                                            Ты когда-нибудь пробовал писать несколько согласованных между собой конечных автоматов на JavaScript?

                                                                                                                                                                                                                            Выглядит так, словно у тебя юниты связаны напрямую (пусть и через некое хранилище), и поведение одного юнита влияет на поведение другого. Я же говорю о том, что юниты должны скидывать в шину свои сообщения, которые должны кем-то обрабатываться - да пусть отдельным юнитом-генералом, который больше ничего не делает. Этот генерал выполняет роль обсервера и в ту же шину кидает свои генеральные указания - вот тебе место, где работает твоя глобальная стратегия, и где можно определить кто будет ченится и будет ли вообще. Я это как-то так вижу.

                                                                                                                                                                                                                            Цитата Flex Ferrum @
                                                                                                                                                                                                                            А без отладчика, с одними только логами? :)

                                                                                                                                                                                                                            Так почему без отладчика?

                                                                                                                                                                                                                            Право — это возведенная в закон справедливость. Закон есть этика, высеченная в логике.
                                                                                                                                                                                                                              Цитата Астарот @
                                                                                                                                                                                                                              Так почему без отладчика?

                                                                                                                                                                                                                              Ну если в логи скидывать всё максимально подробно, то не хуже отладчика будет. :-?
                                                                                                                                                                                                                              Над нами - правила форума, внутри нас - нравственный закон!
                                                                                                                                                                                                                              (Девиз начинающего модератора.)
                                                                                                                                                                                                                                Цитата Dark_Sup @
                                                                                                                                                                                                                                Ну если в логи скидывать всё максимально подробно, то не хуже отладчика будет. :-?

                                                                                                                                                                                                                                Ага, жаль об этом не знали те, кто отладчики придумал :facepalm: Засираем код "максимально подробным скидыванием", тратим время на то, что бы отформатировать и сделать пригодным для чтения глазами объект js, который может быть многоэтажным, фигачим if'ами кондишены скидывания - и правда не хуже! :facepalm: Кому нафиг нужны эти брякпоинты и уже готовые преттипринты, с разворачивающимися узлами, не говоря уж о Alt+F8? :-? Не жили хорошо - нечего и начинать, правда? :crazy:

                                                                                                                                                                                                                                Право — это возведенная в закон справедливость. Закон есть этика, высеченная в логике.
                                                                                                                                                                                                                                  Астарот, человек открыл для себя console.log; не ломай кайф. Да и всяко же console.log удобнее alert :D
                                                                                                                                                                                                                                  Долгих вам дней и приятных ночей
                                                                                                                                                                                                                                    Вот накинулся-то на меня. :D Я ж не говорю, что отладчик - это плохо... я лишь намекаю, что если разработчиками отладчик не предоставлен, то можно всё равно жить вполне сносно, пользуясь логами. :-?
                                                                                                                                                                                                                                    Над нами - правила форума, внутри нас - нравственный закон!
                                                                                                                                                                                                                                    (Девиз начинающего модератора.)
                                                                                                                                                                                                                                      Цитата Dark_Sup @
                                                                                                                                                                                                                                      Вот накинулся-то на меня. :D Я ж не говорю, что отладчик - это плохо... я лишь намекаю, что если разработчиками отладчик не предоставлен, то можно всё равно жить вполне сносно, пользуясь логами. :-?

                                                                                                                                                                                                                                      Вообще я пока только спросил - почему без отладчика? И ответа не получил, а ты уже рассказываешь, что логами "не хуже" :) Промежду тем Idea прекрасно дружит с node.js, и в процессе разработки на песочнице этим можно и нужно активно пользоваться. Вот и интересно мне, почему Флекс не пользуется...
                                                                                                                                                                                                                                      Сообщение отредактировано: Астарот -

                                                                                                                                                                                                                                      Право — это возведенная в закон справедливость. Закон есть этика, высеченная в логике.
                                                                                                                                                                                                                                        Цитата Астарот @
                                                                                                                                                                                                                                        Так почему без отладчика?

                                                                                                                                                                                                                                        Ну вот по какой-то причине полноценный отладчик оказался не предусмотрен разработчиками. Возможно, к сендбоксу в браузере его ещё как-то и можно прикруить, но вот как его воткнуть в скрипты, которые крутятся на локальном (и, тем паче, глобальном) серверах - ХЗ... Я очевидных способов не вижу...
                                                                                                                                                                                                                                        "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                                                                                                                                                                                                        Морган Фриман
                                                                                                                                                                                                                                        Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                                                                                                                                                                                          Цитата Flex Ferrum @
                                                                                                                                                                                                                                          Ну вот по какой-то причине полноценный отладчик оказался не предусмотрен разработчиками.

                                                                                                                                                                                                                                          Так не ими и должен был :)

                                                                                                                                                                                                                                          Цитата Flex Ferrum @
                                                                                                                                                                                                                                          Возможно, к сендбоксу в браузере

                                                                                                                                                                                                                                          Какому браузеру? :) :lool:

                                                                                                                                                                                                                                          Цитата Flex Ferrum @
                                                                                                                                                                                                                                          и, тем паче, глобальном

                                                                                                                                                                                                                                          К глобальному тебе и не надо, тебе ж для девелопмента.

                                                                                                                                                                                                                                          Короче! Если эта хрень работает на node.js, и у тебя есть песочница, то у тебя локально запускается node.js. На твоей машине. Он запускается и выполняет скрипты, отдает статику в браузер, и там уже идет отрисовка. Idea замечательно умеет запускать ноду из под себя - запускает и замечательно его при этом дебажит :yes: С бряками, и всеми прочими плюшками, и от разработчиков того, что на ноде крутится тут мало что зависит. Выкидывай свой нетбинс, или каким эклипсом ты там пользуешься, и бери нормальный инструмент ;)

                                                                                                                                                                                                                                          Добавлено
                                                                                                                                                                                                                                          Собсна если я и правда не напутал, и дело в дебаге ноды, как таковой, то имеет смысл заглянуть всюда: https://www.jetbrains.com/help/idea/2016.3/...ng-node-js.html

                                                                                                                                                                                                                                          Право — это возведенная в закон справедливость. Закон есть этика, высеченная в логике.
                                                                                                                                                                                                                                            Ну что, Флекс? Удалось направить кремниевые мозги на путь просветления?
                                                                                                                                                                                                                                            Над нами - правила форума, внутри нас - нравственный закон!
                                                                                                                                                                                                                                            (Девиз начинающего модератора.)
                                                                                                                                                                                                                                              Цитата Dark_Sup @
                                                                                                                                                                                                                                              Ну что, Флекс? Удалось направить кремниевые мозги на путь просветления?

                                                                                                                                                                                                                                              Брал некоторую паузу. Сейчас вот код рефачу.
                                                                                                                                                                                                                                              "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                                                                                                                                                                                                              Морган Фриман
                                                                                                                                                                                                                                              Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                                                                                                                                                                                                В общем, приватный сервер поднят. Кому интересно - выдам ссылку в привате. Для игры необходим steam-клиент screeps.
                                                                                                                                                                                                                                                "Математики думают, что Бог в уравнениях, нейрологи уверены, что Бог в мозге, а программисты уверены, что Бог — один из них."
                                                                                                                                                                                                                                                Морган Фриман
                                                                                                                                                                                                                                                Реализация шаблонов Jinja2 для C++ Jinja2 C++
                                                                                                                                                                                                                                                  Цитата Flex Ferrum @
                                                                                                                                                                                                                                                  Для игры необходим steam-клиент screeps.

                                                                                                                                                                                                                                                  Вот прям даже не знаю, что это такое.

                                                                                                                                                                                                                                                  Право — это возведенная в закон справедливость. Закон есть этика, высеченная в логике.
                                                                                                                                                                                                                                                    Цитата Астарот @

                                                                                                                                                                                                                                                    Вот прям даже не знаю, что это такое.

                                                                                                                                                                                                                                                    полагаю, купленная в стиме игра.
                                                                                                                                                                                                                                                    =^''^=
                                                                                                                                                                                                                                                      :blink: :blink: :blink:
                                                                                                                                                                                                                                                      Цитата
                                                                                                                                                                                                                                                      На данный момент у нас 1600 активных игроков в мире. Скрипты отдельных игроков уже язык не поворачивается назвать "скриптами" — некоторые из них содержат до 25к строк кода, компилируются из TypeScript или даже из C/C++/Rust через WebAssembly (да, мы поддерживаем wasm!), и реализуют концепцию настоящих миниатюрных ОС, в которых игроки разработали собственный пул игровых задач-процессов и их менеджмент через ядро, которое берет столько задач, сколько получается выполнить на данном игровом такте, выполняет их, а невыполненные откладывает в очередь до следующего такта.

                                                                                                                                                                                                                                                      https://habr.com/ru/post/437836/

                                                                                                                                                                                                                                                      Право — это возведенная в закон справедливость. Закон есть этика, высеченная в логике.
                                                                                                                                                                                                                                                        Нормальная эволюция кода. Сначала ифы по рандому, теперь а-ля бот в старкрафте, потом кто-нибудь нейросеть прикрутит.
                                                                                                                                                                                                                                                        Долог путь в бессмертие... я еще вернусь.
                                                                                                                                                                                                                                                        Профильный скилл "Телепатия" 8%
                                                                                                                                                                                                                                                        ТРОЛЛЬ - Троян Разрушительный Опасный, Лучше ЛинятЬ (с) Freezing Spell
                                                                                                                                                                                                                                                        Прошу потестить игру.
                                                                                                                                                                                                                                                            Цитата Астарот @
                                                                                                                                                                                                                                                            На данный момент у нас 1600 активных игроков в мире. Скрипты отдельных игроков уже язык не поворачивается назвать "скриптами" — некоторые из них содержат до 25к строк кода

                                                                                                                                                                                                                                                            А графику они за столько лет так и не апгрейдили? Эх... Ну все эти стандартные роботы-кружочки с цифровыми параметрами жизнь/скорость/урон/времяпроизводства никак не позволяют им сопереживать. Даже мне, который играл в первую цивилизацию... Но там всё таки хоть и были юниты-квадратики, но они были настоящими - танк, авианосец, мечник, коник, мушкетер.
                                                                                                                                                                                                                                                            Хотя может какие-нибудь клиенты уже появились, где пользователи свои собственные скины добавляют? Ну есть же Majesty-подобные игры, индирект контрол, которому единственное чего не хватает - так это возможности вложить самостоятельно придуманные мозги в головы своим подопечным... эхх.
                                                                                                                                                                                                                                                            Над нами - правила форума, внутри нас - нравственный закон!
                                                                                                                                                                                                                                                            (Девиз начинающего модератора.)
                                                                                                                                                                                                                                                            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                                                                                                                                                                                                                                            0 пользователей:


                                                                                                                                                                                                                                                            Рейтинг@Mail.ru
                                                                                                                                                                                                                                                            [ Script Execution time: 0,7613 ]   [ 19 queries used ]   [ Generated: 18.07.19, 13:18 GMT ]