Pull to refresh

Comments 15

UFO just landed and posted this here
Для выполнения кода на сервере надо поменять скрипты используемые сервером. То есть если хакер должен получить доступ на запись к папке со скриптами.
Если же пользователь поменяет скрипты на клиенте, то произойдёт рассинхрон.
Сейчас этого скрипта на клиентской стороне уже нет, после соединения клиент получает список готовых объектов по вебсокетам.
думаю можно еще использовать верификацию CRC файлов.
UFO just landed and posted this here
Да, здорово :)
В бомбере такой подход используется для скинов, тоже обрабатывается коллекция и получается уже нормальный JSON списка скинов с заполненными многочисленными полями.
Xml тоже можно смотреть дифы. Есть редакторы которые показывают xml в виде таблицы. Любой декларативный вариант скриптов «ляжет» на xml. Почему то многие програмисты считают что всем вокруг удобнее описывать все через скрипты.
Но статья отличная.
Проходил туториал. MPS-код нельзя поредактировать через блокнот, а значит тем кто будет это редактировать и собирать во что-либо придётся ставить MPS => очень неудобно.
Ну да, придется. Блокнот, всё-таки, ничего не знает о вашем языке и подсказать ничего не может. Меня по началу тоже напрягало, что я не редактирую напрямую текст. Казалось, что это что-то слишком зыбкое, что нельзя поченить в случае чего извне. Потом привыкаешь. Единственный минус — пока нет локальной истории, но, думаю, это должны добавить. Плюс MPS в том, что редактор уже написан за вас. На MPS поломать исходник очепяткой сложнее, чем в обычном редакторе.

А ставить какие-то инструменты в любом случае придется, если речь идет о немалом проекте )
Чтобы использовать MPS в моём случае, придётся на нём разработать ещё один язык, код из которого будет собираться в groovy скрипт. Иначе я не смогу делать быстрые правки конфигурации на сервере.

Я бы использовал MPS в другом проекте, где предполагалось что код только через IDE будет редактироваться, но там основная программа на C#, пришлось всё писать самому кроме парсера (Irony) и редактора кода (SharpDevelop AvalonEdit).
Типично для Ruby, — DSL для описания конфигурации. Вам бы рекомендовал попробовать для этой цели JRuby.
brick do
  type :solid
  image 44
  // сейчас будем описывать что будет если блок снесут
  on_damage do
    prise_in_brick do
      variants: [
         // Прописываем выпадение предметов
         bomb for: 20.percents
         power for: 40.percents
         scate for: 40.percents
         // Тут даже можно описать некоторый предмет, который будет превращаться во что-то другое когда его подберут
         surprise for: 10.percents, effect: :santa_cant_take, image: 11, variants: {
           bomb for: 5.percents
         }
         heart for: 0.1, health: 430
      ]
      // В любом случае надо снести этот блок
      destroy_rocky
end


Сейчас попробую его подрубить к тестовому github-овскому проекту, проверим что выйдет :)
OK, грязноватый скрипт на jruby

Понятно что скриптовую модель придётся менять чтобы использовать всю его мощь.
Я, к сожалению, не понял в чем была проблема, как работала тайловая система, зачем понадобились json скрипты и причем здесь мультиплеер. Возможно ли как то еще доступно объяснить? :) Спасибо
Sign up to leave a comment.

Articles