Sektor, было бы замечательно, если бы ты рассказал о том, какие преимущества возникают при работе с Vice Lua в отличие от работы с ase-скриптами и обычного скриптинга? Как вкратце грубо изнутри работает Vice Lua, на чем он основан?
Я более тонких ответов не смогу дать, потому как мало работал с CLEO, но кое что могу рассказать. Если взять CLEO, то там не было возможности, описывать свои функции или разрабатывать классы прям в скрипте. Также для GTA Vice City не было SDK. что-бы можно было писать функционал на C++ и использовать его в скриптинге. Хочу заметить что присутствовали лимиты, разной степени как в потоках так и некоторые другие, но я не создавал пакет для того что-бы критиковать CLEO. Мне нужно было решение для разработки сценариев игры в удобном варианте, позже я понял что это может пригодиться другим. По этому я личное дело оставил и начал разрабатывать стандарт для других людей. Тут работы много, все функции переписываются а не вещают хуки, почему LUA и может работать совместно с CLEO или по желанию отключить и во все SCM.
На чем основан весь этот движок?Изначально язык, разработал не я, а другая команда, которая выложила в общий доступ, по этому подобные факты нельзя путать. Я думал какой же язык подойдет лучше для скриптинга, вот ту я понял что LUA - это просто гипер высокого уровня язык, к тому же этот язык многие знают. А что касаемо уже Vice Lua - это уже я основал, уже внедрился в процесс написал общее ядро, как оно будет работать и написал такую систему, что каждый человек сможет наращивать функционал и использовать его в скриптах. Все это основано изначально на C++ также как и LUA пакет, его содержимое дается в исходниках. У меня ушло 3 месяца, беспрерывной работы, на то что-бы выпустить что-то вкусное. На данном этапе я еще обновляю стандартную библиотеку vc-basic до версии 1.1, там будет добавлен гораздо приличный список функций, которые скриптеры и будут использовать в своих скрипта. Если например над модом работает команда человек скриптеры и программисты - то вы можете поступить так как вам удобно, программисты могут написать для скриптеров плагины, которые добавят всякие функции а скриптеры в свою очередь, будут это использовать. Другой вариант, когда вы являетесь программистом и можете также писать скрипты, вы все тоже самое сможете для себя сделать.
Какие возможности у этого языка LUA?Я так не могу сказать про все возможности, но возможностей действительно гора. Например вы можете писать скрипты прямо на ходу игры, вы можете организовать много-модульность, вы можете эмитировать классы ООП, создавать свой функционал и строить аккуратную структуру вашего кода и создавать как глобальные моды, так обычные моды аддоны. Данный язык невероятно гибок и позволяет быстро разрабатывать ваши сценарии на высоком уровне.
В чем разница с asi ?Ну тут наверное имелось введу, почему бы просто не создать все это на ASI и не затрагивать LUA? Если я правильно понял, то это будет плохим решением для дизайна игры. Во первых миссии проектировать на голом C++ - это занятие много-емкостное, во вторых когда мы пишем на C++ мы отвлекаемся на общую проекцию кода вплоть до общения с железом. В третьих после изменений, большие проекты пришлось бы каждый раз перекомпилировать что-бы проверить, что же получилось. В четвертых факты, все игры используют свой личный язык для создания миссий, это я про большие игры, где существует последовательность действий и много событий.
Вообщем скриптовые фишки нужны: Что-бы ваш разум поместить на уровень сценариста, что-бы вы ориентировались на моде, а не о том как работать с памятью и загружать файлы и прочее то что мы делаем в C++. Во вторых вы быстро можете вносить изменения, как и говорил при желании вы можете сделать все на лету игры. Хороший сценарист, без хороших инструментов, застрянет, мне так кажется. По этому подведем этог, программирования на C++ - это основная разработка ядра. Скриптинг - это разработка дизайна в линейке этой игры, это моды, это сценарии, это ИИ, это много всяких штук.