7 комментариев

avatar
Приятная новость, сейчас когда мады умирают один за другим, любой «новый» мад вызывает повышенный интерес. Жалко только мало информации на сайте.
99% игровой логики меняется на лету, без перезагрузки, благодаря системе плагинов
— видимо старый движок основательно переписан.
уникальный скриптовый язык Fenia (не имеющий в мире аналогов)
— интересно это переделанные старые mobprogs'ы или свой какой-то придумали.

А так сделано вроде солидно, надеюсь авторы мада не забьют на него через месяц.
avatar
  • prool
  • +1
Руффина мне ответила почтой (она не смогла написать комент здесь):

вот ответ на вопрос про скриптовый язык от его создателя, Филдса (Filths).

— Скриптовый язык полностью свой. У Дрима есть важная историческая особенность — полностью сохранять состояние между ребутами.
Если ты бросишь в комнате предмет, он там будет лежать годами. Уже даже десятилетиями.
В связи с этим, к языку было то же самое требование: сохранять стабильное состояние виртуальной машины даже если сервер в любой момент выдернут из розетки.
На тот момент я не нашел ни одного существующего скриптового языка, виртуальную машину которого было бы легко и итеративно сохранить на диск.
Синтаксис языка — какая-то дикая помесь яваскрипта, луа и пхп. Он не перегружен, в том смысле что описание грамматики влезает на две страницы текста.
Из-за перманентного состояния виртуальной машины и из-за того что функции — обычные объекты, скрипты можно легко писать и тестить прямо из мира.
Вот однострочный пример: pastebin.com/Rhs3r0V4
И все. Этот скрипт будет висеть на мобе всегда. Пока его не убьют, или не присвоят его onGreet новое значение. Аналогично можно присвоить поведение прототипу моба. Тогда все мобы типа от рождения и до смерти будут себя так вести.
Вот более сложный пример: dreamland.rocks/fenia/nanny.html Это скрипт ответственный за вход в мир и создание персонажа.

— От себя добавлю, что сейчас я постепенно добавляю информацию на сайт: появилась база вещей, пути к зонам, следующие на очереди — хелпы и информация для строителей (примеры использования языка и встроенного редактора зон). Мир активно ищет новых игроков, кодеров и билдеров.
avatar
Интересно, буду следить. Помочь правда пока ничем не могу, времени свободного нет. :)

А как там с миром дела обстоят? Отталкивает частичная англоязычность, когда среди русского текста встречаются вставки английского. Это сильно по атмосфере мира бьет, по крайней мере для меня. Зоны там стандартные ромовские переведенные или еще и свои есть?

Планируется ли движок и скриптовый язык в open-source переводить?
avatar
Осталось с десяток непереведенных зон, но это решится, если будут игроки; всегда быстро находятся энтузиасты-переводчики. А в остальном русификацию хочу довести до ума, поэтому постепенно перевожу оставшиеся англ сообщения. Предпочтения по языку, на котором отображаются названия умений и команд, сейчас настраиваются по команде режим, при создании персонажа или позже.

Своих зон около 30 штук, остальные ромовскиие, анатолийские и т.д.

Движок состоит из ядра и кучи плагинов. Абсолютно все выкладывать в open-source не планирую, т.к. там очень специфические именно для этого мира вещи. Планирую выложить в общий доступ ядро (включая скриптовый язык) и минимальный набор плагинов (например, отвечающих за сетевое подключение, загрузку зон, перемещение, общение и тд). Уже был успешный эксперимент интеграции ядра и языка с другим мудом, Грани Мира. Когда Груумш и я его снова подняли в 2015м, в нем уже был прикручен новый скриптовый язык и многое перегружалось на лету. Насколько я помню, титанических усилий на интеграцию не понадобилось.
avatar
Многообещающе, Грани Мира же вроде на движке Circle были, или на движке Былин. Жалко, что у них надолго энтузиазма не хватило.

Игроки не появятся пока не появится интересный геймплей, а для этого нужны какие-то свои уникальные фишки. Из ромовских мадов, только аладон более или менее популярен, в остальные играют полторы калеки. Возможно для привлечения игроков придется многое менять и очень сильно.
avatar
Грани так и остались на cвоем движке, а libdreamland был как бы обёрнут вокруг этого всего, предоставляя функциональность скриптового языка, планировщика задач и перегружаемости плагинов.
avatar
  • prool
  • 0
Спроси у них :)

Насколько я знаю, fenia это полностью свой язык, придуманный и написанный ими, немного напоминающий lua.

Лично я, хоть и высококлассный программист, делать свои сложные языки побаиваюсь, это не такая уж и простая задача. Для другого своего проекта я сделал усеченный интерпретатор языка forth (и гордо назвал его proolskript), но тот, кто знает основы языков, тот скажет, forth программируется не просто, а очень просто, в этом и его сила и слабость. И у меня была мысль вставить forth в свой мад для некоторой автоматизации. Например, в моем маде уже есть команда создать новую комнату в определенном направлении,
например

build n

Добавив фортовские операторы можно было бы одной строкой сделать, например, ход на 10 клеток на север вот так

10; for; build n; n; endfor

Здесь 10 раз повторяется то, что между словами for и endfor (а повторяется создать комнату на севере и перейти на север). Синтаксис форта обратный, поэтому параметр идет первым, перед оператором. Выглядит конечно коряво, но программируется легко
Ну, или сожрать 10 раз хлеб

10; for; есть хлеб; endfor

(а если запрограммировать немного по другому, те же конструкции не будут нуждать в точках с запятой, но это уже частности)

Оставить комментарий

Комментировать при помощи:
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.