Найти в Дзене

Lua в модах

Lua в модах

Ещё одной из интересных частей игровой разработки является поддержка моддинга. Часто игрокам хочется дать возможность создавать пользовательские модификации, но при этом обычно редакторы получаются достаточно ограниченными, поэтому прибегают к помощи скриптовых языков. И тут старое как мир правило от программистов.

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

В чём плюсы луа?

— Его быстро учить (я нашёл вообще замечательную ссылку)

— Его часто используют для модов Roblox из последнего. World of Warcraft и многие другие игры брали за основу луа, так как он простой. А значит мододелы и игроки его знают (хотя бы иногда, в отличии от вашего замечательного своего языка). Даже в TableTopSimulator используется Луа https://steamcommunity.com/sharedfiles/filedetails/?id=842872619

— У него есть бесплатные и открытие интерпетаторы типа https://github.com/moonsharp-devs/moonsharp

— Это именно скриптовый язык, который не оброс миллиардом фреймворков и комьюнити программистов

Просто если брать другие интерпретируемые языки. Тот же Python. Да, под него тоже есть забавные тулзы, типа https://ironpython.net/ (пиши на питоне используя .Net фреймворк, даже с юнити можно связать при желании) Или http://pythonnet.github.io/ И как интерпретируемый язык, его можно в целом грузить в рантайме и обрабатывать построчно. Можно в установочнике игры поставить (на ту же винду) Пользователю питон, пип, чёрта в ступе) И научить его ML, вместо написания модов для игры XD

Питон — это язык программирования с кучей фреймворков. И во-первых, на нём нужно уметь писать. Во-вторых, весь поиск, все комьюнити, всё что угодно по питону будет заполнено ответами для программистов. Для чего нужен опыт, чтобы понять, что "ага, тут я не могу делать так, так как у меня не полный языковой интерпретатор". Поэтому лучше брать те языки, которые изначально использовались для модов, скриптовые)

Конечно есть ещё Lisp или как его ещё называют язык смайликов или Forth. У которых так же легковесные интерпретаторы) Но они не сравнятся по популярности с Луа, да и по удобству) В общем рекомендую ознакомится с луа на досуге :)