www.mudconnector.su

Национальный мадконнектор.
Текущее время: Пт мар 29, 2024 4:21 pm

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 64 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7  След.
Автор Сообщение
 Заголовок сообщения: Re: Браузерный муд
СообщениеДобавлено: Чт июл 03, 2014 3:13 pm 
Не в сети

Зарегистрирован: Вт июл 01, 2014 1:04 am
Сообщений: 41
Откуда: Санкт-Петербург
KadVar писал(а):
Можно пример запроса получить ?
Вы предполагаете все проверки необходимые для действия в запросе делать ?
А если один игрок берет предмет, а другой в этот же момент "проклинает предмет" ?


Пока никакой конкретики - как будет достойный пример я сразу покажу. Проверки в запросе только базовые, такие как наличие предмета. Остальное - на уровне абстракции через работу с объектами на стороне пхп.

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


Спасибо за совет, так и сделаю.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Браузерный муд
СообщениеДобавлено: Чт июл 03, 2014 3:24 pm 
Не в сети
Site Admin

Зарегистрирован: Пт май 16, 2008 4:14 pm
Сообщений: 1416
Rottenwood писал(а):
KadVar писал(а):
Можно пример запроса получить ?
Вы предполагаете все проверки необходимые для действия в запросе делать ?
А если один игрок берет предмет, а другой в этот же момент "проклинает предмет" ?


Пока никакой конкретики - как будет достойный пример я сразу покажу. Проверки в запросе только базовые, такие как наличие предмета. Остальное - на уровне абстракции через работу с объектами на стороне пхп.


Не очень понимаю, как синхронизируется "остальное".
Для всех клиентов есть некий один экземпляр объекта ?
Базовые проверки хорошо, а как быть с небазовыми ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Браузерный муд
СообщениеДобавлено: Чт июл 03, 2014 4:03 pm 
Не в сети

Зарегистрирован: Вт июл 01, 2014 1:04 am
Сообщений: 41
Откуда: Санкт-Петербург
KadVar писал(а):
Для всех клиентов есть некий один экземпляр объекта ?
Базовые проверки хорошо, а как быть с небазовыми ?

Именно так. Это я и назвал слоем абстракции (применяю для этого doctrine ORM) . Как, когда и в какой последовательности их записывать из памяти в БД - переложено на плечи обработчика. Фреймворк позволяет пользоваться высоким уровнем абстракции, в то время как низкоуровневые расчеты берет на себя.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Браузерный муд
СообщениеДобавлено: Чт июл 03, 2014 4:52 pm 
Не в сети
Site Admin

Зарегистрирован: Пт май 16, 2008 4:14 pm
Сообщений: 1416
Rottenwood писал(а):
KadVar писал(а):
Для всех клиентов есть некий один экземпляр объекта ?
Базовые проверки хорошо, а как быть с небазовыми ?

Именно так. Это я и назвал слоем абстракции (применяю для этого doctrine ORM) . Как, когда и в какой последовательности их записывать из памяти в БД - переложено на плечи обработчика. Фреймворк позволяет пользоваться высоким уровнем абстракции, в то время как низкоуровневые расчеты берет на себя.


А причем тут уровень рассчетов.
Насколько я в курсе, апач к примеру, обслуживает всех клиентов асинхронно.
Я пытаюсь понять, как вы планируете обеспечить синхронизацию "небазовых" вещей ?
Как проверки-то будете делать ? Когда в одних копиях апача делается то, что влияет на другие.
Вот конкретный пример с take как будет реализован ?
Пошагово. В виде псевдо-кода можно написать ?

4 пользователя
1. take sword
2. take sword
3. cast curse sword
4. kill player2
[5.kill player3]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Браузерный муд
СообщениеДобавлено: Пт июл 04, 2014 6:42 pm 
Не в сети

Зарегистрирован: Вт июл 01, 2014 1:04 am
Сообщений: 41
Откуда: Санкт-Петербург
Зарегил бесплатный домен для проекта: http://utopia.ml
Ведет пока что на гитхабовский треккер движка. Если кому нужна ссылка на проект где раздают эти домены - напишите.

Я планирую игровую систему строить на аналогиях с GURPS, поэтому ряд моментов будет отличаться от классических для ad&d, к которым мы привыкли в мудах.

Короткий вариант правил GURPS (около 30 страниц, 800Кб): https://cloud.mail.ru/public/47c25a67be ... s-lite.pdf

Например, систему скиллов (перков) я вижу примерно так:

1. умения не нуждаются в прокачке, игрок сразу получает всю полноту функционала умения
2. успех или неудача применения умения зависит от характеристик персонажа. Например, "удар с замахом" делает чек на силу, а "подсечка" - на ловкость.
3. персонажу выделяется определенное количество скиллпоинтов на которые он может покупать умения. За выполнение квестов, убийство монстров и прочие игровые достижения игроку выдается опыт, с помощью которого можно повышать уровень. Уровень влияет на количество скиллпоинтов. Здесь аналогия с системой развития в GURPS.
4. более сильные умения требуют наличия у персонажа других умений, что создает "перковые цепочки"
5. любой игрок может брать в игре любые умения, так же как и отказываться от них (с каким-то ограничением, будь то квест поинты или деньги)
6. при текущей системе понятие "класс" становится абстрактным, и присутствует в игре как "наборы умений. Например вначале игры для интереса игрока будет предложено выбрать класс (с ним он получит минимальный набор сопутствующих умений), а дальше в процессе игры понемногу персонаж будет обучаться системе и поймет то что он может какие-то умения убрать а какие-то добавить. Ограничением на эту смену будут его характеристики и капитал.

