Калькулятор характеристик для героев Вальдиры

Эта тема была закреплена навсегда.

Drake

Drake

Участник похода
Регистрация
27 Июл 2015
Сообщения
1.997
Оценок
2.378
Баллы
1.491
Возраст
45
Поступило предложение создать калькулятор для подсчёта характеристик персонажей Вальдиры:
У меня вопрос. Я собственно программист(не игр если, что) и мог бы написать маленький такой калькулятор. Где можно раскидтать характеристики, добавить формулы бонусов и получить точные цифры, для героев. Ну и естественно сейв\лоуд и табы для разных персов. Если нашему великому маэстро это может помочь, то все, что мне надо, это список достижений Роса, точный список всех статов Вальдиры и сколько очков дают за каждый уровень.
А дальше я наваяю и потихоньку заполним, получив на выходе полный вид перса.

п.с. Имхо так проще будет отслеживать рояли в кустах при написании
п.п.с. Собственно это и в экселе сделать можно, но тут я не спец

п.п.п.с в идеале, можно было бы сразу веб версию, но это можно чуть позже. И естественно еще можно было бы сделать красивый веб экспорт.
Идея очень интересная, причём ИМХО веб-версия была бы более удобной.
Такой калькулятор было бы удобно использовать не только для Роса, но и для Кроу, и для Шмыга, и для Люца. В общем - для всех пресонажей Вальдиры, и не только из творчества Дема Михайлова, но и из фанфиков, вбоквелов и т. п.
Наличие такого калькулятора позволило бы отслеживать состояние героев, "прикидывать" их прокачку и т. п. Также это позволило бы любому пользователю просто пойти и посмотреть в каком состоянии находится персонаж в данный момент.

Предлагаю в этой теме оставлять пожелания, предложения, запросы на данные для написания, ссылки на вики на страницы достижений, которые влияют на характеристики, ссылки на вики на страницы предметов и т. п.
Сылки на ГуглДок / БитБакет / ГитХаб / свой вариант размещения калькулятора предлагаю размещать во втором сообщении, рядом с ТЗ.
 
Последнее редактирование:

Drake

Drake

Участник похода
Регистрация
27 Июл 2015
Сообщения
1.997
Оценок
2.378
Баллы
1.491
Возраст
45
В этом сообщении я предлагаю размещать предварительное ТЗ на калькулятор, в том числе формулы расчётов.
Предложения по характеристикам:
Характеристики предлагаю рзделить на "базовые" (сила, выносливость, интеллект, мудрость, ...) и "производные" (защита, скорость перемещения, шанс критического удара, ...). При этом "Уровень персонажа" и "количество доступных очков характеристик" можно отнести к базовым характеристикам, а можно сделать отдельно.
Если отнести их к характеристикам, можно будет без дополнительных "движений" использовать их в требованиях для достижений, предметов и т. п.
Если сделать отдельно - будет нужно меньше "движений" для того чтобы запретить применять к ним эффекты.
В целом - характеристики - это то, от чего напрямую зависит каким будет персонаж и каким будет его судьба в мире Вальдиры.

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

Например, достижение "Здоровяк" "первого ранга" содержит два атомарных эффекта:
- "Защита" от "физического урона" +5 "единиц"
- "Количество" "пунктов жизни" +75 "единиц"

достижение "Мудрец" "второго рвнга":
- "Шанс критического удара" "любой магией" +1,5 "процента"
- "Затраты маны" "любой магии" -2 "процента"

Комплексный эффект "Живая кровь великих" содержит атомарные эффекты:
- "Количество" "пунктов маны" +25 "процентов"
- "Количество" "пунктов жизни" +12 "процентов"
- "Количество" "Интеллекта" +20 "единиц"
- "Количество" "Выносливости" +5 "единиц"
- "Количество" "Силы" +10 "единиц"
- "Количество" "Мудрости" +35 "единиц"
- "Затраты маны" "магии Великих" -10 "процентов"
- "Затраты маны" "умений Великих" -10 "процентов"
- "Эффект использования" "предметов Великих" +10 "процентов"

Также можно разбить на атомарные эффекты предметы, зелья, заклинания, умения и т. п.

Похожим образом можно поступить и с требованиями.

Требования для достижения "Здоровяк" "первого ранга" :
- "Количество" "базовой Выносливости" 30 "единиц"

Требования для достижения "Улитколов" "третьего ранга" :
- "Количество" "пойманных улиток" 5000 "единиц"

Требования для предмета "Громовержец" типа "Жезл":
- "Значение" "уровня персонажа" 50

Типы эффектов, заклинаний и т. п.:
- "common effect" - обычный эффект
- "common spell" - обычное заклинание
- "special effect" - особый ("Родительские узы")
- "divine effect" - божественный эффект (благословение, проклятие)
- "divine spell" - божественное заклинание
- "grands effect" - эффект Великих
- "grands spell" - заклинание Великих
- "grands skill" - умение Великих

Заклинания и эффекты от них, а также защита, урон и т. п. могут делиться по школам:
- "elemental" - стихийный урон, защита и т. п.
- "nature" - природный урон, защита и т. п.
- "physical" - физический урон, защита и т. п.

