So anal
В хорошей игре на айфоне — Battle Nations — есть что-то типа PvP.
Это вообще такая типа ферма с PvP (я всегда хотел сделать что-то подобное).
Там можно нападать на друзей и грабить их корованы.
Бесплатная и с великолепными смешными текстами.
При нападении на человека у него не теряется ничего, но при этом нападающий как бы «ворует» ресурсы, потому что ему-то прибавляется. Можно ставить защитные башни, чтобы поменьше нападали.
Защитные башни потребляют ресурсы. А при успешном нападении на тебя — еще раз — ресурсы не отнимаются.
Выигрышная стратегия? Забить на башни, «от меня не убудет».
И тем не менее, примерно каждый четвертый-пятый ведет себе, как анальная жопа, зачем-то отгораживая свою базу башнями.
Вывод?
А я не знаю. Выбирайте на собственный вкус.
1. Люди идиоты. Создатели игры идиоты, потому что не смогли объяснить, что быть ограбленным — не страшно (и зачем-то сделали защитные сооружения!). А игроки идиоты, потому что этого не поняли.
2. Люди выбирают не только стратегии, максимизирующие прибыль, но и стратегии, которые «приятней», «веселей», и к которым «лежит душа» и прочие непонятные вещи. Быть ограбленным, например, не приятно. (Ну то есть это всё то же «люди идиоты», но не так обидно!).
А игры надо делать как бы для людей, да.
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)));
Ограничения очевидны, но часто «и так сойдет», да-да.
Trello
Я всегда считал, что Joel Spolsky — это такой евангелист, «и всё».
Ну, примерно как 37signals, которые только пиздеть и умеют.
Не, я краем глаза видел продукты и тех и этих, и че-то как-то не впечатлился.
Но вот Trello, который Fog Creek сделали — реально клевая штука.
Diablo III is coming to town
Ну че, кто каким классом будет играть?