Что означает (Lua) сценарий игры?

9

Я читал, что Lua часто используется для встроенных сценариев и, в частности, для сценариев. Мне трудно представить, как именно это используется. Можете ли вы описать, почему и для каких функций и для какой аудитории он используется?

Эти вопросы не относятся конкретно к Lua, а скорее к любым встроенным сценариям, которые служат цели, аналогичной сценариям Lua .

Используется ли он для конечных пользователей для выполнения пользовательских настроек? Используется ли разработчиками игр для ускорения создания игровой логики (уровни, AI, ...)? Используется ли он для написания кода игрового фреймворка, так как он может быть быстрее?

По сути, мне интересно, насколько глубока между простой конфигурацией и логикой инфраструктуры такое использование сценариев. И сколько скриптов сделано. Несколько строк конфигурации или значительное количество?

Gerenuk
источник

Ответы:

11

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

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

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

Вдобавок ко всему этому они позволяют легко отлаживать, моддинг и все другие приятные вещи, которые вы упомянули.

Даниэль Б
источник
3

Используется ли он для конечных пользователей для выполнения пользовательских настроек?

Его можно использовать для самых разных целей, от простых настроек до реализации основной части логики высокого уровня игры, например, это зависит от игры, но Lua - это просто встроенные скрипты. Люди могут использовать это столько, сколько захотят.


источник
1
Некоторые игры позволяют конечным пользователям реализовывать свои собственные сценарии. Наряду с общедоступным API пользователи могут реализовывать дополнения, виджеты и т. Д., Которые реагируют на игровые события.
18:00
1
Я думал в MMO RPG :-)
Laiv
1
@Laiv IMO MMORPG - это одна из тех вещей, которые кажутся такими забавными для реализации, но, подобно долгой игре в них, это превращается в такую ​​затею. Игровой мир обычно должен быть таким статичным, или же модераторы должны принимать активное участие. Я думаю, что офлайн-игры так интересны для разработки, потому что вы можете создать очень динамичный мир с историей, которая действительно подходит к концу.
1
Нет нет. Несколько лет назад я играл в Аллоды Онлайн. В игре было немного API для геймеров, чтобы реализовывать дополнения и виджеты. Просто хотел расширить ваш ответ несколькими примерами :-)
Laiv
1
@Laiv О, я вижу! Я в процессе удаления своей учетной записи, но я отредактировал свой ответ, чтобы сделать его короче и приятнее. В процессе я потерял немного информации, но мое предыдущее редактирование говорило о том, как я использовал сценарии лично. Прямо сейчас я пытаюсь отредактировать всю личную информацию из моих ответов.
2

Его могут использовать люди, не являющиеся оригинальными программистами, для изменения или расширения игровой логики. Такие люди могут быть относительно нетехническими, например, разработчики игр или конечные пользователи (геймеры).

Скрипты обычно являются языками более высокого уровня, и поэтому Lua легче, чем C ++. Код, написанный в сценариях, обычно может быть изменен без перекомпиляции основного приложения (игрового движка), что полезно для разработчиков игр для быстрой настройки игровых сцен.

PS: лучше задайте этот вопрос на gamedev.stackexchange.com

логово
источник