Category: животные

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

усы2

ЮАР туда и обратно

Сб

Выгружаюсь из такси. В воздухе океан. Запах невкусный, но приятный. Три негра внимательно провожают взглядами. Лифт в доме — шкаф с дверью на улицу. Оказвается, они ждут диван.

Вс

Просыпаюсь в 7. Ревут чайки. На поляну перед домом садятся парашютисты. Роберт набирает меня видеозвонком, смотрим друг на друга минуту, сбрасываю. На скамейке перед океаном пахнет говном. Роберту мало рукопожатия и он тянется обниматься. Пугаюсь негритянки-альбиноса в кафе.


Пн

Просыпаюсь от рева чаек. Водитель считает, что Никита — женское имя. Торопит заводить детей. Обнимаю в офисе пять человек. Девушка с работы узнала на улице, сияю несколько минут. Лунное затмение закрыло луну на четверть. Бегаю смотреть пять раз.

Вт

Самый теплый день. Переспрашиваю водителя. Четыре раза. Из шнура идет черный дым. Руководство дарит ежедневник на пять лет. Солнце полностью опускается в океан за 2,5 минуты. Бомжи представляются по имени, прежде чем просить денег. Дом стоит между двумя отелями, церковью и виллой, но возвращаться в темноте тревожно. Встречаются поровну крысы и люди.


Ср

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


Чт

Встаю в 6:30. Закипает чай, просыпаются чайки. Водитель спрашивает столицу России. Гарри Поттер стоит и в детских книгах, и во взрослых. В кино у Бессона волшебный пролог. Океан штормит. Ночь. Останавливаюсь смотреть на толщу воды, страшно до усрачки. Ветер теребит жалюзи изнутри.

Пт

Мне не срочно. Хожу смотреть на волны. Дождь падает обратно в океан. Работа заканчивается раньше пробок. Когда некуда спешить, начинаются самые интересные разговоры. Первый белый таксист-расист. Угадываю ему ответ в викторине. Все повторяется по второму разу. Туман уже был. Волны уже видел. Та же пицца с тем же авокадо. Объективы приходят смотреть на закат. Волны на фото получаются маленькие и глупые. Темнеет, нападают мухи. Во второй раз.


Сб

Через балкон живут римляне. Обедаю у греков. Официантка спрашивает, что я сегодня делаю. Из вежливости, конечно. Покупаю шарф, иду смотреть на рыб. У крабов дискотека. Рыбы плавают обиженные.

Вс

Обедаю с голубями и стариками. Утки останавливают день. Продукты хранятся без холодильника.


Пн

Ужинаю в порту. Порт светится и пищит.

Вт

Толстый хомяк лезет на дерево. Пингвины пахнут.


Ср

Киты приплывают, когда их уже не ждут. Дасси не получают никакой рекламы. Пингвины живут в норах. 


Чт

Рука замерзает за минуту вне одеяла. Окна выходят на океан, но вид преграждает отель.


Пт

Закат размазали пальцем. Альпака чешет себе пузо.

Сб

У овец стоит рекламный баннер. Овцам рекламируют телешоу. Ем бургер из страуса.


Вт

Возращаюсь в Москву. «Почему стоите, не проходите?» Начинается пост-путешественная депрессия.

усы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 год, как говорят, лучшие).