Предллжения по достижениям:
Достижения выдаются автоматически, на основании игровых событий.
С учётом того что мы не можем следить за всеми игровыми событиями, да это нам и не нужно, предлагаю разделить достижения на "основанные на характеристиках" (добавляемые автоматически) и "остальные" (добавляемые вручную).

Основанные на характеристиках (автоматические) это "Мудрец", "Силач" и другие аналогичные.
Возможно, похожим образом можно поступить с достижениями за действия игрока - например, "Улитколов" (количество пойманных улиток), "Кашевар" (варка кашт) и т. п., но это считаю не срочной задачей.
К остальным можно отнести достижения, которые не зависят от характеристик, навыков и чего бы то ни было ещё, связанного напрямую с игроком. Например, "Рука помощи", "Живая легенда", "Уникум" и т. п.
Такие достижения пользователь может добавлять вручную из списка.

Бета-версия таблицы Гугл для тестирования формул.
 
Последнее редактирование:

Drake

Drake

Участник похода
Регистрация
27 Июл 2015
Сообщения
1.997
Оценок
2.378
Баллы
1.491
Возраст
45
Я тоже работаю программистом (в основном, Веб), и могу как предложить какие-то идеи, так и принять участие в разработке.
В качестве пре-альфа-версии могу предложить гугл-таблицу. Но предварительно нужно собрать формулы расчётов параметров персонажей.
 

shandowspy

shandowspy

Шпион Гуорры!
Регистрация
29 Окт 2014
Сообщения
166
Оценок
479
Баллы
336
Возраст
41
Формулы собственно не проблема.
Идея как раз модульного сбора.
Схема такая. Есть основные харки. Предположим прописаны в харк.джейсон. По ним строиться окно (В целях дисскуссии оставим юай пока в стороне) по типу
Ловкость (0)
Сила (0)
Ну и так далее

Далее Во втором табе имеем вводную к достижениям 2х типов. 1 - Завязка на харки, 2 - авторская
Там можем прописывать и добавлять. По типу
Если ловкость = 100 и Сила = 50 то Урон * 1.1
Так же пару галочек типо глобальный эфект или только на чистые харки без добавок от других бонусов
Или же, учитывать или нет эфект одежды ну и по мелочи, на месте разберемся.
Второй тип же прописываем тупо
Сила = Сила * 1.5
Ну и естественно имена достижений для удобства.

Далее 3й таб, естественно эквип
Тут надо будет с Демом на тему сколько и чего одеть можно, поговорить.

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

Ну как то так

ах да.
Джава, Скала, С#, JavaScript, html это, что умею. На php часть расчетов написать не смогу. А вот Десктоп версию для тестов, напишу свободно. Естественно если не заморачиваться с юай
 
Последнее редактирование:

nad_oby

nad_oby

Несъедобен.
Регистрация
23 Июн 2015
Сообщения
404
Оценок
602
Баллы
596
Десктоп, это сурово, для меня(Linux only), но я в абсолютеом меньшинстве.
Может python?
 

Drake

Drake

Участник похода
Регистрация
27 Июл 2015
Сообщения
1.997
Оценок
2.378
Баллы
1.491
Возраст
45
Я могу написать на PHP. Но начать предлагаю с чего-то попроще. Напримнр, с гугл таблицы.
 

shandowspy

shandowspy

Шпион Гуорры!
Регистрация
29 Окт 2014
Сообщения
166
Оценок
479
Баллы
336
Возраст
41
А смысл? В гугл надо вписывать статичные функции. Я же думал отдать это на волю Дема.
 

nad_oby

nad_oby

Несъедобен.
Регистрация
23 Июн 2015
Сообщения
404
Оценок
602
Баллы
596
Я попробую надергать достижений из книг.
Благо дем предоставляет текст как text.
Забабахаю их в JSON.
Пошёл расчехлять grep и awk...
 

nad_oby

nad_oby

Несъедобен.
Регистрация
23 Июн 2015
Сообщения
404
Оценок
602
Баллы
596
окей, я на выходных напишу первую часть
Если можно в виде либы, чтобы потом вебморду прикрутить.
Захостить есть где.
Заготовка JSON-а уже есть, причешу, выложу.
Если нужно поменяnь формат, это не проблема.
JSON:
{ "achievements":
    {
        "Рука помощи": {
            "rank_1": {
                "chance_ident_item" : "0.1%",
                "note" : "Текущий шанс успешной идентификации: 0.3%"
            }
        }
    },
    {
        "Оружейник": {
            "rank_1": {
                "make_weapon_quality" : "+0.5%" , +1% { "chance_weapon_creation"}
            }
        }
    },
    {
        "Мародер": {
            "rank_1": {
                "chance_crit": "+0.1%",
                "note" : "Текущий шанс критического удара: 1.2%"
            }
        }
    },
    {
        "Все выше и выше!": {
            "rank_1": {
                "experience_gain" : "+0.5%",
                "note" : "Текущий уровень бонуса 0.5%"
            }
        }
    },
}
 
Последнее редактирование:

Drake

Drake

