![]() |
Ответ: Альтернатива скриптовику.
Вообщем. Пример для XNA.
тут 3 файла. hero.dll script1.dll game.exe hero.dll это вспомогательная библиотека скомпилированная из кода ниже и содержащая класс персонажа с информацией о нем. Персонаж у нас это 2д квадрат 20 на 20. Информация это его положение и цвет. script1.dll это наш скрипт. Он создает одного персонажа и двигает его по окружности с радиусом 80. game.exe это наш скриптовый движок, который читает script1.dll с помощью рефлексии и выполняет соответственно. Компиляция первых двух библиотек производилась с помощью следующего кода: Смысл в том, что скриптовый движок знает только то, что в скрипте есть две функции - draw и update. Соотвественно он их и исполняет. А в них прописано создание объекта персонажа и его движение. Тоесть скрипт. Возможно из-за криво указанных XNA сборок при компиляции у вас ниче не запустица если их адресс не будит совпадать с моим. =) Без указания полного пути у меня так и не получилось. Можно компилировать код на c# из текстовых файлов в сборки IL в оперативную память. При запуске игры например. Автоматически. |
Ответ: Альтернатива скриптовику.
Раз не подходит LUA, AngleScript, TCL, REBOL то надо писать свой скриптовик под свои нужды.
|
Ответ: Альтернатива скриптовику.
Цитата:
|
Ответ: Альтернатива скриптовику.
Цитата:
radiobutton, ты с какого раза поймёшь, что суть скрипта в том, чтобы он выполнлся на лету (интерпретировался), а не компилировался. если ты не понимаешь таких очевидных вещей - |
Ответ: Альтернатива скриптовику.
Цитата:
у меня как выполняются? |
Ответ: Альтернатива скриптовику.
Цитата:
Скрипт в DLL - это хардкор. |
Ответ: Альтернатива скриптовику.
Цитата:
Вместо блокнота только нужно свое приложение небольшое написать. В котором будит таже кнопка сохранить. И тоже текстовое поле в котором можно будит вводить код. Когда будишь нажимать на сохранить код будит автоматически компилироваться в dll сборку. А можно вообще не компилировать. А хранить в зашифрованном виде c# код. И компилировать уже при запуске игры расшифровывая файлы. При этом скорость работы кода на IL в разы быстрее чем скорость работы ваших интерпритаторов. :) компиляция 1000 раз моего скрипта из прошлого примера занимает 23456 милисекунд. тоесть 23 милисекунды на скрипт. Имхо большая часть времени уходит на составление метаданных т.к. скрипт маленький. Теперь подумай сколько времени тебе нужно чтобы дотянуться мышкой в блокноте до кнопки сохранить? Единственное это не подходит для самосовершенствующихся приложений, которым необходимо переделывать свой код несколько сот раз в секунду. Но мы кажется говорим об играх. |
Ответ: Альтернатива скриптовику.
Цитата:
|
Ответ: Альтернатива скриптовику.
Цитата:
По существу: Иди проспись. |
Ответ: Альтернатива скриптовику.
Цитата:
|
Ответ: Альтернатива скриптовику.
Цитата:
|
Ответ: Альтернатива скриптовику.
radiobutton. То что ты предложил - по сути лишний геморрой. Проще сразу зашить сценарий в экзешник. |
Ответ: Альтернатива скриптовику.
Gector, IgorOK
зря вы на radiobutton накинулись. да, к кому угодно можно испытывать расовую неприязнь и да, есть некоторые тонкости в использовании рефлексии вместо полноценной скрипт системы, но ваши аргументы сами по себе унылы. какой нафиг блокнот? нет, серьёзно, скриптовать логику в блокноте? Это конфиг параметры в блокноте удобно править. А писать какой-никакой код - совсем неудобно. Иметь какую-либо тривиальную IDE в любом случае надо. Желательно что бы она была вшита в какой-нибудь редактор. А раз оно всё равно нужно, то чем плохо написать код и собрать его в длл средствами этой самопальной IDE? Компиляция? Ну это, господа, совсем не аргумент. Чем оно вас не устроило? Я понимаю, ничего хорошего в ребилде всего проекта нет (у меня например проекты билдятся от получаса до нескольких часов, правда это C++, Boost и куча куча других штук). Но уж скомпилять за полсекунды длл-ку со скриптовой логикой вполне себе допустимо. Аргументы не те. Придумайте что-нибудь по существенней. :) |
Ответ: Альтернатива скриптовику.
Цитата:
Насчёт "писать в блокноте" - согласен, а вот насчёт "чтобы что-то подправить нужна IDE" - нет. Желательно, чтобы скрипты можно было корёжить без IDE, на локальной машине тестера/друга/демонстрационном компьютере в комнате собраний совета директоров. Таскать с собой всегда и везде флешечку с тулчейном - не айс. Pre-runtime компиляция - ок, но тогда надо изворачиваться, если потребуется runtime-модификация скриптов (а это айс-какая фича, и вообще ускоряет разработку). Отсюда вывод: в общем случае интерпретация для скриптинга предпочтительнее. |
Ответ: Альтернатива скриптовику.
Цитата:
Для скриптовой сцены длл, для этого уровня длл и для того босса длл. Уж тем более для рпг - тысячи длл. Не сказал бы, что это очень удобно. |
Часовой пояс GMT +4, время: 14:54. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot