Стероиды для Diku
DikuMUD был замечательным «hack and slash» мадом, созданным студентами Копенгагенского университета в 1991 году. Он стал родоначальником огромного семейства мадов и движков для них, таких как CircleMUD, Merc и SMAUG.
Для разнообразия поведения мобов в DikuMUD помимо захардкоженных в движке функций, для билдеров предлагалось несколько простых макросов. Они и положили начало для нескольких скриптовых языков, использующихся в семействе Diku-мадов и по сей день. Здесь я хочу рассказать о наиболее ярких представителях этих языков.
Однако Death Gate MUD не снискал большой популярности среди игроков и в 1996 году было решено закрыть этот мад, а его код выложить в открытый доступ. Затем кусок Death Gate MUD со скриптовым языком перекочевал в виде патча в CircleMUD в 1998 году. С тех пор DG-Scripts непрерывно развивался и совершенствовался. Сейчас это стабильный и безопасный скриптовый язык для билдеров. Его последняя версия на данный момент 1.0.14.
DG-Scripts — основан на идее триггера (trigger) — программы, которая вызывается в результате какого-то события (например, моб видит игрока, объект поднят игроком и т.д.). Триггеры могут быть прикреплены к мобу, объекту, комнате, а в последних версиях языка даже к игроку.
DG-Scripts в Рунете основаны на скриптовом языке из RMUD'а Андрея Фидря, который русифицировал по-видимому самую первую доступную версию DG-Scripts.
Для VME был создан DIL — язык позволяющий создавать даже заклинания и умения, без необходимости лезть в C-код движка, в чем он напоминает lpc-язык LPMud'ов. С особенностями языка можно ознакомиться в официальной документации.
Для разнообразия поведения мобов в DikuMUD помимо захардкоженных в движке функций, для билдеров предлагалось несколько простых макросов. Они и положили начало для нескольких скриптовых языков, использующихся в семействе Diku-мадов и по сей день. Здесь я хочу рассказать о наиболее ярких представителях этих языков.
Mobprogs
Основы Mobprogs были заложены в Worlds of Carnage MUD под названием Easyact system. Автор ее — Dimwit (Aaron Buhr). Позднее с некоторыми доработками эта система перекочевала в кодовую базу Merc, а из Merc в ROM. Easyact system облегчала жизнь билдерам, но обладала множеством недостатков, вот перечень из официальной документации:- Not real-time, variables are expanded macros
- Scripts are parsed on every run
- No looping constructs
- Nothing ensuring data is valid for duration of execution
- Poor support for expressions
- No concept of instance variables
- Code is a mess and poorly scalable
- No simple way to access internal data fields
DG-Scripts
История DG-Scripts начинается с Death Gate MUD, созданного в октябре 1994 года. Он был основан на кодовой базе CircleMUD 3.0. Создатели DG-Scripts — Mark Heilpern и Chris Powell. Они были недовольны существовавшей системой mobprogs и решили создать собственный скриптовый язык для Death Gate MUD.Однако Death Gate MUD не снискал большой популярности среди игроков и в 1996 году было решено закрыть этот мад, а его код выложить в открытый доступ. Затем кусок Death Gate MUD со скриптовым языком перекочевал в виде патча в CircleMUD в 1998 году. С тех пор DG-Scripts непрерывно развивался и совершенствовался. Сейчас это стабильный и безопасный скриптовый язык для билдеров. Его последняя версия на данный момент 1.0.14.
DG-Scripts — основан на идее триггера (trigger) — программы, которая вызывается в результате какого-то события (например, моб видит игрока, объект поднят игроком и т.д.). Триггеры могут быть прикреплены к мобу, объекту, комнате, а в последних версиях языка даже к игроку.
DG-Scripts в Рунете основаны на скриптовом языке из RMUD'а Андрея Фидря, который русифицировал по-видимому самую первую доступную версию DG-Scripts.
DIL (database interpretive language)
После того как создатели DikuMUD выложили свой движок в открытый доступ под весьма ограничительной лицензией, они начали работать над своей следующей кодовой базой — Valhalla Mud Engine(VME) ©. VME не является клоном DIKU, но продолжает его идеи и дух.Для VME был создан DIL — язык позволяющий создавать даже заклинания и умения, без необходимости лезть в C-код движка, в чем он напоминает lpc-язык LPMud'ов. С особенностями языка можно ознакомиться в официальной документации.
0 комментариев