О том чем я сейчас занимаюсь. Последние несколько дней пытался разобраться с вебсокетами, в итоге переосмыслил весь механизм взаимодействия клиента с сервером. Мне удалось полностью заменить ajax-запросы вебсокет-транзакциями, что в принципе уже хорошо. Теперь я пытаюсь реализовать отправку сообщений по открытому сокету от сервера к клиенту - для этого пришлось задействовать технологию очередей сообщений (думаю использовать ZeroMQ).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Браузерный муд
СообщениеДобавлено: Вс июл 06, 2014 8:57 pm 
Не в сети

Зарегистрирован: Пт сен 04, 2009 10:17 pm
Сообщений: 214
Мне кажется, что в мморпг ориентироваться на правила для настольных игр не самая хорошая идея. Я думаю, что как днд так и gurps для мудов вообще никак не подходит, они не для этого. Для мудов нужно брать системы разработанные специально для мморпг.

Считаю, что отказаться от классовости, будет плохой идеей. К стандартному распеределению ролей (танк/дамагер/лекарь) все привыкли, всем она понятна и всех устраивает. Можно придумать какую-нибудь другую систему, но для ее раскрутки потребуются огромные средства, чтобы в это играли другие игроки нужно будет прозомбировать их (рекламой, гипнозом или подкупом :D ). Никто ради нас с вами не станет изучать что-нибудь новое.

К тому же, отказ от классовости убьет групповую игру. Как обстоит дело в онлайн-играх сейчас, когда собирается группа, кричат в чат что-то типа этого: "Группа ищет лекаря" или "Группа ищет танка". Все точно знают, что им нужно делать и что от них ждут. А если убрать классы, то по какому принципу будут формироваться группы игроков? За счет чего держаться?

Даже если убрать классы, то игроки все равно будут играть стандартно в танка/дамагера/лекаря (видно даже на примере The Elder Scrolls Online), но такая игра станет более запутанной и непонятной для игроков. Вместо того, чтобы говорить, что я, например, лекарь, игроки будут говорить у меня столько очков в таком умении и столько в другом, и это будет никому не понятно. Даже для этого самого конкретного игрока будет не понятно, как ему играть в той или иной ситуации, то ли ему хилить, то ли ему дамагать, то ли ему танковать. Сам испробовал это в teso.

В общем, я считаю, что над выбором игровой системы еще нужно подумать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Браузерный муд
СообщениеДобавлено: Вс июл 06, 2014 9:04 pm 
Не в сети
Site Admin

Зарегистрирован: Пт май 16, 2008 4:14 pm
Сообщений: 1416
Каждый виток ультима онлайн становится всё суровее и беспощаднее...

Про синхронизацию так и не понял, видать не главное это.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Браузерный муд
СообщениеДобавлено: Пн июл 07, 2014 11:04 am 
Не в сети
Site Admin

Зарегистрирован: Пт май 16, 2008 4:14 pm
Сообщений: 1416
Rottenwood писал(а):
Про синхронизацию - ситуация взять один предмет дважды невозможна, как кроме того что я описал потому как в абстрактном слое, который я применяю для работы с базой данных два события с одним объектом невозможны. Они всегда выполняются в очереди. Думаю что лучше я объяснить вряд ли сумею.


И что толку от этой очереди в абстрактном слое ?
Вы как-то будете оборачивать проверки и действия в транзакции ?
Вам понятие синхронизации знакомо ?

Понятно что код

if item.isMyitem(self) then dropItem()

приведет к фееричным глюкам в варианте, когда человек вышлет две команды
give item вася
drop item

есть некислая вероятность того, что вася получит предмет, после чего "бросит его".
Вам очевидно, что проверка isMyitem ничего тут не даст вообще ?
Потому как между моментом пока он true и пока он drop можно вообще всё, что угодно
с базой и предметом сделать. В других потоках.
А потом ПРОДОЛЖИТЬ его выкидывать в этом потоке. Уже рассчитывая на то состояние,
которое уже не имеет место, и которое уже проверено.

Какие внутренние механизмы и как вас уберегут от подобных проблем ?

По мне, так используя асинхронный веб-сервер надо думать о таких проблемах, а не
о сумме характеристик и классовости...

ЗЫ. Про общие описанные фичи можно тоже подискутировать, но лучше-бы в отдельных ветках.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Браузерный муд
СообщениеДобавлено: Пн июл 07, 2014 11:45 am 
Не в сети

Зарегистрирован: Вт июл 01, 2014 1:04 am
Сообщений: 41
Откуда: Санкт-Петербург
Цитата:
Потому как между моментом пока он true и пока он drop можно вообще всё, что угодно
с базой и предметом сделать. В других потоках.
А потом ПРОДОЛЖИТЬ его выкидывать в этом потоке. Уже рассчитывая на то состояние,
которое уже не имеет место, и которое уже проверено.
Какие внутренние механизмы и как вас уберегут от подобных проблем ?

Механизм блокировок - http://habrahabr.ru/post/46542/
Здесь проблемы я не вижу. Это не первый мой проект с применением асинхронных запросов.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Браузерный муд
СообщениеДобавлено: Пн июл 07, 2014 11:59 am 
Не в сети
Site Admin

Зарегистрирован: Пт май 16, 2008 4:14 pm
Сообщений: 1416
Ну и хорошо, что не будет проблем.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 64 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron