технологии
4 заметки
терапия
Сейчас этот блог в основном про психотерапию.
как правильно
Слушайте меня, я вас научу правильно жить.
психология
Буржуазная лже-наука, пытающаяся выявить закономерности в людях.
практика
Случаи и выводы из психотерапевтической практики.
кино
Фильмы и сериалы.
книги
Это как кино, но только на бумаге.
nutshells
«В двух словах», обо всем.
дорогой дневник
Записи из жизни (скорее всего, не интересные).
беллетристика
Мои литературные произведения и идеи.
духовный рост
Когда физический рост кончается, начинается этот.
дивинация
Как предсказывать будущее.
половой вопрос
Про секс и сексуальность.
заяижопа
Творческий дуэт с моей женой.
магия
«Магическое — другое название психического».
Карл Юнг
игровой дизайн
Раньше я делал игры.
игры
Компьютерные игры.
язык
Слова там всякие.
людишки
Уменьшительно-ласкательно и с любовью.
культ личности
Про великих людей (то есть, в основном про меня).
hwyd
Уникальная Система Прививания Привычек.
буклет
я
идеи
блоги
spectator.ru
дети
wow
вебдев
музыка
контент
программирование
религия
дейтинг
диалоги
яндекс
кулинария
coub
fitness
символы
йога
шаманизм
tiny
ребенок

Проблемы WoW: сторона, классы, pvp/pve, damage/control

19 лет назад в категориях технологии игры software

Blizzard — великая компания, у которой всем надо учиться. То есть так, натурально, садится, играть и смотреть, что как сделано и главное – думать, почему. Лет через десять такие игры все будут делать, ага.

Однако у ее последнего шедевра World Of Warcraft есть один довольно ощутимый недостаток. Состоит он в том, что... люди дураки.

Глупые, никчемные существа со стереотипным мышлением, а иногда вообще безо всякого.

Альянс vs Орда

Blizzard создала две противоборствующие стороны — альянс и орду, в каждой стороне – по 4 расы. Причем по легенде орда «уже не плохая». Орки освободились от демонического влияния, андеды — от власти Lich King, таурены вообще всегда были благородными существами. Что же касается Альянса — то эльфы и люди призвали в этот мир Burning Legion, люди нарушили мирную договоренность с Ордой первыми, дварвы — жадные копатели сокровищ, и так далее.

Хороший ход «все дураки» не удался. Много людей шло играть за альянс «чтобы убивать плохих», то есть орду, особенно не разбираясь. Типичная такая ксенофобия — кто не с человеком, тот плохой.

Следует сказать, что на стороне альянса есть два величайших jerk magnets: это паладины (которые «как воины, только еще и лечат», при этом «всегда убивают плохих») и, конечно же, ночные эльфы. Что такое эльфы после недавней популяризации Толкиена? Это наше все. Долгое время вообще самым распространенным персонажем на серверах был эльф-мужчина-охотник, имеющий всевозможные вариации имени, созвучные с «Леголас» (или как его там?).

Поэтому на многих серверах наблюдается дисбаланс населения в сторону альянса. Винят в этом Близзард, но если вы хотите, чтобы ваш персонаж «хорошо выглядел и убивал плохих», то идиот — вы, а не Близзард.

Есть, конечно, определенные дизайнерские недочеты — сначала вы выбираете расу, а потом вам показывают ее историю, то есть узнать, что орки, в общем-то, неплохие ребята, можно только после того, как вы решили играть орком, а не до. Впрочем, это не важно, так как многих устраивает аргумент «эльфы — это круто».

Классы и PvP.

Следующая проблема состоит в том, что в WoW есть девять классов. И «они должны быть сбалансированы в PVP». Есть два подхода к балансу:

1. «Все убивают всех». Каждый класс имеет все возможности убить другой класс. Это довольно тяжело балансировать, вводя для каждого класса некие способности против другого конкретного класса, в результате чего игра все равно превратилась бы в «кто первый нажмет на специальную кнопку (против этого класса) — то и победил».

Сделать, чтобы один класс мог победить другой, можно. Но очень сложно сделать, чтобы вероятность победы приближалось к 50%.

2. Второй путь — это всем известный принцип «камень-ножницы-бумага», то есть, условно, «Маг побеждает воина, воин побеждает вора, вор побеждает мага». При большом количестве классов это превращается в некую пищевую цепочку: класс (как правило) убивает N других классов, но проигрывает N другим классам.

Второй путь кажется лучше, однако тут кроется небольшая наебка. Всегда есть классы, которыми играют больше, чем другими, и это не имеет никакого отношения к игровому балансу. Пример, который я уже приводил — Night Elf Hunter. Им играют, потому что он стреляет из лука, как настоящий Леголас, а это круто!!!

Возьмем гипотетическую ситуацию, когда в игре три класса: «Маг побеждает воина, воин побеждает вора, вор побеждает мага». А теперь представим, кто каждым классом играет не ровно 1/3 всех людей. Вором играют 60%, потому что вор может уходить в невидимость, воином — 10%, потому что это скучно, магом — 30%, что как раз близко к 1/3. Предположим, что в боях с представителем своего класса побеждает тот, кто нападает первым (это не так уж и далеко от истины).

Таким образом — Игра для вора: если напал первым, то 90% всех побед тебе обеспечены. Так как вор выигрывает 90% всех боев, то он продолжает упорно нарываться на воина, при этом больно получает от него и идет жаловаться в форум игры, что воины слишком сильны. В форме на жалующегося вора плохими словами обзываются обиженные маги.

Игра для воина: воины побеждают в 70% случаев. Воинов это устраивает, они считают, что игра сбалансированная, но, увы, воинов всего 10% от общего числа игроков.

Игра для мага: маги побеждают в 40% случаев, если напали первыми. А если на мага напали, то у него всего 10% шанс победить — если на него напал воин. Маг искренне радуется, когда видит воина. Но такое случается редко, потому что мага постоянно убивают воры, а воинов в игре мало. В конце концов магу надоедает умирать, и он... тоже становится вором. Ситуация становится только хуже.

А было-то все по-честному — «камни, ножницы, бумага»...

Близзард приняли единственно верное решение, объявив свою официальную позицию по этому вопросу: «Игра не сбалансирована для PvP 1 на 1». — У вас нет баланса! — Да, у нас нет баланса.

Оспаривать больше нечего.

Классы и PvE.

Однако, большая часть игры — это PvE (Player Vs Enviroment), а не PvP (Penis vs Penis), то есть большей частью приходится убивать компьютерных монстров, а это две большие разницы — тупые монстры и совсем по-другому тупые игроки.

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

Остальные классы идут на форум игры и начинают обзывать воинов элитистами, потому что те — о, ужас — не идут в первую попавшуюся группу сразу — потому что могут себе это позволить.

Воры, которые побеждают в 90% в PvP, испытывают трудности c поиском групп в PvE, потому что их, воров, слишком много.

Control vs Damage.

Место, где Blizzard действительно допустили промашку – это классическое противопоставление — контроль против повреждений.

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

Да-да, damage vs defense. Остальные классы можно балансировать по этому принципу: сделать, например, промежуточный класс, со средней защитой и со средним нападением, но в любом случае мы рано или поздно придем к контролю.

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

Самое интересное в том, что в умелых руках хороший контроль-класс почти всегда сильнее обычного класса. Ту же способность усыпления можно использовать, например, чтобы усыпить противника и перевязать раны. Или, например, если ваш противник не имеет стрелкового оружия, то можно его усыпить, отойти подальше, начать в него стрелять. Он проснется, и побежит к вам, как только он добежит, снова его усыпить, отойти и повторить.

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

Конкретно в WoW проблема в том, что разработчики только недавно осознали, что контроль – страшная штука, и в патче 1.4 ввели штуку, которая называется «diminishing returns». Суть этой штуки состоит в том, после каждого использования контроль-спела противник становится все менее и менее восприимчив к нему.

Вот цитата из патча: «When a spell with diminishing returns is used against a target in PvP, the first effect has full duration. On the second use of the same category of spell (e.g. slowing), that spell’s duration is reduced by 50%. On the third use, the duration is reduced by 75%. On the fourth attempt, the target becomes immune to the spell».

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

