Category: животные

Отступаем, нас окружили!

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

Короче, прикидывая разные способы расстановки юнитов на доске, я понял, почему в героях 1-2-3 сетка была шестигранная. Дело к количестве спрайтов. Смотрите, если сетка вот такая:

...и мы атакуем гоблина с позиций 1, 2 или 3, мы можем в принципе ничего не менять и использовать один и тот же спрайт, бьющий вправо от себя. Такой же, как все ребята, что стоят слева. Форма шестиугольника гарантирует, что враг всегда будет немного правее, так что терпимо.

Для позиций 4, 5 и 6 мы зеркалим спрайт. Вуаля! Нужно рисовать каждый спрайт только в одном (!!!) варианте. А юнитов в героях ого-го сколько!

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

Если взять параллельную квадратную сетку, как тут (wargroove):

то напасть можно слева, сверху и снизу, а это уже три варианта каждой анимации (лево-право зеркалятся, верх-низ не). Три варианта это прям тяжеловато.

Дальше идет сорокапятиградусная изометрия. Как в Into The Breach:

Тут положения всего два — мордой вниз и мордой вверх, вариации лево-право идеально зеркалятся. Уже лучше.

В Into the Breach, кстати, решили даже этим не заморачиваться и вообще не крутят юнитов. То есть если надо напасть назад, то бьют жопой. Тоже вариант, решает кстати проблему из предыдущего поста, что не очень хочется разглядывать юнитов со спины. И не такой уж плохой, как кажется — я наиграл 26 часов и понятия не имел, что у них атаки так топорно сделаны, пока не загрузил и не начал изучать специально.

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

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

Ну а в пятый уже было настоящее 3Д, и там можно крутить модели уже как хочешь. И к шестигранной сетке никто возвращаться не стал. Почему? Моя гипотеза — квадратная дает больше тактических возможностей: меньше места, сильнее толпятся юниты, проще закрыться. Правда, это если не разрешать диагональные атаки, а они в пятых были.

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

усы2

Влезай — убъет. Правила жизни

Стой под стрелой. Мочи манту. Корми животных. Дели на ноль. Кури. Зарекайся. Ходи за гаражи. Лезь в драку. Понижай градус. Пей из-под крана. Плюй в колодец. Суй нос в чужие дела. Тяни резину. Прислоняйся. Сори. Бей девочек. Перечь старшим. Надевай белое. Ходи по газонам. Сутулься. Лезь на рожон. Свисти в доме. Входи к посторонним. Суди по обложке. Плюй против ветра. Держи зла. Ищи виноватого. Гуляй с незнакомыми. Пытайся повторить это дома. Рой яму другому. Выноси сор из избы. Сидишь на суку — руби.
усы2

Потрачено

Пишешь веб — наешься интернет эксплорера. Такой крутой, что можешь забить на эксплорер? Наешься адаптивности под мобилки. Пишешь веб в контролируемом окружении? Наешься джаваскрипта и тормозов. Убежал на iOS? Замучаешься с Objective-C. Передумал и взял Андроид? Наешься квадрилиона девайсов, все разные. Пишешь desktop UI? Готовсья, что нормального фреймворка нет от слова нигде. Окей, бэкенд? Наешься администрирования линукса, зоопарка языков, сборок, dependency hell и опенсорса. Big data? Хадуп и докер, прости господи. Игры на PC? Привет от C++ и зоопарка железа. Консоли? Баги, лимиты, отсталый инструментарий.

Такое ощущение, что куда ни сунься, везде обязательно есть хотя бы одна вещь, которая торчит, мешает, с чем все поголовно борются, каждый в меру своих сил. Ни совершенства, ни покоя. Куда податься?
усы2

Навык привычки

Около месяца назад я решил оптимизировать клавиатурную раскладку. Прикинув, сколько и чего я пишу в последнее время (Clojure, CSS, русский/латинский текст), я сделал следующие оптимизации:

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

