www.mudconnector.su
https://forum.mudconnector.su/

Браузерный муд
https://forum.mudconnector.su/viewtopic.php?f=12&t=765
Страница 3 из 7

Автор:  Rottenwood [ Ср июл 02, 2014 9:03 pm ]
Заголовок сообщения:  Re: Браузерный муд

ArtistSpb писал(а):
Это будет ошибкой имхо. Не надо изобретать велосипед. Если решил Lua - значит делай на Lua без особых вариантов. Плюс очень желательно профайлер, чтобы находить тормозные скрипты.

А как быть с теми билдерами, которые не знают (или не хотят знать) луа? Я уверен что в большинстве случаев для скриптинга достаточно будет несколько десятков команд: "wait" "emote" "give/take" "goto" "if/else" "kill" "useskill" и т.д.

Автор:  ArtistSpb [ Ср июл 02, 2014 9:50 pm ]
Заголовок сообщения:  Re: Браузерный муд

Rottenwood писал(а):
ArtistSpb писал(а):
Это будет ошибкой имхо. Не надо изобретать велосипед. Если решил Lua - значит делай на Lua без особых вариантов. Плюс очень желательно профайлер, чтобы находить тормозные скрипты.

А как быть с теми билдерами, которые не знают (или не хотят знать) луа? Я уверен что в большинстве случаев для скриптинга достаточно будет несколько десятков команд: "wait" "emote" "give/take" "goto" "if/else" "kill" "useskill" и т.д.


Им придется выучить луа. Если они хотят делать сложные и интересные зоны, то никуда не деться.
а простые операции give take и тд будут выглядеть точно также как и на луа. Ты сделаешь копию луа
только в упрщеном варианте. Сравни как будет скрипт на луа и твоем языке. Уверен что одинаково. Смысла в своем языке нет. Луа очень простой язык. Уверен что билдеры его освоят.

Автор:  Rottenwood [ Чт июл 03, 2014 12:47 am ]
Заголовок сообщения:  Re: Браузерный муд

ArtistSpb писал(а):
Им придется выучить луа. Если они хотят делать сложные и интересные зоны, то никуда не деться.
а простые операции give take и тд будут выглядеть точно также как и на луа. Ты сделаешь копию луа
только в упрщеном варианте. Сравни как будет скрипт на луа и твоем языке. Уверен что одинаково. Смысла в своем языке нет. Луа очень простой язык. Уверен что билдеры его освоят.


Это для программиста он простой, а билдеру может это и не нужно. Луа полнофункциональный скриптовый язык, а мой гипотетический - должен быть гораздо менее функциональный, но более простой. Надо у билдеров спросить что им больше по душе.

Сегодняшние извращения с вебсокетами не прошли даром - чем больше погружаюсь в процесс тем больше в мыслях отхожу от модели "запрос-ответ". Мощная штука.

Автор:  ArtistSpb [ Чт июл 03, 2014 1:03 am ]
Заголовок сообщения:  Re: Браузерный муд

Rottenwood писал(а):
Это для программиста он простой, а билдеру может это и не нужно. Луа полнофункциональный скриптовый язык, а мой гипотетический - должен быть гораздо менее функциональный, но более простой. Надо у билдеров спросить что им больше по душе.

В Lua не обязательно использовать все его навороты... можно использовать только базовые возможности, а они очень простые. Если билдеры справлялись с DGScripts, то
с луа они точно справятся. Я бы сделал пока что Lua вариант, а более простой язык добавил только после того как он в реальности понадобиться.
Но я уверен что он не пригодиться 146% ). В общем мое мнение - свой язык - это неверное решение.

Автор:  Rottenwood [ Чт июл 03, 2014 1:50 am ]
Заголовок сообщения:  Re: Браузерный муд

ArtistSpb писал(а):
В Lua не обязательно использовать все его навороты... можно использовать только базовые возможности, а они очень простые. Если билдеры справлялись с DGScripts, то
с луа они точно справятся. Я бы сделал пока что Lua вариант, а более простой язык добавил только после того как он в реальности понадобиться. Но я уверен что он не пригодиться 146% ). В общем мое мнение - свой язык - это неверное решение.


Я понял. В любом случае, я скриптовую часть еще не скоро буду разрабатывать. Сейчас усилия направлены на серверную основу. Планирую строить приоритет разработки таким образом, чтобы быстрее получить рабочую "играбельную" версию. Затем уже буду наворачивать более прикладной и интересный функционал.

Автор:  KadVar [ Чт июл 03, 2014 10:48 am ]
Заголовок сообщения:  Re: Браузерный муд

Rottenwood писал(а):
Понимание приходит с опытом.
Я имею ввиду опыт чтения документации :)
Думаю, главное чтобы билдеру было удобно и понятно. Чтобы было все по возможности просто, без лишних усложнений.

Я не очень представляю где можно набрать билдеров склонных к чтению документации.

Rottenwood писал(а):
Цитата:
Клиент 1 дал команду поднять с пола предмет.
Клиент 2 дал команду поднять с пола предмет.
Одновременно
Кто поднимет предмет ?
Что будет если все проверки "пройдут", и оба воркера апача одновременно запустят соответствующие SQL ?


