Да, в XML. Это репозиторий одного из игроков, который сейчас активно помогает с переводами и картами.
Если есть какие-то вопросы по формату, отвечу.
Практически всё переведено на XML, кроме двух вещей:
* часть профайла игрока где хранится инвентарь и дом.животное
* так называемые дропы — информация о том, в какой комнате сейчас находятся какие предметы и мобы (для сохранения состояния между ребутами)
Баловство, конечно, но несколько лайков мне поставили. :) Насчет клиента я думаю так, браузеры это мощные комбайны по обработке медиа-файлов и делать веб-клиент только в тексте — это не рациональный путь.
Спасибо, это может пригодиться для меню умений/заклинаний в будущем. Пока еще не совсем ясно, в каком направлении двигать гуи: текстовые кнопки или графика.
Буду держать в курсе о том, как продвигается работа над клиентом.
Зря я, наверно, свою помощь навязал. Я же не художник, умею только чужое друг на друга накладывать, да фильтрами немного пользоваться. Взял иконки и кнопки с opengameart и наложил друг на друга. Вот, что получается:
Все иконки размера 128 на 128.
Из того, что планируется в первую очередь — список доступных команд в виде меню или кнопок. В идеале — контекстно-зависимое меню (например, в бою появляются доп. команды из числа доступных сейчас боевых умений). Ну а как минимум — отображать в меню группы основных команд для битвы, общения, манипуляции с предметам и т.д.
Грани так и остались на cвоем движке, а libdreamland был как бы обёрнут вокруг этого всего, предоставляя функциональность скриптового языка, планировщика задач и перегружаемости плагинов.
Многообещающе, Грани Мира же вроде на движке Circle были, или на движке Былин. Жалко, что у них надолго энтузиазма не хватило.
Игроки не появятся пока не появится интересный геймплей, а для этого нужны какие-то свои уникальные фишки. Из ромовских мадов, только аладон более или менее популярен, в остальные играют полторы калеки. Возможно для привлечения игроков придется многое менять и очень сильно.
Осталось с десяток непереведенных зон, но это решится, если будут игроки; всегда быстро находятся энтузиасты-переводчики. А в остальном русификацию хочу довести до ума, поэтому постепенно перевожу оставшиеся англ сообщения. Предпочтения по языку, на котором отображаются названия умений и команд, сейчас настраиваются по команде режим, при создании персонажа или позже.
Своих зон около 30 штук, остальные ромовскиие, анатолийские и т.д.
Движок состоит из ядра и кучи плагинов. Абсолютно все выкладывать в open-source не планирую, т.к. там очень специфические именно для этого мира вещи. Планирую выложить в общий доступ ядро (включая скриптовый язык) и минимальный набор плагинов (например, отвечающих за сетевое подключение, загрузку зон, перемещение, общение и тд). Уже был успешный эксперимент интеграции ядра и языка с другим мудом, Грани Мира. Когда Груумш и я его снова подняли в 2015м, в нем уже был прикручен новый скриптовый язык и многое перегружалось на лету. Насколько я помню, титанических усилий на интеграцию не понадобилось.
Интересно, буду следить. Помочь правда пока ничем не могу, времени свободного нет. :)
А как там с миром дела обстоят? Отталкивает частичная англоязычность, когда среди русского текста встречаются вставки английского. Это сильно по атмосфере мира бьет, по крайней мере для меня. Зоны там стандартные ромовские переведенные или еще и свои есть?
Планируется ли движок и скриптовый язык в open-source переводить?
Руффина мне ответила почтой (она не смогла написать комент здесь):
вот ответ на вопрос про скриптовый язык от его создателя, Филдса (Filths).
— Скриптовый язык полностью свой. У Дрима есть важная историческая особенность — полностью сохранять состояние между ребутами.
Если ты бросишь в комнате предмет, он там будет лежать годами. Уже даже десятилетиями.
В связи с этим, к языку было то же самое требование: сохранять стабильное состояние виртуальной машины даже если сервер в любой момент выдернут из розетки.
На тот момент я не нашел ни одного существующего скриптового языка, виртуальную машину которого было бы легко и итеративно сохранить на диск.
Синтаксис языка — какая-то дикая помесь яваскрипта, луа и пхп. Он не перегружен, в том смысле что описание грамматики влезает на две страницы текста.
Из-за перманентного состояния виртуальной машины и из-за того что функции — обычные объекты, скрипты можно легко писать и тестить прямо из мира.
Вот однострочный пример: pastebin.com/Rhs3r0V4
И все. Этот скрипт будет висеть на мобе всегда. Пока его не убьют, или не присвоят его onGreet новое значение. Аналогично можно присвоить поведение прототипу моба. Тогда все мобы типа от рождения и до смерти будут себя так вести.
Вот более сложный пример: dreamland.rocks/fenia/nanny.html Это скрипт ответственный за вход в мир и создание персонажа.
— От себя добавлю, что сейчас я постепенно добавляю информацию на сайт: появилась база вещей, пути к зонам, следующие на очереди — хелпы и информация для строителей (примеры использования языка и встроенного редактора зон). Мир активно ищет новых игроков, кодеров и билдеров.
Насколько я знаю, fenia это полностью свой язык, придуманный и написанный ими, немного напоминающий lua.
Лично я, хоть и высококлассный программист, делать свои сложные языки побаиваюсь, это не такая уж и простая задача. Для другого своего проекта я сделал усеченный интерпретатор языка forth (и гордо назвал его proolskript), но тот, кто знает основы языков, тот скажет, forth программируется не просто, а очень просто, в этом и его сила и слабость. И у меня была мысль вставить forth в свой мад для некоторой автоматизации. Например, в моем маде уже есть команда создать новую комнату в определенном направлении,
например
build n
Добавив фортовские операторы можно было бы одной строкой сделать, например, ход на 10 клеток на север вот так
10; for; build n; n; endfor
Здесь 10 раз повторяется то, что между словами for и endfor (а повторяется создать комнату на севере и перейти на север). Синтаксис форта обратный, поэтому параметр идет первым, перед оператором. Выглядит конечно коряво, но программируется легко
Ну, или сожрать 10 раз хлеб
10; for; есть хлеб; endfor
(а если запрограммировать немного по другому, те же конструкции не будут нуждать в точках с запятой, но это уже частности)
Если есть какие-то вопросы по формату, отвечу.
Практически всё переведено на XML, кроме двух вещей:
* часть профайла игрока где хранится инвентарь и дом.животное
* так называемые дропы — информация о том, в какой комнате сейчас находятся какие предметы и мобы (для сохранения состояния между ребутами)
Буду держать в курсе о том, как продвигается работа над клиентом.
Все иконки размера 128 на 128.
Игроки не появятся пока не появится интересный геймплей, а для этого нужны какие-то свои уникальные фишки. Из ромовских мадов, только аладон более или менее популярен, в остальные играют полторы калеки. Возможно для привлечения игроков придется многое менять и очень сильно.
Своих зон около 30 штук, остальные ромовскиие, анатолийские и т.д.
Движок состоит из ядра и кучи плагинов. Абсолютно все выкладывать в open-source не планирую, т.к. там очень специфические именно для этого мира вещи. Планирую выложить в общий доступ ядро (включая скриптовый язык) и минимальный набор плагинов (например, отвечающих за сетевое подключение, загрузку зон, перемещение, общение и тд). Уже был успешный эксперимент интеграции ядра и языка с другим мудом, Грани Мира. Когда Груумш и я его снова подняли в 2015м, в нем уже был прикручен новый скриптовый язык и многое перегружалось на лету. Насколько я помню, титанических усилий на интеграцию не понадобилось.
А как там с миром дела обстоят? Отталкивает частичная англоязычность, когда среди русского текста встречаются вставки английского. Это сильно по атмосфере мира бьет, по крайней мере для меня. Зоны там стандартные ромовские переведенные или еще и свои есть?
Планируется ли движок и скриптовый язык в open-source переводить?
вот ответ на вопрос про скриптовый язык от его создателя, Филдса (Filths).
— Скриптовый язык полностью свой. У Дрима есть важная историческая особенность — полностью сохранять состояние между ребутами.
Если ты бросишь в комнате предмет, он там будет лежать годами. Уже даже десятилетиями.
В связи с этим, к языку было то же самое требование: сохранять стабильное состояние виртуальной машины даже если сервер в любой момент выдернут из розетки.
На тот момент я не нашел ни одного существующего скриптового языка, виртуальную машину которого было бы легко и итеративно сохранить на диск.
Синтаксис языка — какая-то дикая помесь яваскрипта, луа и пхп. Он не перегружен, в том смысле что описание грамматики влезает на две страницы текста.
Из-за перманентного состояния виртуальной машины и из-за того что функции — обычные объекты, скрипты можно легко писать и тестить прямо из мира.
Вот однострочный пример: pastebin.com/Rhs3r0V4
И все. Этот скрипт будет висеть на мобе всегда. Пока его не убьют, или не присвоят его onGreet новое значение. Аналогично можно присвоить поведение прототипу моба. Тогда все мобы типа от рождения и до смерти будут себя так вести.
Вот более сложный пример: dreamland.rocks/fenia/nanny.html Это скрипт ответственный за вход в мир и создание персонажа.
— От себя добавлю, что сейчас я постепенно добавляю информацию на сайт: появилась база вещей, пути к зонам, следующие на очереди — хелпы и информация для строителей (примеры использования языка и встроенного редактора зон). Мир активно ищет новых игроков, кодеров и билдеров.
Насколько я знаю, fenia это полностью свой язык, придуманный и написанный ими, немного напоминающий lua.
Лично я, хоть и высококлассный программист, делать свои сложные языки побаиваюсь, это не такая уж и простая задача. Для другого своего проекта я сделал усеченный интерпретатор языка forth (и гордо назвал его proolskript), но тот, кто знает основы языков, тот скажет, forth программируется не просто, а очень просто, в этом и его сила и слабость. И у меня была мысль вставить forth в свой мад для некоторой автоматизации. Например, в моем маде уже есть команда создать новую комнату в определенном направлении,
например
build n
Добавив фортовские операторы можно было бы одной строкой сделать, например, ход на 10 клеток на север вот так
10; for; build n; n; endfor
Здесь 10 раз повторяется то, что между словами for и endfor (а повторяется создать комнату на севере и перейти на север). Синтаксис форта обратный, поэтому параметр идет первым, перед оператором. Выглядит конечно коряво, но программируется легко
Ну, или сожрать 10 раз хлеб
10; for; есть хлеб; endfor
(а если запрограммировать немного по другому, те же конструкции не будут нуждать в точках с запятой, но это уже частности)
— видимо старый движок основательно переписан.
— интересно это переделанные старые mobprogs'ы или свой какой-то придумали.
А так сделано вроде солидно, надеюсь авторы мада не забьют на него через месяц.