Tiendil
#16
[НБ] Магистр
могущество: 14658
разработчик
дварф Халлр
105 уровня
В этом плане будет развитие не отдельных монстров (они все лорные и развиваться не могут), а изменение их популяций. Изменятся численность монстров будет в зависимости от календарного времени, от игровых событий и от появления логов монстров. Одно из событий было придумано к прошлому НГ, но не успел реализовать, поэтому отложил. Буду пробовать в этом году.

Если такая интерпретация интересна, то можно попробовать начать делать. Но мне надо будет какое-то время, чтобы продумать архитектуру и последовательность реализации.
Tiendil
#17
[НБ] Магистр
могущество: 14658
разработчик
дварф Халлр
105 уровня
А, ну и даже сейчас типы встречаемых монстров зависят от местности.
val
#18
без гильдии
могущество: 6

дварф Тихонатор
44 уровня
На временное решение тянет. Однако, в перспективе, я бы реализовал и то и то, т.к. это не взаимноисключающие вещи, а лишь постепенная эволюция :)

Я тут глянул код. Может сначала провести рефакторинг проекта и написать документацию для контрибьютеров?
По-идее для реализации боя с несколькими противниками вместо одного достаточно поменять 1 класс + написать тест. Работы на пару часов.
Однако, я так и не нашёл модуль, в котором описана боёвка.
Тогда разработка пойдёт быстрее и будет больше контрибуций со стороны.
Tiendil
#19
[НБ] Магистр
могущество: 14658
разработчик
дварф Халлр
105 уровня
Однако, в перспективе, я бы реализовал и то и то, т.к. это не взаимноисключающие вещи, а лишь постепенная эволюция :)
Не думаю, что когда-нибудь очередь естественным путём дойдёт до этой фичи. Есть много более интересных, например, взаимодействие героев.

val
Я тут глянул код. Может сначала провести рефакторинг проекта и написать документацию для контрибьютеров?
Надо :-)

Проект старый, и когда начинался было не ясно во что выльется. Я сейчас переделываю ахитектуру с монолита на микросервисы, чтобы уменьшить связанность, но это долгий процесс и пока рефакторю больше инфраструктуру, чем саму логику. Если возьмёшься сделать документацию по архитектуре, я с радостью помогу. Оформлять всё это самостоятельно у меня нет времени, и так обновления редко выходят. Также есть отдельные задачи по выносу функциональности в микросервисы - большой выбор :-)

На текущей стадии развития проекта уже отдельный сайт нужен для разработчиков :-D если основательно к вопросу подходить.

По-идее для реализации боя с несколькими противниками вместо одного достаточно поменять 1 класс + написать тест. Работы на пару часов.
На пару недель (полных). Сейчас трогать логику действий героев, тем более боёвку нет смысла. Она следующая на очереди к рефакторингу и скорее всего будет переписана полностью.

В этой области есть две большие проблемы (и куча мелких):

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

Смотреть описание поведения героев можно тут: https://github.com/Tiendil/the-tale/tree/develop/src/the_tale/the_tale/game/actions
Сама боёвка тут: https://github.com/Tiendil/the-tale/blob/develop/src/the_tale/the_tale/game/actions/battle.py
val
#20
без гильдии
могущество: 6

дварф Тихонатор
44 уровня
я имел ввиду вначале рефакторинг кода, потом рефакторинг архитектуры. В такой последовательности будет немного легче и понятнее.
Но это уже совсем отдельная тема. Я на гитхабе создам inssue и опишу своё видение
Tiendil
#21
[НБ] Магистр
могущество: 14658
разработчик
дварф Халлр
105 уровня
ок
Valsvi
#22
без гильдии
могущество: 12

гоблин Чесслово
68 уровня
Дяденьки, а вы с птичками сейчас разговаривали? ;)
val
#23
без гильдии
могущество: 6

дварф Тихонатор
44 уровня
https://github.com/Tiendil/the-tale/issues/2117
Кто что имеет добавить - you are welcome :)
val
#24
без гильдии
могущество: 6

дварф Тихонатор
44 уровня
Кстати,
- логика обсчитывается не в одном процессе, это просто физически невозможно, соответственно существует проблема передачи сущностей между процессами.
- интерфейс пользователя должен отображать всё это.
а зачем туда-сюда гонять сущности между процессами? Насколько я понял механику игры - сущности не уменьшаются в количестве, а только увеличиваются.
Можно за каждым рабочим пула закрепить свой личный список объектов. А новые объекты по round-robbin добавлять.
Они же между собой никак не взаимодействуют.
Когда понадобится взаимодействие между героями - просто сообщения с id героя кидать между процессами.
Я бы на эрланге так делал.
Возможно на питоне есть аналог акки для той же реализации?
Argo
#25
[TN] Магистр
могущество: 30154
длань судьбы
мужчина Дориан
285 уровня
val
Нечасто к нам на форум заглядывают столь искушённые в вопросах программирования люди. Снимаю шляпу. Надеюсь, ваше сотрудничество откроет проекту второе дыхание.
Tiendil
#26
[НБ] Магистр
могущество: 14658
разработчик
дварф Халлр
105 уровня
val
Когда понадобится взаимодействие между героями - просто сообщения с id героя кидать между процессами.
Сейчас, герои, которые должны обрабатываться вместе, объединяются в группу, все герои группы всегда обрабатывается одним процессом. Обрабатывать их независимо в разных процессах сложно, так как расчёт их взаимодействия потребует в каждом процессе держать клоны всех необходимых для расчёта героев, что вносит риски рассинхронизации данных. Текущие правила игры (например, боёвки) не позволяют сделать по-другому. Когда доберусь до рефакторинга логики действий героев, буду учитывать и такой архитектурный вариант.