Jass

Jass
JASS
Класс языка:

скриптовый, событийно-ориентированный

Тип исполнения:

интерпретируемый

Появился в:

2001

Автор(ы):

Blizzard Entertainment

Типизация данных:

статическая

Диалекты:

vJASS, cJASS, ZINC

JASS (англ. Just Another Scripting Syntax) — событийно-ориентированный скриптовый язык программирования, созданный компанией Blizzard Entertainment. Используется в играх, таких как Warcraft и Starcraft.

Содержание

Описание

В игре Warcraft III скрипты на языке JASS используются для контроля над объектами игрового мира и компьютерными соперниками. Данная область применения даёт практически полную свободу контроля над игровым процессом (в рамках игровой вселенной) любителям модов при создании своих собственных сценариев Warcraft III.

В комплекте с игрой поставляется стандартный Редактор Мира Warcraft III (англ. Warcraft III World Editor), в который включён модуль редактирования игровых сценариев под названием «Редактор Триггеров» (англ. Trigger Editor). Данный модуль снабжён неплохим графическим пользовательским интерфейсом для языка JASS, что позволяет создавать нестандартные сценарии для карт, не требуя при этом от создателя мода знаний в области языков и принципов программирования.

Типичный триггер в Редакторе Триггеров (GUI).

На тематических веб-ресурсах сценарии, сделанные в стандартном редакторе триггеров называют коротко — GUI. Наряду с «одружелюбленными» триггерами GUI, существуют их текстовые варианты — в виде скриптов на языке JASS, которые обладает расширенными, по сравнению со стандартными «редакторскими» триггерами, возможностями.

Официальной документации от Blizzard Entertainment к этому языку нет, однако существует множество любительских ресурсов, посвящённых написанию скриптов для сценариев на этом языке.

Стандартный редактор снабжён только базовыми интерпретатором и редактором JASS, в котором, помимо прочего, отсутствует подсветка синтаксиса и удобная проверка синтаксиса, что делает работу с JASS в обычном редакторе достаточно неудобной и трудоёмкой. Это и является одной из основных причин нелюбви новичков модостроения Warcraft III к этому языку.

Тот же самый триггер, но в виде скрипта в редакторе JASS New Gen Pack c подсветкой синтаксиса.

Помимо стандартного редактора, существуют специальные программы, которые упрощают работу с Jass-скриптами. К ним относится JASS Craft (бывший JASS Shop Pro). С помощью этой программы можно создавать шаблоны для триггеров, функций и оптимизировать код. Кроме того, он имеет подсветку и встроенную проверку синтаксиса, позволяющую «на лету» протестировать скрипт на наличие ошибок.

В сфере модостроителей Warcraft III с 2007 года имеет бешеную популярность масштабная любительская надстройка для редактора Warcraft III — JASS New Gen Pack. В него, помимо множества других полезных возможностей, включены подсветка и проверка синтаксиса, а также альтернативный компилятор языка JASS. Вкупе с другими возможностями, это сделало его практически стандартом «де-факто» в мире картостроя.

Основные понятия

Файлы скриптов JASS могут иметь расширения .j или .ai.

Язык JASS являет собой язык функций. Функции могут быть пользовательскими и нативными (от англ. native-родной). Пользовательские функции могут быть объявлены самим картоделом(мапмейкером) и находятся непосредственно в скрипте карты. Нативные (родные) функции созданы разработчиками, объявляться пользователем не могут и перечислены в 2-ух главных файлах языка JASS — common.j и common.ai. Данные файлы находятся в архивах игры Warcraft III.

