
Скриптовый движок
Я давно задумывался о каком-нибудь скриптовом движке для игр на Flash. Нашёл движок, который в рантайме компилит и выполняет код на AS. Вот что написано на сайте: This library aims to provide an API for compiling and executing runtime ActionScript/JavaScript within the Flash client (no server required) via Adobe's ECMAScript 4 compiler (from the Tamarin project).
- +7
- elmortem
Комментарии (31)
Если посмотреть по Tamarin или ECMAScript в гуглокоде, то будут еще варианты.
На последнем Casual Connect Виталий Хить немного затрагивал эту тему(он использует hurlant), там презентация и аудио (на русском), есть что подумать ;)
ЗЫ Было бы все-таки интересно взглянуть на ваш движок и простейший пример работы.
Я в этом смысле очень поддерживаю идеологию Ruby, где принято даже конфигурационный файл писать на ruby, а не на XML.
Тогда единственное преимущество получается отсутствие перекомпиляции, правильно? Того преимущества, которое вы упомянули можно достичь и если уровни писать прямо в специально структурированных AS файлах, которые будет компилировать mxmlc или Flash CS в compile-time.
Просто скриптовать Джавовский или Сишный проект — это я понимаю. Все-таки, языки тяжеловесные, требуют много «лесов» и разработчиков в теме проекта. А цимус скриптовать Javascript, Actionscript, Ruby и прочие динамические и легковесные языки я не особенно вижу. Там несложно выделить просто отдельный package и писать в нем скрипты уровня.
PS: Это не в порядке критики все, конечно! Просто интересно понять ваш интерес к теме!
Интересно, вы предлагаете вместе с игрой (в которой будет встроен редактор уровней) на портал выкладывать ещё и mxmlc или Flash CS? Интересное предложение.
Мой интерес в том, чтобы редактор не был привязан ни к каким внешним тулзам и при этом позволял то же, что и с ними. Зачем mxmlc, если можно компильнуть прямо при загрузки уровня и это займёт не так много времени?
Но можно конечно просто делать, чтобы получать гиковский фан от технологий, сам таким иногда болею :).
Ну и естественно гиковский фан. Если есть возможность сделать хорошё и есть время, чтобы сделать хорошё — почему бы и не сделать хорошё? (:
На самом деле скриптинг решит очень дофига проблем нативными средствами, без написания всяких дополнительных игровых сущностей.
В любом случае, надо сначала попробовать, а потом я подробнее про это расскажу. Хотя это точно будет не раньше февраля.
Мы сейчас делаем довольно замороченный платформер, и там сейчас используется 9 триггеров. Чтобы сделать интересную логику на каждый объект может приходится по 2-4 триггера, что не очень удобно. От того я и задумался над скриптами. Т.е. не совсем «скриптинг ради скриптинга, потому что это круто», хотя не исключаю немного своего программерского фанатизма. (:
Вот говорится, что решится куча проблем. Кем решится? Предлагается левел-дизайнеру срочно стать программистом? Скорее всего быстрее пересобрать проект из IDE, главное по запуску предусмотреть попадание левелдизайнера сразу в сохраненный уровень, а не в меню для экономии времени на рутинных правках.
Или ЦА это массовая аудитория на порталах? Сколько там людей владеющими технологиями в принципе? Этож какой проект должен быть, чтобы люди стали делать моды. Фалаут5 наверное.
Но в любом случае успехов :)
Я же думаю дело в том, что те кто в курсе AS3 уже имеют настроенную IDE (FD+flex sdk). Остальным придется учиться. Чтобы возникло желание учиться, надо что-то этакое.
то персонаж телепортнётся в точку с координатами (100;100). Для этого не нужно изучать прграммирование.
Или ещё проще: Они нажмут в специальной форме кнопочку "+", выберут из списка «Move Actovator» и ведут в специальную форму X и Y.
Я пока ещё не продумывал внешнее юзабилити скриптинга, т.к. пока для меня это перспективная идея на следующий год. Вот в следующем году и расскажу, на сколько это всё получилось удобно и полезно.
Всем остальным: Конечно, это ещё не готовая технология, не обкатанная. Надо пробовать, смотреть что получается. Пока подобными экспериментами занимается только Абсолютист, на сколько мне известно. Не стоит говорить, что скрипты — отстой, только потому, что вам они не нужны и вы вообще делаете игры в одиночку и программируете уровень вручную в коде считая это правильным подходом. (:
Если для «своих» — то инжектинга можно не боятся. Если для всех, то
что будет если вместо мув встретится:
Если это визуальный конструктор то зачем создавать код, почему не проще интерпретировать «большим switch-case», всеравно «player» это не тоже самое что player.move(100,100)
p.s. у нас над проектами 3 человека работает с разной специализацией, сейчас попробуем левелдизайн зааутсорсить.
p.p.s критический взгляд это же тоже не плохо :)
Так что на этом уровне там есть защита, просто подключаем при компиляции только игровые классы. А уж с игрой пусть делают, что хотят.
А большой switch-case — это ужасно и не правильно. (:
На самом деле идея в том, чтобы сделать для «своих» адвансед функционал, но при этом чтобы можно было отдать полноценный работающий редактор игрокам в составе самой игры. А там уж не хотят игроки скриптить — не надо.