Diablo III
Самое главное в Diablo III — это то, что камни и крафтинговые вещи имеют белый цвет подписи при дропе, как и мусорный лут.
...
12 лет разработки! И такое!
...
Остальное все хорошо, да.
...
У меня был период в моей жизни, в одной из the darkest timeline, когда я целый год сидел и делал вид, что придумывал next-gen MMO, это было несколько лет назад, еще до выхода WoW: Cataclysm и уж конечно до всякой информации о Diablo III (кроме той, что он будет).
...
Next-gen MMO должна была быть с уклоном в сторону экшна, потому что всё туда уклоняется, и предвидеть тенденции на рынке ММО, чтобы к своему выходу не быть морально устаревшим продуктом.
...
И вот вышел D3, и мне очень приятно там видеть те вещи, которые я, натурально, предвидел (это не сложно). Ну, например —
...
1. Простые статы.
...
Ну, я писал.
...
2. Либеральное отношение к оружию.
...
Все запреты на оружие для разных классов — пережиток прошлого.
...
Тут несколько простых доводов.
...
1) Стилистика. Нет никаких разумных причин ограничивать оружие, типа «воры могут использовать только кинжалы». Это приводит к недовольству игроков («я хочу играть магом с огромным топором!») и увеличивает количество контента (надо рисовать много разного оружия).
...
Если всем дать использовать всё оружие — будет радость и благодать.
...
Чтобы было не так монотонно, можно каждому классу дать его token оружие (что они и сделали).
...
Та же логика распространяется и на доспехи.
...
Вообще очень приятно смотреть на D3 и видеть продюсерские решения, «на чем экономим» и понимать, откуда они растут. Да, многомиллиардная компания экономит на производстве, боже мой.
...
2) Математика. Сначала делаем оружие для воинов, пишем на нем «плюс 10 урона». Потом делаем отдельное оружие для магов, пишем на нем «+10 магической силы». Потом балансируем и то и то и запрещаем использовать чужое. Поздравляю, мы сделали одну и ту же работу два раза!
...
Правильный ответ, конечно же, «делаем одно оружие и пишем на нем +10 урона, и маги и воины могут использовать его».
...
Я даже обдумывал принципы анимации боя для некоторых «не-оружейных» классов. Получился ответ, в духе «обычно персонаж держит оружие в руке, а во время атаки тупо делает вид, что его нет». Прям как монк в D3.
...
3. Крафтинг с salvage-ингом.
...
Тут тоже все просто: разбираем 10 вещей — собираем из них одну. Так как КПД = 10%, вечно создавать вещи нельзя.
...
Я хотел сделать побогаче: вещь разбирается не на две составляющие, а на N, где N — количество характеристик. Потом из этих «эссенций характеристик» можно управлять крафтингом («сделать вещь с ловкостью»). В D3 крафтинг — это замен гамблинга, который был в D2.
...
4. «Билд — это кнопки на экране».
...
Ход мыслей был такой: ну да, есть таланты, есть красивые деревья и прочие сложности выбора. Никому не нужные, потому что в конечном итоге перед игроком панель с кнопками, в которую он может напихать миллион спеллов, как в WoW. Или всего четыре, как в LoL.
...
Ну то есть в LoL-е герои отличаются друг от друга фактически тем, что у каждого свой набор из четырех уникальных спеллов. Да, игрок их не может менять, «но это ничего не меняет», если рассматривать отельного героя как вариант билда.
...
Я хотел сделать панельку с 7-ю спеллами, а всего, скажем, 42 спелла. Больше семи взять нельзя, хочешь другие — меняй билд. Каждый спелл можно улучшать отдельно.
...
В итоге в D3 всё вышло примерно так же, но с нюансами, характерными для hack-n-slash (билд можно менять на лету, хотя в бете это надо было делать в городе — для игры с таким темпом это правильно, в MMO я бы давал менять билд за СМС-ки. И это не шутка).
...
Ну и так далее.
...
Нет, я не говорю, что «я это придумал первый». Ничего давно придумывать не надо, создание игры — это ряд задач, которые надо решить своей головой. То есть осознанно дать ответ на вопросы, типа «как мы делаем лут и почему».
...
Понятно, что обычно ответы даются в духе «мы делаем всё точно так же, как у конкурентов/предыдущей успешной игры, чтобы не дай бог ничего не сломать».
...
И это не решение, а перекладывание ответственности. Но люди идиоты.
...
Правильно — «мы делаем это так-то и так-то, у этого такие-то плюсы и такие-то минусы».
...
(В качестве лирического отступления: даже в D3, кстати, видна эта тенденция «лишь бы не поломать» и чеклисты. Уровень с песком? Check. Обязательный спуск в канализацию? Check. Cow level? Check.)
(еще 34 слова)
So anal
...
В хорошей игре на айфоне — Battle Nations — есть что-то типа PvP.
...
Это вообще такая типа ферма с PvP (я всегда хотел сделать что-то подобное).
...
Там можно нападать на друзей и грабить их корованы.
...
Бесплатная и с великолепными смешными текстами.
...
При нападении на человека у него не теряется ничего, но при этом нападающий как бы «ворует» ресурсы, потому что ему-то прибавляется. Можно ставить защитные башни, чтобы поменьше нападали.
...
Защитные башни потребляют ресурсы. А при успешном нападении на тебя — еще раз — ресурсы не отнимаются.
...
Выигрышная стратегия? Забить на башни, «от меня не убудет».
...
И тем не менее, примерно каждый четвертый-пятый ведет себе, как анальная жопа, зачем-то отгораживая свою базу башнями.
...
Вывод?
...
А я не знаю. Выбирайте на собственный вкус.
...
1. Люди идиоты. Создатели игры идиоты, потому что не смогли объяснить, что быть ограбленным — не страшно (и зачем-то сделали защитные сооружения!). А игроки идиоты, потому что этого не поняли.
...
2. Люди выбирают не только стратегии, максимизирующие прибыль, но и стратегии, которые «приятней», «веселей», и к которым «лежит душа» и прочие непонятные вещи. Быть ограбленным, например, не приятно. (Ну то есть это всё то же «люди идиоты», но не так обидно!).
...
А игры надо делать как бы для людей, да.
(еще 13 слов)
Auto Increment with MongoDB
Популярная по своей дурости задача «а я не хочу эти длинные id, я хочу увеличивающиеся циферки в качестве айдишников».
...
Несмотря на свою нелепость, она иногда нужна. Например, человекочитаемые номера. «Хуйня номер 10».
...
Самый простой и рекомендуемый всеми способ — хранить где-то отдельно счетчик и менять его с помощью findandmodify (для чего в php нет отдельного метода, но можно через command).
...
Но можно сделать проще!
...
Если это хорошая, правильная таблица, из которой ничего не удаляется, то мы можем посчитать «номер записи» в таблице тупо зная тот факт, что нативные MongoId увеличиваются со временем и по ним можно сортировать не хуже, чем по какой-нибудь «дате создания».
...
Короче, как-то так:
...
$mongo -> insert ($U);
$inc = $mongo -> find (array ("_id" => array ('$lt' => $U[_id])));
$inc = $inc -> count ();
$inc++;
$mongo -> update (array ("_id" => new MongoId ($U[_id])), array ('$set' => array ("inc" => $inc)));
...
Ограничения очевидны, но часто «и так сойдет», да-да.
(еще 10 слов)
Trello
Я всегда считал, что Joel Spolsky — это такой евангелист, «и всё».
...
Ну, примерно как 37signals, которые только пиздеть и умеют.
...
Не, я краем глаза видел продукты и тех и этих, и че-то как-то не впечатлился.
...
Но вот Trello, который Fog Creek сделали — реально клевая штука.
(еще 4 слова)