(Однако существует статья, в которой описывается добавление собственных native функций в Warcraft- http://xgm.ru/p/wc3/custom_native) Имеется также созданный разработчиками набор готовых «к употреблению» пользовательских функций — blizzard.j, который является объектом критики многих картоделов за множество утечек и частую бесполезность отдельно взятых функций. Яркий пример тому — функции с простой перестановкой параметров, не имеющие смысловой нагрузки, но отнимающие время на их выполнение.

Карта Warcraft III представляет собой такой же архив формата MPQ, как и другие архивы игры и имеет расширение .w3m или .w3x. Архив карты всегда содержит файл скрипта карты — war3map.j, но может также содержать несколько файлов с расширениями .ai в том случае, если используется нестандартный искусственный интеллект компьютерных противников.

Информация в файл war3map.j записывается в момент сохранения карты в редакторе, когда компилятор языка конвертирует данные из файла триггеров (war3map.wtg) в конечный код JASS, который будет использован игрой.

Файл war3map.wtg в архиве карты содержит данные о GUI триггерах и является необходимым только для редактора. Без него отредактировать стандартными средствами редактора код карты будет невозможно.

Пример кода для отображения «Hello, World!» на Jass:

function HelloWorld takes player p returns nothing
    call DisplayTextToPlayer(p, 0, 0, "Hello World!")
endfunction

Функция HelloWorld принимает локальный параметр типа «player» с именем «p» и ничего не возвращает(«nothing»). В теле вызывается стандартная native -функция «DisplayTextToPlayer». В этой функции указывается индекс (переменная типа integer — целочисленная) сетевого игрока, которому будет отправлено сообщение; экранные координаты (x, y; переменные типа real) — положение строки сообщения; время, через которое исчезнет сообщение.

Основные отличия JASS от редактора триггеров

В отличие от графического редактора триггеров в World Editor, написание кода карты на JASS даёт картоделу ряд преимуществ:

  • Использование локальных переменных. Редактор триггеров даёт возможность оперировать только глобальными переменными. Глобальные переменные могут быть использованы в любой функции, а локальные — действуют только в пределах одной функции и могут быть использованы во множестве ситуаций.
  • Более компактный и удобный код. Например, редактор триггеров позволяет использовать конструкцию if then else достаточно примитивно, неоправданно раздувая конечный код. На JASS можно сделать то же самое гораздо более кратко и читаемо, а также использовать недоступный в редакторе триггеров оператор elseif.
  • Устранение утечек памяти. Код, написанный в редакторе, может оставлять за собой мусор в памяти: не удалённые объекты и утечки локальных переменных (в силу использования функций из файла blizzard.j). Чаще всего, таковыми становятся точки (location). Много раз вызываемый триггер с большим количеством утечек может очень быстро «уложить на лопатки» компьютер игрока. Со временем мощности компьютеров возрастают и эта проблема понемногу отступает назад, но тем не менее, границы производительности по-прежнему можно перешагнуть из-за множества неоптимизированных триггеров. JASS располагает средствами для удаления таких объектов.
  • Дополнительные возможности. Так, стандартный редактор триггеров имеет достаточно ограниченное число функций и переменных. В руках JASS’ера (сленговое прозвище человека, пишущего на JASS) оказывается весь набор функций и переменных из common.j и blizzard.j. Некоторые функции из common.j попросту не имеют аналогов в редакторе. Другой пример: в редакторе циклы могут быть выполнены только определённое количество раз, в то время как на JASS они могут выполняться до тех пор, пока не будет выполнено условие выхода из них.

Ссылки

  • XGM.ru — крупный русскоязычный ресурс модмейкеров по играм Blizzard и не только
  • Warcraft 3 Download Area — база ресурсов, карт и статей для модмейкинга в WarCraft III (международное сообщество создателей карт)
  • WC3Campaigns — крупный англоязычный сайт JASS-направленности

Wikimedia Foundation. 2010.

Игры ⚽ Нужен реферат?

Полезное


Смотреть что такое "Jass" в других словарях:

  • JASS — JASS, J Asynchronous Scripting SyntaxFact|date=September 2008 , is an event driven scripting language used in Blizzard Entertainment s Warcraft III game. Map creators can use it in the World Editor to create triggers and AI scripts. Features The… …   Wikipedia

  • Jass — was also an early name for Jazz music. For the WarCraft III scripting language, see JASS. Jass Type Trick taking Players 4 (variants: 3 6) Skill(s) required Tactics Strategy Cards 36 Play Counter clockwise …   Wikipedia

  • jass — jass; kla·ber·jass; …   English syllables

  • Jass — Jassen ist ein Kartenspiel der Bézique Familie, das vor allem im alamannischen Raum verbreitet ist, das heißt in der deutschsprachigen Schweiz, in Liechtenstein, in Vorarlberg (Österreich) sowie teilweise im Süden Deutschlands und im Elsass, aber …   Deutsch Wikipedia

  • Jass — Pour les articles homonymes, voir l’article relatif au langage de programmation, voir JASS (en). Le jass (prononcer yass) également appelé chibre dans certaines parties de Suisse romande, est un jeu de cartes pratiqué en Suisse, au… …   Wikipédia en Français

  • jass — yass [ jas ] n. m. VAR. jass • 1897; lias 1890; mot all. de Suisse ♦ (Suisse) Jeu de cartes d origine hollandaise qui se joue avec trente six cartes entre deux, trois, quatre joueurs ou plus. ● jass ou yass nom masculin Jeu de cartes suisse qui… …   Encyclopédie Universelle

  • Jass — Jạss 〈m.; ses; unz.〉 Schweizer Kartenspiel für zwei, drei od. vier Spieler mit 36 Karten * * * Jạss, der; es [wahrsch. von schweiz. Söldnern aus den Niederlanden in die Schweiz gebracht; vgl. niederl. gleichbed. jassen]: (bes. in der Schweiz u …   Universal-Lexikon

  • jass — ˈyäs noun ( es) Etymology: German dialect (Switzerland) 1. a. : a two handed game played with a 36 card or 32 card pack in which points are scored by melding certain combinations and by taking scoring cards in tricks b. : klaberjass …   Useful english dictionary

  • Jass Coinché — Le Jass coinché (prononcer yass), ou Coinche, aussi appelé estimation ou différence, est un jeu de cartes pratiqué en Suisse. Héritié du Jass traditionnel, les règles du jeu de la carte sont identiques, mais les annonces sont exclues ainsi que le …   Wikipédia en Français

  • Jass coinche — Jass coinché Le Jass coinché (prononcer yass), ou Coinche, aussi appelé estimation ou différence, est un jeu de cartes pratiqué en Suisse. Héritié du Jass traditionnel, les règles du jeu de la carte sont identiques, mais les annonces sont exclues …   Wikipédia en Français


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»