Участник похода
Регистрация
27 Июл 2015
Сообщения
1.997
Оценок
2.378
Баллы
1.491
Возраст
45
А смысл? В гугл надо вписывать статичные функции. Я же думал отдать это на волю Дема.
Для отладки работы функций, и чтобы Руслан мог посмотреть и сказать "Это - ок, а вон то - поправьте".
Если можно в виде либы, чтобы потом вебморду прикрутить.
Бандл Симфони а-ля REST подойдёт?
Или просто бандл с данными и расчётами, а REST или другой вариант API можно отдельно прикрутить через DI-контейнер и сервисы.

Ачивки, эликсиры, вещи и другие варианты модификаторов параметров игрока предлагаю хранить в базе.
Для десктопа можно использовать что-то типа SQLite, а для Веба - MySQL или PostgreSQL.
Предлагаю реляционные базы, т. к. думаю было бы удобно связывать персонажей, ачивки, предметы и т. п.
 
Последнее редактирование:

nad_oby

nad_oby

Несъедобен.
Регистрация
23 Июн 2015
Сообщения
404
Оценок
602
Баллы
596
Для отладки работы функций, чтобы Дем мог посмотреть и сказать "Это - ок, а вон то - поправьте".

Бандл Симфони а-ля REST подойдёт?
Или просто бандл с данными и расчётами, а REST или другой вариант API можно отдельно прикрутить через DI-контейнер и сервисы.
Я сварщик не настояший (сисадмин) и мне всё равно на чем написано, VPS она всё стерпит.
Так как проект - хоббийный - можно поизвращаться и делать на чем-то новом/интересном.
Можно вообщё Client-side на JS, а данные статикой отдавать.
 

Drake

Drake

Участник похода
Регистрация
27 Июл 2015
Сообщения
1.997
Оценок
2.378
Баллы
1.491
Возраст
45
А смысл? В гугл надо вписывать статичные функции. Я же думал отдать это на волю Дема.
Функции подсчёта производных параметров, по большому счёту, и есть статичные.
Что-то типа (вариант 1):
{количество очков маны} = ({базовый интеллект} + {дополнительные пункты интеллекта}) * {коэффициент мана/интеллект} * {модификатор маны в %} + {доп. очки маны}
Или так (вариант 2):
{количество очков маны} = (({базовый интеллект} + {дополнительные пункты интеллекта}) * {коэффициент мана/интеллект} + {доп. очки маны}) * {модификатор маны в %}
 

Drake

Drake

Участник похода
Регистрация
27 Июл 2015
Сообщения
1.997
Оценок
2.378
Баллы
1.491
Возраст
45
Можно вообщё Client-side на JS, а данные статикой отдавать.
Тоже об этом думал. Одевание - раздевание персонажа / наброс очков в характеристики / применение эликсиров / другие модификации - на клиентской стороне самое оно. А сохранять, чтобы другие посмотрели можно уже запросом с тем же JSON-ом в теле.
 

nad_oby

nad_oby

Несъедобен.
Регистрация
23 Июн 2015
Сообщения
404
Оценок
602
Баллы
596
Тоже об этом думал. Одевание - раздевание персонажа / наброс очков в характеристики / применение эликсиров / другие модификации - на клиентской стороне самое оно. А сохранять, чтобы другие посмотрели можно уже запросом с тем же JSON-ом в теле.
Угу, так получится что на сервере только загрузка JSON onload и выгрузка данных при сохранении и аутентификация пользователей.
Ляпота!
 

Drake

Drake

Участник похода
Регистрация
27 Июл 2015
Сообщения
1.997
Оценок
2.378
Баллы
1.491
Возраст
45
Угу, так получится что на сервере только загрузка JSON onload и выгрузка данных при сохранении и аутентификация пользователей.
Ляпота!
Сервер ещё должен отвечать на запросы типа "а дай-ка мне список достижений с разбивкой на страницы по 20 на каждую". Ну и админка с добавлением / изменением разных предметов / достижений / и т. п. нужна. Прямо в базу писать может быть неудобно :)
 

Drake

Drake

Участник похода
Регистрация
27 Июл 2015
Сообщения
1.997
Оценок
2.378
Баллы
1.491
Возраст
45

nad_oby

nad_oby

Несъедобен.
Регистрация
23 Июн 2015
Сообщения
404
Оценок
602
Баллы
596
Сервер ещё должен отвечать на запросы типа "а дай-ка мне список достижений с разбивкой на страницы по 20 на каждую". Ну и админка с добавлением / изменением разных предметов / достижений / и т. п. нужна. Прямо в базу писать может быть неудобно :)
Если мы сейчас не остановимся, мы до MMO браузерки на WebGL с трёхмерной графикой и поддержкой VR дойдём.
Надо сформулировать MVP, а плюшки потом приделать можно.
 

Drake

Drake

Участник похода
Регистрация
27 Июл 2015
Сообщения
1.997
Оценок
2.378
Баллы
1.491
Возраст
45
Надо сформулировать MVP, а плюшки потом приделать можно.
Я в принципе и задумывал эту тему как место для обсуждения ТЗ, архитектуры, формул расчётов и т. п.
 

Похожие темы


Сверху Снизу