Общее направление — минимизировать количество нажатий шифта, что должно уменьшить нагрузку на пальцы. Это не универсальный рецепт, многое зависит от того, чем вы занимаетесь — скажем, в CSS и в JS имеет смысл вынести на безшифтовой режим фигурные скобки.

Я даже написал тулзу, чтобы научно обосновать свои действия, вот примерный выхлоп:

    cljs (97) —————————————

    backslash            \      503           81   |
     brackets           []    25786         3142   {}
        colon            ;     5079  <<     7769   :
         dash            -    23239         1606   _
      numbers   1234567890     9598  <<    85609   !@#$%^&*()
         plus            =     1866          490   +
        punct           ,.     8730         1651   <>
       quotes            ‘      827  <<     8544   “
        slash            /     4575         4226   ?
        tilda            `      142           10   ~

    css (7) —————————————

     brackets           []       26  <<      600   {}
        colon            ;      818          866   :
         dash            -      564          184   _
      numbers   1234567890     1757          458   !@#$%^&*()
         plus            =       11            1   +
        punct           ,.      560           51   <>
       quotes            ‘       60           24   “
        slash            /       56            0   ?

    js (2) —————————————

    backslash            \       71  <<     1094   |
     brackets           []     2564  <<     9168   {}
        colon            ;     4736         5409   :
         dash            -     1516  <<     2917   _
      numbers   1234567890     5437  <<    25052   !@#$%^&*()
         plus            =     6720          970   +
        punct           ,.    20530          549   <>
       quotes            ‘     2794  <<     6924   “
        slash            /     5279          517   ?
        tilda            `     1492            2   ~

Две цифровые колонки посередине — это частотность символов из группы. Знак << означает что имеет нехилый смысл поменять кнопку и ее шифтовый эквивалент.

Подобные оптимизации дают маргинальное преимущество — да, пальцы надо тянуть чуть меньше. Наверное, сравнимо с эффектом от раскладки Дворака — пять, может десять процентов облегчения/скорости/снижения ошибок. Приятный эффект, например, состоит в том, что я могу набрать что-то подобное, не прикоснувшись к шифту:

