If this is a first time you visiting Scrolls, please register in Fight Club. If you already registered, please authorize on Fight Club start page with your login and password.
Не так давно начал писать заготовку поста про своё видение идеальной примерки. Вскоре поток мыслей кончился, а заготовка осталась. Выкину сюда, вдруг кому-нибудь будет интересно, что же именно будет в моей примерочной, если я-таки решу её запилить.
Так как примеркой я уже вряд ли займусь, а мысли на её счёт у меня всё равно есть, то хочется выложить их в письменном виде. Авось кто-нибудь поймает и сделает нечто крутое.
Основными тремя факторами, на которые обращают внимание пользователи, пользуясь каким-либо программным продуктом, являются: 1. Удобство использования (дизайн) 2. Функциональность 3. Быстродействие Как разработчик, вынужден добавить ещё один, скрытый от конечного потребителя, но всё же очень важный фактор, который влияет на то, как продукт будет развиваться: 4. Удобный код
Итак, пойдём по пунктам.
1. Удобство использования Как известно, сила привычки - самая сильная из всех сил. Привыкнув к одному интерфейсу, крайне тяжело воспринять новый. Для того, чтобы пользователь безболезненно пересел за новый ресурс, он должен сильно превосходить по удобству старый. В идеале, пользователь, впервые запустив его, должен сразу же понимать, что он хочет и как это получить. К сожалению, для большинства крупных программных продуктов это реализуется не без проблем из-за большого количества опций и возможностей в нём. В итоге пользователь плюётся от, возможно, гениально написанной с точки зрения функциональности программы, но с отвратительно неинтуитивным интерфейсом.
Чтобы довести интерфейс до идеала, программа должна отвечать следующим требованиям: 1. Лаконичность 2. Наличие документации 3. Настраиваемость
С пунктами 2 и 3 всё понятно, но как достичь лаконичности? Как понять, что в интерфейсе - лишнее, а что - то, чем пользователь пользуется в первую очередь?
На самом деле ответ проще, чем может показаться. При выборе нового продукта наиболее важную роль играет первое впечатление. Для матёрых олдфагов, которые изучили каждый миллиметр интерфейса, дизайн играет последнюю роль: они всегда могут найти то, что им нужно, по памяти. Именно поэтому интерфейс разрабатывается не для постоянного пользователя, а для новичка.
Предположим, некто Пупкин [8], взяв новый ап, хочет купить себе новый шлем, но не знает, как лучше: с ним или без него. Открыв примерочную, он хочет загрузить своего персонажа, увидеть все его характеристики, а в отдельной кабинке надеть на него шлем. Потом взять и сравнить.
У Дарков это делается так: открыл примерочную, загрузил персонажа, скопировал кабинку, надел шлем, сравнил. Точно так же это делается у Сталкеров. Примерочная Риттеров же лишена этапа "сравнить". В принципе, чтобы довести сей процесс до идеала, достаточно убрать этап "скопировать кабинку": один персонаж должен открываться сразу в обеих кабинках.
Лишь проведя десятки таких мысленных, а, может быть, и реальных экспериментов над Пупкиными [8] и Мегапихарями [10], мы сможем узнать, как упростить интерфейс до такой степени, чтобы он не потерял в функциональности, но приобрёл в понятности.
(Кстати говоря, очень странно, что администрация БК об этом совершенно не заботится... Очень странно, но, в то же время, понятно: расчёт идёт на старых игроков, а не на новых.)
Не последнюю роль в интерфейсе должна играть и графика. Иконка должна говорить о своём назначении, не требуя от пользователя навести на неё. В этом, кстати, заключался главный просчёт интерфейса примерочной Сталкеров: она использовала БКшные иконки, которые с функциями примерочной не имеют ничего общего.
Помимо того, нельзя пихать функции на правую кнопку мыши. К ней пользователь обращается в последнюю очередь и если на иконке не написано "нажмите правой кнопкой мыши, чтобы открыть дополнительное меню", то пользователь это самое дополнительное меню никогда не найдёт.
(Как очень яркой иллюстрацией последнего мне вспоминается возможность в инвентаре БК сменить на персонаже вещь, кликнув правой кнопкой мыши на соответствующем слоте. Скорее всего, об этой возможности большинство игроков даже не догадывается.)
2. Функциональность В принципе, основная задача примерочной - дать игроку возможность увидеть своего персонажа таким, каким он станет в будущем или не станет никогда; оценить затраты на достижение и целесообразность. Однако, помимо своих основных целей, примерочная может служить каркасом для разработки чего-либо куда более мощного и интересного. В примерочной мы одеваем персонажа, вводим статы и умения. На выходе мы получаем боевые характеристики... А на основе этого уже можно проводить самые обычные бои.
Конечно, глупо пытаться составить конкуренцию полноценной игре, но на базе примерочной можно как минимум проводить оценивать силу и живучесть двух разных комплектов. Основная проблема заключается в том, что администрация не станет выдавать игрокам точные формулы расчёта вероятности увёртывания или критического удара. Однако, что мешает нам вывести эти формулы эмпирически? Да, это будет затратно с точки зрения человеческих ресурсов, но теоретическая выгода от посещаемости сайта будет гораздо выше.
Однако, кроме этой полуфантастической затеи, было ещё множество мелких недоработок и идей, которые требовалось внести в примерочную. Одной из таких идей было введение "мешка", куда можно было бы складывать вещи для быстрого доступа, чтобы не копаться долго в фильтре позже. Типа, один раз положил в мешок всё, что нужно, и потом сразу же достаёшь вещи только из мешка.
Ещё одной подобной идеей было введение "подробного фильтра". Сейчас фильтр по вещам можно настроить по названию вещи, по качеству, по классу и даже по подклассу, но нельзя найти вещь по параметру, который она даёт. Позже идея расширилась: почему бы не дать возможность пользователю искать не только по значению одного параметра, а по диапазону или по нескольким параметрам? Впрочем, впоследствии пришлось от этого отказаться, так как большинство людей имеют слабое представление о множествах и о булевой алгебре. А вот поиск хотя бы по одному параметру так и не ввели. Если бы этого не произошло, расширенный фильтр мог бы выглядеть так:
На самом деле, очень хотелось бы ввести эту возможность в примерочные в будущем, но это уже не столько технический вопрос, сколько дизайнерский.
Немаловажно отображать в описании вещей то, где их можно получить, купить или собрать, желательно, с ссылками на соответствующие статьи. Уникальные вещи должны ссылать на их единственного владельца.
Довольно большое количество возможностей в примерочную можно ввести, используя возможность авторизации пользователя... Например, "самые популярные вещи", которые определялись бы из сохраняемых зарегистрированными пользователями комплектов. Или, к примеру, пользователи могли бы отправлять некоторые не введённые в примерочную вещи "на модерацию", что упростило бы этот процесс при вводе новых вещей в игру. И, разумеется, авторизованные пользователи должны иметь возможность просмотреть список сохранённых собой комплектов, чтобы исключить возможность "потерять ссылку".
Это далеко не весь перечень возможностей, который можно было бы ввести в удобную примерочную. Как видите, список возможностей, которые должны присутствовать в примерочной, практически безграничен. В неё постоянно должны вводиться изменения и улучшения, и разработчик никогда не должен сидеть без дела.
На этом месте у автора поста поток мыслей кончился, да и всё равно в разделах про быстродействие и удобочитаемость было бы много технических понятий, которые нахрен никому не интересны.
Вам запрещено комментирование в скроллах. Причина: Character level to low
(Как очень яркой иллюстрацией последнего мне вспоминается возможность в инвентаре БК сменить на персонаже вещь, кликнув правой кнопкой мыши на соответствующем слоте. Скорее всего, об этой возможности большинство игроков даже не догадывается.)
Мега-фича. Понятия не имел О_О ну вообще использование правой кнопки в браузере является атипичным. Любопытные мысли, интересно было почитать =)
а мне бы было интересно еще выводить один параметр комплекта - его вес. вес - количество очков, из которых набирают параметры экипировки: мф, броню, мощь, статы и прочие. подробней можно посмотреть тут на примере рун http://scrolls.combats.com/~dzkras/916161.html
я заметил (а может и ошибся), что вес разных предметов одного уровня для одного класса - разный. зачем это было сделано, не понятно, но проследить таким образом антиклассовость (или предпочтения администрации) было бы очень интересно.
з.ы. сегодня пробовал примерочную. виснет, когда пытаюсь выбрать оружие :( я так понимаю, это уже не сильно интересная разработка? жаль...
Однако, помимо своих основных целей, примерочная может служить каркасом для разработки чего-либо куда более мощного и интересного. В примерочной мы одеваем персонажа, вводим статы и умения. На выходе мы получаем боевые характеристики...
ну вот как раз тем самым мне и приглянулась твоя примерочная, а именно точный урон на выходе, благодаря чему можно прикинуть зарунку, что лучше и выгоднее, да и много еще чего... было бы неплохо еще увидеть расчет урона по цели от приемов, кастов и просто ударов(1-2я рука), а точнее в разные параметры защиты/брони/пмк, ну тут конечно без знания формул не обойтись, хотя и это можно прикинуть
Цитата:
эмпирически
всеж жалко, что ты ее забросил, зададки у примерочной были то что надо, имхо) и еще офтоп конечно, но хотел у тебя узнать, как расчитать чистый критический урон и тот же урон по защите+пмк, ну это так, чисто для себя, проверить некоторые свои предположения)
Аа. С защитой всё просто: урон[конечный] = урон[предварительный] * (1 - защита[рассчитанная]), где защита[рассчитанная] = 2^(-защита[сырая] / (250 * 1.2^(уровень персонажа - 8)))
С тем, как считать пмк - вопрос любопытный. Его можно считать или как мощность крита[итоговая] = мощность крита[сырая] - против мощности крита или как-нибудь по-хитрожопому, типа мощность крита[итоговая] = (мощность крита[сырая] - против мощности крита + c[1]) / (против мощности крита + c[2]), где c[1] и c[2] - калибровочные константы.
получается чем выше защита сырая тем больше урон конечный, может там единичка лишняя от которой защита расчитанная отнимается? а то мне тут по порезам формулу подсказывали мол (базовые порезы в инфе)*0.5^(защита цели/250*1.2^(Уровень-8)) опытным путем прикинул, похоже, но при базовой защите перса отличающейся от (250 * 1.2^(уровень персонажа - 8)), для 11го у меня такая защита вышла 333-335, и при разных значениях защит(тестил от 93 до 563) значения порезов примерно сходились, но все равно погрешность в +-1 была, вот и подумал мож для физ урона формула такая же?
хмм, а зачем тогда эти единички если они сократятся?) и еще, нашел у Spawn of Dark в скролах повышение базовой защиты от уровня и там вроде как она является (250 * 1.1^(уровень персонажа - 8)) проверил на порезах сошлось все точно, без погрешностей о коих писал выше, но это было для маг урона, для физ урона может и 1.2, пока возможности проверить нету, а точнее нету времени урон подопытного общитать) еще бы узнать как в эти формулы броню втюхать, а то тестил тут с дикой удачей крит урон в голову, будучи без шлема и щита, урон постоянно разнился, хотя поидее на голове никакой брони быть не могло, как только снял все вещи с броней, урон с дичкой стал стабилен, вот собсно и задумался от чего ща танки рулят)
не совсем понял, но логичней вроде без единички и минуса перед двойкой, ну это я фик знает конечно, просто не совсем понятно что есть защита а что уязвимость, ну если, как я понял, они один фик сокращаются, то и не важно тогда) ну вот 1.1 это вроде моторолка обнаружила по маг урону, вот все хочу по физ урону прикинуть) ну да лан, спасибо за помощь, надеюсь ты всеж когданить дозреешь до переодевалки)
Сомнительно. С этими всеми ддосами даже если я и приступлю к работе над сайтом, его быстро повалят. К тому же, не хочу уже заниматься вещами, которые сильно завязаны на других, причём очень непостоянных ресурсах, как БК )
2 месяца уже пишу на java(swing) примерочную....этот скролл впервые сеня ток увидел )...должен был уже закончить но все никак чет не получается( - много времени на тестирование уходит...насчет правой кнопки не согласен - это родная кнопка для всех менюшек в винде...самый сложный момент в реализации для меня это вещи - до сих пор так и не определился, вбивать вручную или парсить с аштиэмэль страниц (хотя конструктор предметов написал впервую очередь - надо ж тестить как-то саму переодевалку какими-то вещами. + своей переодевалки считаю: возможность хранить предметы в разных файлах (реализовано) скорость работы интерфейса графического (тут понятно, быстрее чем на скриптах и медленнее чем нативный код, но скорость впринципе неплохая) офлайновость - ну тут +или- сложно сказать, для мну лично плюс. коллекция рун как предметов в виде отдельно подключаемых файлов (в процесе реализации, но сама руна от вещи бкшной отличается несильно с точки зрения логики организации) ну и в перспективе хотелось бы сделать чат и удаленное управление переодевалкой друга. а ну и удобный сейв\лоад в виде файлов(уже реализовано)
думал завершить в этом месяце но видно никак не получится - ввиду нехватки личного времени (расчитываю терь к дню знаний сделать, т.е. ща отпуск отгуляю и доделаю))
насчет правой кнопки не согласен - это родная кнопка для всех менюшек в винде...
Именно в этом и заключается проблема. Кликая на правую кнопку мыши, юзер ожидает увидеть меню браузера с ссылками типа «сохранить картинку», «свойства изображения» и прочие, а не те свойства, которые ему пришьёт программист.
Цитата:
самый сложный момент в реализации для меня это вещи - до сих пор так и не определился, вбивать вручную или парсить с аштиэмэль страниц (хотя конструктор предметов написал впервую очередь - надо ж тестить как-то саму переодевалку какими-то вещами.
Только парсить. Там несколько тысяч вещей, вручную вбивать ты умрёшь. Конструктор вещей можно использовать для добавления новых вещей, которых появляется не так много, но магазинный шмот — только парсить.
Но почему именно на java? На java делаются хорошие мобильные приложения и десктопные приложения для линуксов (из-за безальтернативности), но для веба лучше использовать flash, а ещё лучше — js. У приложений на java же косяк в том, что юзеру выскакивает всякий раз предложение «установить плагин» с предупреждением о небезопасности сего действа, а нерадивый юзер, любящий идти по пути наименьшего сопротивления, нажмёт «нет» и уйдет смотреть примерку Риттеров.
я именно десктопное приложение и делаю, а не апплет )) посему выбор был между плюсами и джава...выбрал джаву, на плюсах сделаю после примерочной парсер логов - там скорость решает для разбора текста...мне раньше у триады нравилась примерочная, хоть и глючная была до ужаса (постоянно утечка памяти шла и я тож очконул что могу провтыкать где-то чтото типа int *p; delete p;...delete p; потому что, проэкт в принципе не маленький получается).
а что риттеры ? функционал да, дизайн да, а новые вещи вышли и весь форум бк воет когда переодевалку обновят))