Иными словами, сейчас контроль в WoW урезается очень сильно. Это на корню убило такие классы, как ice mage, главной защитой которого было замедление и заморозка противника; warlock, класс, который делает damage over time, и единственной защитой которого был fear; довольно сильно досталось priest-у.

Официальная позиция Blizzard-а теперь такая: «Игроку не нравится, когда он теряет контроль над своим персонажем». Это предсказуемо, любая попсовая стратегическая игра (два миллиона подписчиков не могут быть неправы) рано или поздно скатывается к тому, то вся стратегия сводится к нанесению наибольшего количества повреждений за наименьший период времени.

Два миллиона хомячков победили.

Blizzard же допустили промашку в двух местах:

1. Сразу не поняли, что контроль – это круто.
2. Дали слишком много контроля классам, которые наносят много повреждений (вор, маг, шаман) в качестве приятного дополнения, вместо того, чтобы создать чисто контрольные классы, наносящие небольшие повреждения.
3. Когда люди стали жаловаться на то, что «Шаман может подряд много раз колдовать frost shock и держать меня все время замедленным», вывели магическую формулу «Людям не нравится терять контроль» и урезали весь контроль.
4. Это сильно усложнило жизнь другим классам, единственной защитой которых был контроль.

Итого:

1. Люди выбирают сторону/расу, основываясь на внеигровых аргументах, и с этим ничего нельзя поделать.
2. Люди выбирают класс, основываясь на внеигровых аргументах (паладины – это круто, потому что круто мочат плохих) или класс, который наносит больше всего повреждений (повреждения – это круто). Людям нравится быть крутым и «всех иметь», и с этим ничего нельзя поделать.
3. Контроль сильнее повреждений, но люди любят повреждения и «не любят терять контроль над персонажем», поэтому все рано или поздно сведется к повреждениям.

0

Простое кэширование страниц

21 год назад в категориях технологии php

Простое кэширование страниц. Для чайников. На PHP.

Кэширование — замечательная вещь. Часто (теперь — почти всегда) страницы на сайтах генерятся динамически. Это теперь модно. Однако же — в реальности — почти всегда страница собирается заново гораздо чаще, чем она изменяется. Грубо говоря, мы опубликовали новый документ, и при каждом обращении к нему он заново считывается, скажем, из базы данных, заново прогоняется через шаблон и прочее и прочее. Мы снова и снова делаем одну и ту же работу.

А можно просто один раз сделать, а потом сохранить результат этой работы. И при каждом запросе выдавать готовый результат, а не делать все заново. Это и есть кэширование.

Оно позволяет, снизить нагрузку на сервер и на базу данных. Непонимание принципов работы кэша иногда приводит к забавным курьезам.

Единственная проблема — это устаревание кэша. Допустим, что данные на странице изменились, а кэш страницы — еще нет, и пользователю будет выдаваться старая версия страницы. Способы борьбы:

1. Выставлять более-менее приемлимое время устаревания кэша. Например, через 10 минут страница устаревает и кэш генерится заново. Минусы: возможна ситуация, когда пользователю 9 минут будет показываться старая страница.

2. Кнопка «очистить кэш». В некоторых системах вообще нет кнопки «очистить кэш», вместо нее есть кнопка «перегенерить сайт целиком». Нажимаем на эту кнопку — и весь сайт генерится в статичные файлы, то есть, фактически, в кэш. Минусы: стрельба по воробьям из пушки. Мы поменяли одну страницу, а перегенерить приходится весь сайт.

3. «Умная» очистка кэша. Очищается только кэш той страницы, которую мы изменили. Минус: часто изменение одной страницы затрагивает и несколько других. Главное — понять, каких именно и очистить кэш у них тоже.

Лично у меня реализованы все три метода.

А теперь — в двух словах, как сделать себе кэш. Чудесные функции PHP — ob_start и иже с ней позволяют не выводить страницу в браузер, а, например, сохранить ее в переменную. Про это я уже писал.

Это вставляем в начале страницы:

$url=$GLOBALS['REQUEST_URI'];
$crc=md5($url);