(let [[x & xs] @atom]
  (swap! *context* #(assoc % :key "abc")))

Самое интересное здесь — это процесс адаптации. Для меня это не новый опыт — у меня уже есть клавиатура с нестандартной раскладкой, вот такая:

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

И они оказались правы. Примерно так процесс адаптации и происходит. Я прошел его один раз с клавиатурой, и вот недавно второй раз с новой раскладкой.

Забавнее всего, что в процессе обучения подобным механическим навыкам не участвует личность. Мы привыкли говорить — я знаю, я умею, мне нужно научиться. Здесь личность только мешает — учиться неохота, эмоции переполняют, ничего не получается, выигрыш далеко за горизонтом и вообще сомнительный. Проще всего к тренировке подойти отстраннено: как будто ты не себя тренируешь, а собаку. Чужую какую-то собаку. На входе энное количество механических повторений, некая регулярность. На выходе собака умеет печатать. Хочет она, не хочет, даже если она принципиально против — обучение встроено в организм и мозгом не управляется. Если есть тренировка — собака научится. То, что личность собаки в данном случае совпадает с инициатором тренировки — необязательная деталь.

То же самое и со многими другими видами обучения — новый редактор, новый язык программирования, новый курс на Курсере. Полезно смотреть за собой, улавливать структуру поведения, четко разделять цель (научиться чему-то), процесс обучения и собственную эмоциональную реакцию на него. Последнее надо научиться изолировать — эмоции идут и развиваются сами по себе, влиять на процесс они не должны.

(no subject)

И еще про Штирлица анекдот, текстовый.

Штирлиц напоил собаку бензином и отпустил. Собака пробежала 5 метров и упала. "Наверное, бензин кончился," -- подумал Штирлиц.

Трамвай

В детстве, этот журнал взорвал мой мозг. И взрывал каждый раз, когда я его перечитывал. Я просто не мог понять, что там происходит. Где они издеваются, где острят, а где серьезно. Взрослому человеку не объяснить, у него всегда есть почва под ногами, он может себе представить, что за любым текстом, даже за текстами Хармса, стоит вполне определенный человек -- его автор, который сидит и высасывает всё это из пальца. А у меня этой почвы не было. И вот как воспринимать, например, ситуации, когда первый стих подписан "Тим. Собакин", второй текст подписан "Ника Босмит", третий -- "Тим. Собакин, который и есть Ника Босмит (если прочитать наоборот)", а в четвертом эти двое сами -- герои текста!!! Я просто не понимал, что происходит. Никак. Я не знал, что думать. То ли это автор, о котором написали рассказ. То ли это герои рассказа, которые пишут рассказы (как? они же герои). Я не мог представить себе ситуацию, в которой это было бы возможно и уместно. "Перевел с шотландского, хотя на самом деле с норвежского...". Да уж. И еще сквозные аллюзии с экипажем трамвая. В каждом втором тектсе кто-нибудь нет-нет да упоминался, типа, он тоже пассажир Трамвая. И все читатели тоже. А я никак не мог взять в толк -- куда ж там столько народу? И обозрим и конечен ли вообще этот Трамвай как транспортное средство? Как все это выглядит? Как представить его?

Сами тексты не отставали

---

Задача на асфальте

Дано: Летят по небу
кошки.
Одна -- пингвин
другая -- слон.
На них напали
две картошки.
одна -- тюльпан
другая -- клен.
Но их разняли
две вороны:
одна -- кулик
другая -- грач...

Найти: С какого же балкона
упал, рассыпавшись по ветру,
смешав заданья и ответы,
довольно странный сборник этот
"Арифметических задач"?
Еще найти: КОМУ ЖЕ СБОРНИК
ВЕРНУТЬ ИЗ ЛУЖИ
ДОЛЖЕН ДВОРНИК?

Пример характерный (стих, кстати, отличный), но, конечно, этим разнообразие материалов не ограничивалось. Там много было, много разного. Они умели рассазывать о интересных вещах интересно. Это был очень познавательный журнал (если, опять же, ты мог отличить, что серьезно, а о чем они шутки шутят). Что они только не писали: о строении вещества, древнегреческих философах, анимации, букве "Ё", троянском коне, поиске кладов, о Носе ("не по Гоголю"), о сне (как Пушкин во сне писал стихи, а химик Кекупе придумал формулу бензола), о графологии и об изгнании тараканов из квартиры.

---
Слон-любящий-отвечать-на...

Как научить кузнечика плавать?

* Нужно лечь в лужу и показать, как это делается (Катя Маслова, 11 лет, г. Чебоксары)
* Надо бросить в воду его любимое лакомство (Андрей Гончар, 11 лет, г. Севастополь)
* Надо, чтобы его проглотила лягушка и пошла купаться (Дима Вагин, г. Орел)

Откуда берутся мысли?

* Мысли берутся из зависти перед другими мыслями (Лида Зайцева, 11 лет, г. Волгоград)
* Мысли прилетают из далекой страны Мысляндии (Паша Волченко, 9 лет, г. Донецк)
* Они лезут изо всех щелей! (Таня Свистунова, 12 лет, г. Горький)

---

Это лучший детский журнал на свете. Он ничего никому не навязывает. Он пробуждает интерес в самом лучшем смысле этого слова. И он позитивен на 100%, задирст и остроумен, и опять же все только в лучшем смысле. Он разнообразен и красив (ах, какие там иллюстрации были...). Трамвай -- одно из лучших и самых далекоидущих впечатлений детства.

Архив номеров лучшего в мире детского журнала. (90-91 год, как говорят, лучшие).