SQL запрос сам по себе содержит проверку, которая не допустит подобного. В MySQL реализована очередь запросов. Но даже до нее есть очередь обработчика команд (на стороне пхп), так что такая ситуация что оба пройдут проверку и возьмут вещь - при нормальных обстоятельствах невозможна. Если имеются ввиду задачи посложнее и потяжелее - то в симфони всегда есть возможность проверить другие запущенные процессы.

Не очень понял. Что конкретно произойдет по сценарию "поднял предмет", можете в трех словах описать ?

Rottenwood писал(а):
Цитата:
Ты думал над тем как будут программировать билдеры скрипты в движке ? На PHP, на JS ? Как насчет песочницы для выполнения таких скриптов ? Как насчет того чтобы измерять скорость работы скриптов (профайлер) ? А это очень важный вопрос.


Размышляя об этом я пришел к таким вариантам:
1. я хочу написать некий псевдоязык, представляющий из себя абстракцию высокого уровня предоставляющую доступ к т.н. "техническим" командам. Эти команды билдер сможет использовать в построении простых прогсов.
2. для тех кому нужна тюринг-фул среда для создания скриптов - будет реализована интеграция с Lua (а вариантов-то особо и нет). Пхп умеет реализовывать луашные скрипты.
3. возможность напрямую вызывать пхп скрипты считаю излишней.


Напрямую вообще ничего нельзя вызывать. Разломают весь проект кривыми скриптами.

Автор:  KadVar [ Чт июл 03, 2014 10:49 am ]
Заголовок сообщения:  Re: Браузерный муд

Rottenwood писал(а):
ArtistSpb писал(а):
Это будет ошибкой имхо. Не надо изобретать велосипед. Если решил Lua - значит делай на Lua без особых вариантов. Плюс очень желательно профайлер, чтобы находить тормозные скрипты.

А как быть с теми билдерами, которые не знают (или не хотят знать) луа? Я уверен что в большинстве случаев для скриптинга достаточно будет несколько десятков команд: "wait" "emote" "give/take" "goto" "if/else" "kill" "useskill" и т.д.

Самые большие проблемы как-раз со всякими wait.
Это вообще "большой вопрос" как эти wait реализовывать.

Синтаксис луа не слишком по-моему перегружен. Хорошо-бы конечно обрезать его по-максимуму.

Автор:  KadVar [ Чт июл 03, 2014 10:50 am ]
Заголовок сообщения:  Re: Браузерный муд

ArtistSpb писал(а):
Если билдеры справлялись с DGScripts, то
с луа они точно справятся.

Они не справлялись. Почти никогда.
Не стоит этот ориентир использовать.
Даже после серьезного допила в плане переменных.
Тут даже не в языке проблема. Надо бы концептуально менять саму схему создания зон.
Машину состояний надо графически рисовать, а не строчки кода писать.
Но это к "браузерности" отношения не имеет.

Автор:  Rottenwood [ Чт июл 03, 2014 11:34 am ]
Заголовок сообщения:  Re: Браузерный муд

KadVar писал(а):
Я не очень представляю где можно набрать билдеров склонных к чтению документации.


Именно потому я и считаю что все должно быть просто и интуитивно понятно. Их вообще нельзя набрать так как уже есть только те что есть. Поэтому, в общем-то, есть на кого ориентироваться.

KadVar писал(а):
Не очень понял. Что конкретно произойдет по сценарию "поднял предмет", можете в трех словах описать ?


Два человека одновременно посылают команду.
В MySQL используется механизм блокирования, который корректно обрабатывает одновременные обращения.
В результате запросы встанут в очередь и будут выполняться один за другим, не перекрываясь (тут и решится кто взял первым).
Первый запрос проверит предмет, возьмет предмет.
Второй запрос проверит предмет, предмета уже нет.

Как MySQL примет решение - в деталях не расскажу. Знаю что постановка в очередь поможет избежать одновременных запросов.

KadVar писал(а):
Тут даже не в языке проблема. Надо бы концептуально менять саму схему создания зон.
Машину состояний надо графически рисовать, а не строчки кода писать.
Но это к "браузерности" отношения не имеет.


В браузере легче реализовывать графические интерфейсы чем в десктопных приложениях, так что можем обсудить.

Автор:  KadVar [ Чт июл 03, 2014 12:20 pm ]
Заголовок сообщения:  Re: Браузерный муд

Rottenwood писал(а):
Два человека одновременно посылают команду.
В MySQL используется механизм блокирования, который корректно обрабатывает одновременные обращения.
В результате запросы встанут в очередь и будут выполняться один за другим, не перекрываясь (тут и решится кто взял первым).
Первый запрос проверит предмет, возьмет предмет.
Второй запрос проверит предмет, предмета уже нет.

Можно пример запроса получить ?
Вы предполагаете все проверки необходимые для действия в запросе делать ?
А если один игрок берет предмет, а другой в этот же момент "проклинает предмет" ?

Rottenwood писал(а):
В браузере легче реализовывать графические интерфейсы чем в десктопных приложениях, так что можем обсудить.

Проблема не в реализации, а в создании хорошего SRS-а.
Я не смог в своё время, хотя кучу драфтов переделал.
Могу посоветовать взять готовую зону "из примеров" и описать её
на своём языке. И посмотреть "что лезет, что нет".

Страница 3 из 7 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/