$modif=time()-@filemtime ("cache/$crc");

if ($modif<600)
{
include ("cache/$crc");
exit();
}

ob_start ();

Как это работает:

Берем адрес страницы, вычисляем из него md5. Это будет использоваться, как идентификатор страницы. Например, для УРЛа technology/php/caching md5 будет всегда одим и тем же. Этим мы и воспользуемся.

Файлы кэша будут лежать в директории cache. Смотрим, сколько секунд (filemtime) исполнилось файлу с кэшэм данной страницы. Если он не очень старый (меньше 600 секунд) и вообще есть — выводим его (include).

Если нет — то включаем ob_start и продолжаем дальше.

Это вставляем в конец страницы:

$cache = ob_get_contents();
ob_end_clean ();
echo $cache;

$fp = @fopen ("cache/$crc", "w");
@fwrite ($fp, $cache);
@fclose ($fp);

Как это работает:

Считываем содержимое буфера (ob_get_contents). Получаем в переменной $cache то, что должно было выводится в браузер. Выводим в бразуер, раз должно (echo).

Записываем содержимое буфера ($cache) в директорию cache в файл $crc.

Все. Теперь при следующем обращении к странице с этим адресом скрипт (смотрите первую часть) будет смотреть, есть ли соответствующий файл в кэше и если он еще не устарел — просто выводить его и прекращать обрабатывать страницу (exit).

Примерно так оно и работает. Таким образом, страница выводится из кэша где-то за 0.001-0.004 секунды. Выигрыш процессорного времени налицо.

Разумеется, я описал только общий принцип, у меня сделано несколько по-другому.

0

Дизайн и плагиат

23 года назад в категориях технологии вебдев
Сейчас я постараюсь объяснить, почему нельзя воровать чужой дизайн. Объяснить не тем, кто ворует — как показала практика, таким людям объяснить что бы то ни было просто невозможно: глядят на тебя, «как в афишу — коза» и внезапно лишаются дара восприятия человеческой речи. Защитная реакция.
(еще 1641 слово)

0

Технофетишизм

23 года назад в категории технологии

Вит написал чуть ли не манифест киберпанка. Вот тут.

Лет через десять — технологии могут быть предложены любому желающему. Хотите вы, допустим, взаправду встроить в свой ум небольшой 3D ускоритель памяти — пожалуйста. Или интерпретатор мыслей, позволяющий включать стиральную машину, просто подумав об этом — причем в любом месте и в любой отдаленности. И чуть позже, лет через тридцать, вас вообще никто не будет спрашивать о том, хотите ли вы этого, или не хотите. Это будет так же самоочевидно, как ношение очков при плохом зрении или использование слухового аппарата.
Поколение Net.

Все правильно так написал, логично так. Тем не менее, у меня наконец-то имеется полное основание поспорить с Витом, ибо его точку зрения я не разделяю. Вообще, про кибер-имплантанты был большой спор между Витом и Сашей. Чем кончился — не помню, но вроде сошлись на том, что имплантанты точно будут.

Меня в этот спор не позвали, поэтому выскажусь сейчас. Я не буду говорить: «Нет, ничего подобного! Никаких имплантантов!». Может быть, они и будут. Но может — и нет.

Хоть я и не являюсь читателем «Компьютерры», но как-то мне попалась там довольно интересная статья — по-моему, Кира Булычева (того самого). И писал он как раз про предсказание будущего. Мысль была такая: если какого-нибудь феодала 17 века спросили бы — какое оружие будет в будущем, то он ответил бы, что у рыцарей в будущем будет такая толстая броня, что их придется возить на телеге. То есть берется текущая реальность и умножается на n. Или возводится в степень. Получаем картину гипотетического будущего.

Вообще, я не видел ни одного футуристического прогноза, который сколько-нибудь напоминал бы действительность. Зато видел немало забавных вещей — вроде гравюры «Нью-Йорк в 21 веке», на которой изображены улицы, опутанные проводами так, что не видно неба. А все просто — телеграф тогда уже был. Изобретение — хорошее. Следовательно, в будущем все будут пользоваться телеграфом. Умножаем количество проводов на 100 — получается Нью-Йорк 21 века.

