Загадочные скрипты
Загадочные скрипты | |
Автор | Desertir |
Тип статьи | справка |
Актуальность | ТЧ, ЧН, ЗП |
Немного ненужной лирики
«Золотой век» модостроения для игры S.T.A.L.K.E.R. прошел, не нужно этого отрицать, все великие деятели этой области уже никогда не продолжат писать свои гениальные произведения[1]. Не буду спорить – модострой продолжается, однако многие согласятся, что это уже «не то» и «прежним» никогда не станет.
Введение
Эта статья, по моему замыслу, должна помочь читающему в понимании, что такое скрипты игры S.T.A.L.K.E.R. Кто-то, возможно из великих, сказал: «Нельзя научить, можно научиться». Я почти не сомневаюсь, что этот человек имел ввиду программирование. Это искусство мыслить не так, как все. Мыслить как машина и как человек одновременно. Знания уходят на второе место и, как следствие, программирование нельзя выучить или бездумно списать. Это способ понимать одновременно простые и сложные вещи. Но, если вы можете это делать, или хотя бы безумно желаете этого, то вам открывается «мир» поистине безграничных возможностей.
К делу
Итак, вам нужно залезть в скрипты, добавить пару строк, и радоваться жизни дальше. В этом случае можете смело закрыть эту статью, открывать форум АМК или идти на Вики и искать ответа там, т.к. для вас следующий текст будет просто горой слов, который никак не пригодиться. Здесь я попытаюсь объяснить, что же такое скрипты, зачем они нужны, и что нужно для их использования. Скрипт – тестовый файл, содержащий необходимые команды для реализации того или иного функционала игры. Это определение лежит в контексте рассматриваемой игры, на Википедии есть страница «Сценарный язык», которая может оказаться полезной для прочтения. С определением понятно, наверное, зачем же это нужно? К сожалению, пока не изобрели телепатию; компьютер может понимать человека только на определенных языках (в конечном итоге, наборе процессорных инструкций, но не будем сгущать краски), так что ответ очевиден, скрипты нужны для того, чтобы игра понимала, что от нее хотят. Пока вроде бы просто? Не совсем, как же игра понимает текст на самом деле? Тут мне придется сказать пару «умных» слов. Игра это программа. Как ваш браузер, как блокнот или проводник Windows. Все это программы, они написаны на неком языке программирования (ЯП). Скрипты так же пишутся на определенном ЯП – в данной игре это Lua. Сама же игра (движок – X-Ray Engine) написана на языке C++. Связь между этими совершенно разными языками осуществляется посредством LuaBind. Это полезно просто иметь ввиду, а что это такое, и как оно непосредственно работает, не так уж и интересно. Важно то, какие возможности эта привязка (bind) дает. Дело в том, что мы не можем использовать движок напрямую. Нельзя сказать «Хей, чувак, скажи как зовут вот этого NPC, если это Волк, то положи ГГ в инвентарь водку». Если бы скриптов не было, такое действие нельзя было бы добавить или как-то выполнить. Готовую программу можно запустить и закрыть, на этом стандартные манипуляции заканчиваются. Однако если программа может прочесть текстовый файл с определенным содержимым, понять это содержимое и что-либо сделать с ним, тогда мы можем повлиять на программу достаточно серьезно. Этим и занимаются скрипты – влияют на игру, задают для нее сценарий (найдите в словаре слово script). Итак, раз скрипт – текстовый файл, тогда его можно открыть любым текстовым редактором и писать в него все, что душе угодно, почти. Понимание чужих и написание своих скриптов – непростая задача, в которой нельзя помочь, разве только предлагать направление, а следовать ему или нет, выбирать вам. Чтобы использовать скрипты нужно несколько вещей: желание это делать, понимать некоторые принципы программирования, понимать язык скриптов, знать, где посмотреть документацию по ним.
Заключение
Так или иначе, я ответил на три поставленный вопроса, кто-то из прочитавших (если такие есть) знал ответы, кому-то было просто (не)интересно, а кто-то сделал для себя выводы, что скриптование – штука хитрая и сложная, но интересная.