Вот, нашел-таки статью. Вот точная цитата:


Что же касается прогнозов научных, но общефилософского характера, то они обычно строятся по методу арифметической прогрессии. Если сегодня у нас компьютеры, то будут суперкомпьютеры, если у нас мини-маркеты, то будут супермини-маркеты. Этот метод хорош в историческом плане. Представьте себе: тысячный год. Каким будет вооружение рыцаря через тысячу лет?

Ответ: доспехи станут такими тяжелыми, что рыцарей будут возить на телегах. Сто лет назад. Какими будут проблемы городского транспорта к концу XX века? Ответ: улицы будут завалены конским навозом да второго этажа. По такому принципу каждый может стать футурологом.

Через сто лет. Экраны телевизоров достигнут размеров теннисного корта. Юбки укоротятся до пяти сантиметров. Вилла среднего подполковника будет шестиэтажной с подземным ходом в лес. Прокладки. тут мое воображение отказывает.

Кир Булычев, «Темное будущее»

Есть такая вещь, которую я называю «технологический фетишизм». Встречается в 99% процентов фантастических романах — когда герой будущего имеет в кармане миниатюрный ядерный реактор, космический корабль, превосходящий по скорости свет и прочее. Если разобраться — сущая нелепица. Ибо создана как раз по формуле «берем то, что имеем сейчас и умножаем на десять».

Проблема в том, что будущее оказывается гораздо более «продвинутым», чем мы ожидаем. И вовсе не потому, что умножает действительность не на 10, а на 100 — все-таки Нью Йорк еще не опутан проводами до такой степени, что неба не увидать — а потому, что придумывает нечто абсолютно новое. Взять тот же банальный интернет. Несколько десятков лет назад ни один из футурологов не мог предположить нечто подобное. Ибо не было такого.

Так и мы, когда говорим: «Имплантанты будут! Будут встраиваться в голову SIMM’ы и DIMM’ы и GeForce’ы 2000’ые» уподобляемся «невежественным» — по нашим меркам — людям из прошлого, которые мечтали, что к 2000 году у каждого будет персональный дирижабль.

Это первое. Второе — это очередное торжество «материализма» и науки. Такое уже было, и не раз. В последний раз, если я не ошибаюсь, в начале 20 века. Изобрели кучу всего. Покорили воздух. Казалось еще чуть-чуть — и наука сможет объяснить все тайны мирозданья. Однако не объяснила. Началась депрессия и разочарование в науке. Народ вдарился в мистику. И было такое не раз — и во времена Ньютона, например, тоже. Наверное, раз в век наступает то время, когда наука и high-tech (по тем меркам) ставятся во главу угла и официально объявляются панацеей.

Меня, например, всегда забавляли попытки создать «искусственный интеллект» по принципу: в мозгу человека столько-то нейронов. Давайте возьмем столько же фиговинок (триггеров, логических элементов — называйте, как хотите), соединим их и они будут работать абсолютно также! До сих пор пытаются, кстати.

Думаю, что природа в очередной раз «обламает». При вживлении имплантатнов начнется гематома мозга. Ну, условно. К примеру. Да и потом — а кто вам сказал, что имплантанты в мозг вообще можно будет сделать? Ну да, вроде бы все легко: берем фиговинку, запихиваем в мозг, припаиваем к ней соответствующие нейроны... Казалось бы — вопрос техники. Но вот искусственный интеллект — тоже вопрос техники создать: берем кучу деталек и соединяем. А до сих пор не создали.

И потом — куда вживлять-то будем? Это вам не PCI-йная шина — в человеке лишних слотов нет.

«...доспехи станут такими тяжелыми, что рыцарей будут возить на телегах» — из цитатки выше — помните? «Так ведь это же танк!», — скажите вы. Ну, да. Почти танк. Так вот и имплантанты в будущем, возможно, будут. Но все равно не в том виде, в котором вы можете предположить.

Так что не люблю я предсказаний будущего. Особенно — в виде манифестов. Настанет ли «человекомашинное будущее»? Не-а.

0
Мой инструмент по развитию силы воли и прививанию полезных привычек.