08 February 2024

Генеративные алгоритмы, продолжаем наблюдение

Не все с этими новомодными AI алгоритмами так уж и плохо.
Я вот, к примеру, недавно пописал код на C# в Visual Studio 2022 и был приятно удивлен качеством подсказок, которые мне выдавались по ходу работы. Чаще всего они были тривиальными, из области каких-то общеизвестных алгоритмических вещей (типа поиска минимального или максимального значения). Да и объем анализируемого кода, исходя из которого можно было бы сгенерировать такого рода подсказу, обычно весьма скромный, на уровне класса из двух-трех десятков строк. И сами подсказки, как правило, ограничивается строго одной строкой. Но, тем не менее, работа в связке с такими вот полуавтоматическими подстановками кода это особый, весьма прикольный опыт. 

С другой стороны, надо понимать, что где-то в 10-15% случаев подсказки оказываются нерелевантными и это, на самом деле, большая проблема. Получается, что программист все равно должен напрягаться в полную силу и держать в голове корректный код. И вряд ли кто-то всерьез будет считать, что главное достоинство такого рода подсказок заключается в том, что ты просто набираешь чуть меньше букв -- производительность программиста редко когда упирается просто в скорость набора текста. 
Короче, из-за несовершенства алгоритма подсказок, получается ситуация точно как с автопилотом в электрокарах Tesla. Он вроде как есть, но доверять ему нельзя и нужно все время следить за тем, что он делает и за ситуацией на дороге. Потому что иногда он ошибается и такого рода ошибки могут стоит жизни пассажирам авто. При написании кода ставки, безусловно, не столь высоки, но уверен, что активно пользующиеся такого рода фичами, могут рассказать о случаях, когда машинально принятая подсказка приводила потом к потерянному времени в отладчике и тщетным попыткам найти непонятно откуда взявшийся баг в совершенно банальном коде.  


***

И если мой опыт с AI в Visual Studio это скорее позитивная история, то вот общение с ChatGPT это бесконечная череда разочарований. 

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

Вот список проблем:

  • потеря контекста в самых простых и однозначных диалогах. Машина внезапно "забывает" то, о чем вы общались буквально одно-два предложения назад и начинает выдавать совершенно нерелевантные ответы, без учета очевидных, подразумевающихся из контекста, факторов. Например, с самого начала код просили писать на C++, а через пару промптов выдача почему-то начинается на другом языке программирования.  
  • выдача абсолютно общих, бессодержательных ответов на конкретно сформулированные запросы. 
  • выдача откровенной лжи и некорректной информации (т.н. эффект галлюцинаций). Иногда речь идет о совершенно базовых и общеизвестных вещах, сведения о которых находятся в Википедии за пару секунд. 
  • работа в режиме безграничного доверия и потакания клиенту: исходные запросы и утверждения имеют какие-то сверхприоритеты в системе, поэтому их содержание очень часто перекрывает истинное положение вещей. Если в запросе попросили перечислить виды слонов, обитающих в Латинской Америке, то AI кинется их перечислять, а не поставит под сомнение изначальную корректность этой просьбы.  Если человек скажет, что написанный выше (абсолютно корректный) код не компилируется, то AI готов до бесконечности искать, находить и "исправлять" несуществующие ошибки. 

Несколько иллюстраций. 

Вот, к примеру, мой запрос о сравнении работы SIP протокола поверх TCP и поверх WebSocket. 
Абсолютно некорректная (и просто бредования) выдача:

Кто не в курсе, WebSocket это надстройка поверх TCP, т.е. быть более эффективной и легковесной она просто не может быть по определению.  

Так же ужасно обстоят дела с "написанием" кода. Однажды попросил написать сохранение скриншота окна в BMP файл под Windows. Сразу получил достаточно правдоподобный код, который скомпилировался и даже сохранял BMP файл при работе. Только файл был некорректного формата и не открывался ни одной программой. После нескольких безуспешных итераций в попытках исправить код (во время которых мне на руки стали выдаваться версии, которые уже просто не компилировались), AI предложил кардинально сменить стратегию и начать использовать для работы с BMP изображением какой-то там специализированный COM класс, который тянет внешние зависимости. На выходе получился принципиально новый код, который, разумеется, тоже корректно не работал. И не заработал даже после того, как я намекнул AI, что нужно все-таки не забывать вызывать CoInitialize (кстати, код имел кучу точек отказа и ноль строчек для их диагностики и обработки). После ряда безуспешных попыток на свет родилась еще одна, принципиально новая, версия с использованием GDI+. Точно такая же неработающая. 

По итогу, потеряв полчаса, я пошел гуглить и через 10 секунд нашел идеально работающую версию необходимого кода на StackOverflow (на 99% совпадающую с примером из MSDN).  
Даже не знаю, что тут еще комментировать... Кстати, а как там обстоят дела с запретом на использование AI для написание ответов на SO? Он все еще действует?  

Мне вообще повезло, потому что все закончилось относительно быстро, но вообще в жизни случаются куда как более веселые истории. Вот тут рассказ о том, как человек попросил ChatGPT сгенерировать ему LUT обработку данных для Python. Буквально 10 строчек кода, с которыми человек потом сношался несколько часов. Знаете почему? Потому что AI при вызове функции рисования графика почему-то переставил координаты x и y местами. Ошибка, с которой можно бороться очень, очень долго даже в таком маленьком объеме кода...  

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


01 December 2023

Про хобби вне работы

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

Пару месяцев назад поставил себе игрушку "Human Resource Machine", в которой надо решать задачи путем программирования. Визуализировано это дело через трудовые будни офисного работника, но используемый язык программирования при этом весьма примитивен и больше всего похож на язык ассемблера. Из-за чего даже самые простые задачи решаются весьма многословно и крайне моторошно. Но, не смотря на все это, игруха меня так крепко зацепила, что я начал рубиться в нее просто в режиме запоя и не успокоился, пока полностью не добил в течении нескольких дней.  

А теперь спросите меня, чем я занимаюсь на работе...

 

Сегодня случился еще один конфуз из той же серии.
Читая очередную статью о том, что не надо людей на собеседованиях насиловать алгоритмическими задачками с LeetCode, я наткнулся в ней на пару примеров этих самых задач. Сам я всегда был категорически против задрачивания такого рода заданий, которые имеют около нулевое практическое применение и относятся больше к области математики, чем к программированию, но... Одна из задачек прям засела в голове и не отпускала, пока я сел и не решил ее. А потом еще одну. И еще. 

Я вообще чертовски далек от всех этих продвинутых фокусов типа "динамического программирования", алгоритмов балансировки деревьев, бла-бла-бла, но решение задачек оказалось чертовски увлекательным и аддитивным занятием, даже более веселым, чем пазлы в "Human Resource Machine". 

На некоторых задачках получилось показать даже весьма приличные результаты:


Интереса ради посмотрел на лучшие ответы для решенных задач на JavaScript, чтобы понять, как они соотносятся с эффективностью моих C++ решений. 

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

По итогу, как набор пазлов, LeetCode штука прикольная, но насиловать этим людей на интервью -- упаси госпади!





04 November 2023

Как я оказался в Тулче, хоть изначально даже не знал о существовании этого города...

Вообще за Румынией водится много печальных рекордов в области ДТП.
К примеру, по итогам 21-го года, именно Румыния была на первом месте в Евросоюзе по количеству смертей вследствие происшествий на дорогах. Что представляет из себя эта статистика на практике мне удалось испытать на собственной шкуре. 

Крошечный, ничем не примечательный, румынский городишко Мэчин.
Перекресток, где наша машина должна была уступить главную дорогу. В плане обзора перекресток просто ужасный, прям вот хуже не придумаешь. Перед ним -- знак "STOP". Жена за рулем, она останавливает машину и начинает медленно въезжать на перекресток, чтобы получить ну хоть какую-то видимость. Я на долю секунды моргаю, а когда открываю глаза, то вижу, что наша машина въезжает в бок автомобиля, который летит по главной дороге...

Местный житель города Мэчин по имени Ник вечером пятницы вез троих детей из школы.
Путь от его дома до школы -- пять минут от силы. Но доехать за пять минут это очень долго и неинтересно, особенно в вечер пятницы. Поэтому Ник летит по родному городу на скорости 120 км/ч. В том числе и через все перекрестки с никакущей видимостью, где дополнительно стоят знаки ограничения скорости и даже зеркала, чтобы хоть как-то видеть, что происходит на пересекающих главную дорогах... 
А жена Ника, пребывающая в этот момент дома, за руль, кстати, сама сесть не может. Она сидит без водительских прав. Потому что три недели назад их у нее забрал местный полицейский по имени Мэдолин. И забрал их за злостное превышение скоростного режима.   

По итогу все участники ДТП, можно сказать, отделались легким испугом. Мы то знак видели и поэтому двигались на минимальной скорости, готовые в любой момент уступить дорогу. Но когда на перекрестке с таким обзором кто-то летит на скорости 100+, пересечь его безопасно становится практически невыполнимой задачей...

По жизни я вообще не фаталист. Человек не суеверный. Но когда с тобой происходит такое, волей-неволей лезут в голову всякие странные мысли. Если бы наша машина заехала на это злополучный перекресток буквально на секунду раньше, то последствия могли бы быть немного печальнее. 
И вот ты начинаешь что-то вспоминать, анализировать, прокручивать. Подъезжая к городу останавливались, чтобы сбегать в кусты у дороги. А могли бы и не останавливаться -- нам до отеля в Галаце ехать оставалось меньше часа. Или вот, допустим, черт с ним, остановились, но ты на один раньше меньше бы стряхнул и сложилось бы все по другому... 
Но самое интересное, что прокручивая в голове десятки факторов из-за которых моя семья могла бы прекратить свое существование в этом месте, в это самое время, я понял, что самый главный фактор, он всего один. 
24 февраля 2022 года. 

 



22 July 2023

Дегенеративный AI

После нескольких первых сессий с ChatGPT я оказался в числе тех, кто с огромным скепсисом воспринял новую технологию. 

Безусловно, это прикольное свойство такого рода алгоритмов -- вести вроде как осмысленный диалог, с "пониманием" его текущего контекста, но вот к потенциальной пользе такого рода "бесед" есть большие вопросы.
Практически все мои диалоги на профессиональные темы (т.е. по теме программирования) состояли из некорректных и крайне сомнительных ответов машины, хоть какой-то "смысл" из которых мог бы извлечь разве что специалист, глубоко разбирающийся в теме. Новичка же программирование с подсказками AI будет постоянно заводить на крайне опасные территории. И нет ничего удивительного, что сообщество "Stack Overflow" практически моментально среагировало на появление ChatGPT тотальным запретом на постинг результатов работы этого алгоритма в качестве ответа на задаваемые вопросы. 

Да ладно, хрен с ним, с программированием, я вот сегодня, смеха ради, закинул в ChatGPT совсем простой запрос "best coop platformers of all time" и получил (вместе с предупредительным "это очень субъективно") следующую десятку игр:
    New Super Mario Bros. Wii (2009)
    Rayman Legends (2013)
    Cuphead (2017)
    Donkey Kong Country: Tropical Freeze (2014)
    Trine 2 (2011) 
    Overcooked 2 (2018) 
    LittleBigPlanet 2 (2011) 
    Super Mario 3D World (2013) 
    Guacamelee! (2013) 
    Lovers in a Dangerous Spacetime (2015) 

Все хорошо, не считая небольшой проблемы -- "Overcooked 2" и "Lovers..." это не платформеры никаким боком.  



Т.е. даже в самой тривиальной выдаче 20% информации это мусор, для отсеивания которого не нужны какие-то супер специфические, экспертные знания.  

Ради продолжение шоу ввел точно такой же запрос три минуты спустя.
Получил следующую десятку:
    Super Mario Bros. Series (Various Nintendo Consoles)
    Rayman Legends (Multiplatform)
    Donkey Kong Country Series (Various Nintendo Consoles)
    New Super Mario Bros. Series (Nintendo Consoles)
    Castle Crashers (Multiplatform)
    Cuphead (Multiplatform)
    Trine Series (Multiplatform)
    LittleBigPlanet Series (PlayStation Consoles)
    Spelunky 2 (Multiplatform)
    Guacamelee! Series (Multiplatform)

Какие изменения мы видим в новом списке? 
Во-первых, AI почему-то начал писать про серии игр (6 элементов в списке), хотя запрос был точно такой же и спрашивали его просто про игры, а не серии. 
Во-вторых, если сохранять хоть какую-то системность выдачи и исходить из серий, то мы должны были бы видеть "Spelunky Series", которая представлена точно так же всего двумя играми как и "Guacamelee!". 
В-третьих, в выдаче по прежнему есть мусор -- "Castle Crashers" это не платформер. 
В-четвертых, а куда подевался год выпуска? Почему в первой выдаче он был, а во второй этот момент перестал быть важным и появилась платформа?  
И вообще, а это в принципе правильно, что каждый свой ответ AI генерирует, имея глубоко в фундаменте огромный фактор случайности, и ни один из пяти одинаковых запросов не даст одинаковый результат?  

Теперь про выводы из всей этой истории.
В своем текущем виде такого рода AI алгоритмы мне видятся не то, чтобы полезными, а даже вредными. Подкупающая простота получения глубоких "аналитических" ответов по абсолютно любой теме приводит к тому, что многие, в силу лени, принимают их за истину в последней инстанции, даже не пытаясь задействовать минимальный уровень скепсиса и производить хотя бы поверхностную предварительную проверку. 
А многие держатели ресурсов с контентом уже начали потирать ручки, надеясь заваливать свои сайты дешевым генерированным материалом типа "Лучшие TWS наушники, которые вы можете купить прямо сейчас" или "Десять причин, почему вам стоит попробовать анальный секс". Сеть начала активно заполняться информационными помоями, которые представляют из себя миллионную перекомпиляцию того, что уже давно было написано людьми, с досыпанным ворохом ошибок, неточностей и дезинформации...
 
Как говорится, добро пожаловать в Web нового поколения
 



03 May 2023

Лытдыбр

Решил отписаться по всяким мелочам, чисто чтобы не терять форму и чтобы Google этот бложек на радостях не перевел в архивное состояние.

Погнали!


***

Зеленский сегодня (3-го мая) внезапно прибыл с визитом в Финляндию. 

Сообщаю об этом ребенку и получаю ответ в духе времени:
- А что его выпустили? Ему разрешили выехать?  


***

На Steam Deck периодически поигрываю в игры Nintendo в эмуляторах (угу, сейчас это "Advance Wars").

Постоянно спотыкаюсь о бесячую проблему, которая доставала и дома, когда в течении дня мог играть во что-то и на Switch и на ПК. Речь идет про разное расположение кнопок на геймпадах. 
Испокон веков у большой N кнопка "A" находится правее кнопки "B". У Microsoft же все наоборот. Причем с точки зрения логики использования, функции кнопок "A" и "B" аналогичны на обоих платформах -- первая это операция подтверждения, а вторая -- отмены. 

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

Для гайдзинов, естественно, геймпады адаптировать никто не стал. И так пусть в ноги кланяются после своих Atari. 


***

Смотрю потихоньку сериал "Mad Men" про будни рекламного агентства в Нью-Йорке 60-х. 

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

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

А ведь раньше это практически был билет на большой экран или в телевизор...

Что касается самого сериала -- он очень крутой. Правда, похоже, что четвертый сезон был пиком. Досматриваю сейчас пятый и вижу, что сценаристы как-то подисчерпались и медленно дрейфуют в сторону "jumping the shark".

11 February 2023

Steam Deck: первые впечатления

Прошлой осенью стукнуло четыре года, как у меня в доме появился Nintendo Switch. Более чем достаточно, чтобы в полной мере распробовать прелести портативного гейминга. Поэтому, когда Valve анонсировали Steam Deck, я сразу же им заинтересовался. Некоторое время после старта продаж эта консоль была в жутком дефиците и, даже если что и доезжало к нам в страну, у барыг это продавалось по совершенно неприличным ценникам.
Как мы знаем, в прошлом году наконец-то завершилась острая фаза дефицита полупроводников, консоль начала свободно продаваться, а значит некоторые товарищи, доставляющие к нам консоли из Европы, поумерили свои аппетиты. 

Так как у меня за плечами богатый опыт использования актуальной портативки Nintendo, то, рассказывая о Deck, я буду, в первую очередь, сравнивать конкретно эти две приставки. 

И еще. Deck, как и Switch, умеет работать в док-режиме, но т.к. лично у меня на хозяйстве есть современный ПК, подключенный к 75" телевизору, и внушительная коллекция Xbox геймпадов, то приставку от Valve я буду рассматривать исключительно в портативном сценарии использования.   


Внешний вид 

Steam Deck очень большой. В сравнении со Switch -- прям таки огромный. 
Если использовать приставку исключительно в помещении, то никаких особых неудобств это не приносит. Она не тяжелая, очень удобно лежит в руках и с ней без проблем управляется даже моя одиннадцатилетняя дочь.  
На самом деле, такие габариты дают немало преимуществ. Есть куда отводить тепло, чтобы оно не проходило через области, где игрок держит руки. Valve не поскупились на огромный хват и держать Deck намного комфортнее, чем плоский как доска Switch. Большой экран в 7", использовать который сильно приятнее 6.2" малыша, который ставят в модели без OLED технологии. 
И, наконец, органы управления -- их много, сильно больше, чем у Switch, и они заметно удобнее. Но про управление надо писать отдельно. 

Во-первых, стики, которые имеют большой ход и по размерам соизмеримы со стиками классических полноразмерных контроллеров, а не с огрызками, которые ставят на джойконы.
Во-вторых, нормальная крестовина, вместо кнопок. Единственная к ней претензия (да и вообще, единственная претензия из области органов управления) -- она не очень удобная для прожима диагоналей в файтингах. Если что, в этом смысле, Switch Pro Controller не сильно лучше.
В-третьих, есть четыре дополнительные кнопки на тыльной стороне, на которые можно цеплять, к примеру, клавиатурные "Enter" и "Escape" для игр, которые не идеально управляются с геймпада.     
В-пятых -- целых два тачпада, которые закрывают вопрос с играми, заточенными под управление мышкой. Дополнительный бонус -- на левом тачпаде, кроме центрального клика, есть еще четыре клика по периметру.

09 January 2023

Heroes of Might and Magic III: как работает сложная система правил

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

К огромному сожалению, оригинальный код игры так и не стал доступен публично, но так как игра имеет прямо таки культовый статус (особенно в русскоязычном пространстве), собралась команда энтузиастов, которая решила просто взять и переписать игру с нуля, стараясь по максимуму повторять поведение оригинала. Проект называется VCMI engine и я, не без интереса, покопался в его исходниках. Особенно в той части, которая касалась реализации описанных выше "исключений из правил". 

Надо сказать, авторы VCMI подошли к решению вопроса основательно. 

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

Во-вторых, та самая сложная система исключений из правил получила название "бонус" и это стало общим механизмом, пронизывающим все игру насквозь. Свойства любого артефакта это перечень бонусов. Любая особенность монстра это тоже бонус. Скиллы героя это бонусы. И все эти бонусы сведены и описаны в одной огромной таблице. Герой, которые научился ходить по воде, имеет в игре бонус WATER_WALKING. Стреляющий во время битвы монстр отмечен как SHOOTER. А если на него кастанули Forgetfulness, то он получит "бонус" FORGETFULL  и разучится стрелять на определенное время (время жизни -- один из атрибутов бонуса). 

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

Схема распространения бонусов в игре

В итоге, к примеру, Ангелы описаны в конфигурационном файле castle.json таким вот образом:

    "angel" :
    {
        "index": 12,
        "level": 7,
        "faction": "castle",
        "abilities":
        {
            "hateDevils" :
            {
                "type" : "HATE",
                "subtype" : "creature.devil",
                "val" : 50
            },
            "hateArchDevils" :
            {
                "type" : "HATE",
                "subtype" : "creature.archDevil",
                "val" : 50
            },
            "const_raises_morale" :
            {
                "stacking" : "Angels"
            }
        },
        "upgrades": ["archangel"],

Массив abilities как раз и описывает бонусы, например, ненависть к дьяволам имеет бонус типа HATE, subtype указывает класс существ, против которых он работает, а val -- процент дополнительного урона. 

14 October 2022

Многоядерность: компиляция и декомпрессия

После апгрейда начала этого многострадального года, когда я переехал с 4х ядерного процессора на 10 ядер, периодически ловлю себя на мысли, что я оказался в ситуации чувака, который купил себе sports car, чтобы каждый день стоять на нем в городских пробках. При казуальных сценариях использования ПК дома хоть какую-то серьезную нагрузку на процессор дают ну разве что игры. При этом для современных многоядерных камней речь идет о нагрузке порядка 30-40%, т.е. две трети мощностей тупо простаивает. Как по мне, для гейминга оптимум по процессору находится где-то в области нынешних бюджетных решений со схемой 4C/8T (при условии, что эти ядра будут работать на достаточно высоких частотах)... 
Да, на моем i5-12600K есть возможность выбивать красивые цифры во всякой там синтетике, типа Cinebench, но синтетика она и есть синтетика и постепенно приходит осознание, что у тебя в ПК стоит процессор, которому вообще-то место не дома, а на рабочем месте в машинах класса "workstation". Короче, в один прекрасный день, наблюдая за тем, как неторопливо идет компиляция проекта на моем ноутбуке для работы (с не самым дохлым i7-10850H), я понял, что мне определенно стоит попробовать стоящий рядом домашний ПК в роли рабочей лошадки. 

Наконец-то дошли руки поставить Visual Studio 2022, а в качестве real-world бенчмарка решено было использовать компиляцию boost (достаточно большую по размеру и сверх популярную C++ библиотеку). Скачал последнюю актуальную версию 1.80, это целых 200 мегабайт исходников. 

Перед тем, как показывать и обсуждать какие-то цифры, напомню, что в одной из прошлых заметок я поделился выводами о том, как нужно оценивать многопоточный потенциал процессора i5-12600K с учетом того, что он содержит в себе аж целых три разных вида ядер -- производительные P-ядра, их виртуальных копии для режима hyperthreading и "экономичные" E-ядра. Многочисленные бенчмарки говорят о том, что для хорошо масштабирующейся нагрузки этот процессор можно интерпретировать как содержащий 10 P-ядер: 6 фактических, +2 ядра дают 6 HT ядер (с коэффициентом 1 к 3) и +2 ядра дают 4 E-cores (с коэффициентом 1/2). Т.е. если какая задача, при переходе от выполнения на одном ядре к работе на всех 16-ти ядрах, ускоряется в 10 раз, то можно говорить о том, что она практически идеально масштабируется под многопоточность. 

27 June 2022

Олдскул по-молодежному

Недавно вышла игра "Teenage Mutant Ninja Turtles: Shredder's Revenge" у которой хватает достоинств, но сегодня мне захотелось поговорить об одном из ее недостатков. 

Расцвет жанра beat'em up пришелся на рубеж 80-х и 90-х годов прошлого века, а самые лучшие его представители, как по мне, были выпущены для 16-ти битной консоли Sega: те же "черепашки", легендарные серии Golden Axe и Streets of Rage. Это я все к тому, что когда сегодня сталкиваешься с игрой, которая во всем старается подражать классике тридцатилетней давности, то последнее, чего от нее ожидаешь это... тормозов и жестких просадок частоты кадров. В своем анализе игры Digital Foundry показывает, что на Nintendo Switch в некоторых моментах фреймрейт проседает вдвое -- ниже 30 кадров в секунду! 

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

15 June 2022

Про лозунг "Армия! Мова! Вiра!"

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

С началом войны случилось обострение у довольно большого числа людей, которые решили, что российский вопрос окончательно можно решить только соорудив пятиметровую стену на границе с соседом, за ней -- ров с крокодилами, всем гражданам одеться в вышиванки, между собой говорить исключительно на мове, а за границы внутреннего культурного пространства вынести не только Пушкина, но и Гоголя с Булгаковым в придачу.  

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

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

С языком разобрались, теперь насчет "веры". Если кто не в курсе, под этим словом в лозунге имеется ввиду религия, а вернее сказать -- Украинская Православная Церковь, которая в начале 19-го года получила Томос, событие, сопровождаемое невероятным количеством политического пиара вокруг него... И мы снова получаем раскол, деление на правильных и граждан второго сорта, ибо Украина по своей конституции это светское государство, в котором свободно живут люди самых разных вероисповеданий и религиозных конфессий, а также атеисты и те, кто вообще не верит ни в какого Бога. Зачем им ваша УПЦ? 

Ну и про последний компонент лозунга -- про армию. 
Начну несколько издалека. На сегодня ствольная артиллерия армии рф на 100% состоит из пушек и гаубиц, произведенных еще в Советском Союзе. Тоже самое можно в значительной степени сказать и про танковый парк, хотя есть у них некоторое количество танков модели Т-90, произведенных уже после 91-го года. 
Это я все к чему -- если в армию вкладывать деньги, как это делал в данном случае СССР, то потом этим ресурсом можно пользоваться даже спустя несколько десятилетий. Если бы Петр Алексеевич реально заботился бы о переоснащении и вооружении украинской армии, то спустя пару лет президентства Зеленского, которого армия типа совсем не интересовала, мы бы все равно имели бы чем воевать. 
А так -- воевать не чем, кроме разного советского барахла, которое старое, изношенное и его мало, а вопрос нашего выживания целиком и полностью находится в руках наших "западных партнеров" и того оружия, которое они нам поставят. Ну или не поставят.  

Ситуацию с армией за последние восемь лет единодушно оценивают все воинские эксперты. Например, Олег Жданов говорит о том, что все эти годы гособоронзаказ был провален. Военный бюджет был на уровне проедания, на него хоть как-то можно было только содержать армию, но не решать вопросы перевооружения и переоснащения. Непрерывный рост военного бюджета, которым любят хвастать некоторые политики -- чистая фикция, этот рост едва закрывал инфляцию в стране. Очевидно, что последствия такого последовательного подхода по снабжению армии, когда не были решены даже относительно простые вопросы, типа производства 152 мм снарядов, мы в полной мере увидели после начала масштабного вооруженного вторжения сил рф.
Вот и выходит, что слово "Армия" в том самом лозунге Порошенко не более, чем пустое слово. Что совершенно не удивительно для нашей политики, основанной на бесконечном популизме и невыполненных обещаниях...   

Вот тыкаешь наугад в какого-то погибшего на этой войне украинского воина-героя, а он при жизни говорил по-русски, в бога не верил, а погиб, блин, потому, что воевать нашей армии толком-то и нечем.
Зато над его телом реет красивый патриотический петин лозунг.
Тот самый, "Армия! Мова! Вiра!". 


21 May 2022

О производительности современных процессоров

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

Тотальный апгрейд домашнего ПК я сделал еще в январе, с той поры активно его использовал, бенчмаркал и всячески экспериментировал, что в итоге позволило накопить ряд интересных наблюдений. Ну и, помимо всего прочего, переезжал я с i5-6600K на i5-12600K, т.е. процессоры одного класса из разных поколений, а это позволяет ретроспективно оценить успехи процессоростроения компании Intel на интервале в шесть лет.    


Многопоточная производительность

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

В случае 12600K тема многоядерности усложняется фактором гетерогенности, в этом процессоре реализовали аж целых три вида ядер: полноценные высокопроизводительные (P-cores), паразитирующие на них hyper-threading ядра и плюс ядра энергоэффективные (E-cores).

01 February 2022

Сказ о том, как мне было лень апгрейдить ПК, но я все-таки сделал это

Лет 30 назад это была главная мечта в моей жизни -- иметь дома персональный компьютер. Поэтому не удивительно, что когда это все-таки случилось в 96-м году, домашний компьютер стал центром Вселенной, вокруг которого вращалась вся моя жизнь. И это при том, что Интернета тогда не было и вообще компьютер не играл тогда роль медиацентра для воспроизведения музыки, фильмов и так далее. Зато на компьютере можно было рисовать и рендрить 3D модели, набирать тексты, делать расчеты для института, программировать и, конечно же, играть в игры. Именно моя безудержная страсть к вычислительной технике в 90-х предопределила мою будущую профессиональную карьеру. 

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

Короче, в какой-то момент апгрейд домашнего компа превратился из праздника в малоприятную трудовую повинность, которую надо было совершать раз в пять-шесть лет. 


***

Последний раз домашний апгрейд я затеял летом 16-го года. Я переезжал с двухъядерного Pentium E6500 на i5 6600K, помимо всего прочего, еще и прикупив себе первый SSD на 256 Гб для установки системы. Видик я не брал тогда от слова совсем, планируя обойтись интегрированным. 

Главный сюрприз от апгрейда преподнесла "мать". На материнках я никогда не экономил и в тот раз взял Asus Z170 Pro Gaming, понятно, что не гейминга ради, а просто как решение определенного качества и класса. И так как мать была игровая, Asus дарила к ней код для бесплатного скачивания Doom 16-го года. А я, хоть и был в тот момент совершенно равнодушен к ПК играм, но все-таки повелся: Doom есть Doom, моя самая любимая игра из 90-х, да еще и пресса тогда ее нахваливала самым безбожным образом. В общем, даже мне, хоть краешком глаза, на него посмотреть захотелось. Тем более, что был код, а на торрентах не было пиратки.

31 January 2022

Про руки программистов — прямые и не очень

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

Сто лет как пользуюсь Notepad++, это бесплатный, функциональный, легковесный и очень быстрый редактор текста с фичами для программистов. Как бы быстрый, ибо есть одна оговорка. Функция поиска текста по множеству файлов работает с совершенно черепашьей скоростью. Если взять за референс аналогичную функцию в Total Commander (где она, судя по всему, реализована максимально прямолинейно, без всяких там фокусов имени Бойера-Мура), то Notepad++ делает это как минимум на порядок медленнее.
Понятно, что речь идет о поиске по данным на диске, доступ к которым, конечно же, может быть узким местом. Но у меня по работе часто бывает, что при рефакторинге многократно ищешь что-то в одном и том же, относительно компактном, наборе файлов, который гарантировано будет закэширован операционной системой в память.

 

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

17 January 2022

Киномарафон на каникулах

Решил в беглой манере написать о том, что получилось посмотреть на новогодних каникулах. 
Поехали!

 "Не смотри вверх" -- кино в крайне редком нынче жанре социальной сатиры, за одно только это его стоит посмотреть. А если к этому еще прибавить неприлично звездный актерский состав, то колебаний насчет просмотра вообще не должно быть. 
Лично мне несколько обидно, что пытаясь препарировать современные проблемы американского общества, режиссер тактично обошел стороной повесточку "diversity and inclusion", увлечение которой в Штатах приняло какую-то совершенно патологическую форму. 
Что же касается идеи о том, что нынешнее состояние общества таково, что оно не сможет сплотиться перед лицом смертельной угрозы, то мне кажется, что тут вполне себе уместны аналогии с COVID эпидемией и, наверное, на практике все не так уж и плохо. Хотя, безусловно, соцсети как источник антиваксерской ереси -- системная проблема, которая хорошо освещена в фильме. 
Забавный факт: сидящий на коксе глава администрации Белого Дома мордой прям один в один наш Ермак. 

"Рука Бога" -- автобиографический фильм итальянского режиссера о своем детстве и родном городе. Нет, не угадали, это не "Амаркорд", хотя солнечная, полная жизнерадостности и веселья первая часть картины довольно сильно перекликается с фильмом Феллини. А если вы не знакомы с деталями биографии Соррентино, то дальше вас ждет весьма неожиданный сюжетный поворот, который направляет течение фильма в совершенно другое русло...
Я считал и считаю, что Соррентино входит в тройку лучших действующих режиссеров, его "Рука Бога" однозначно удалась, поэтому тут только могу смело рекомендовать эту картину к обязательному ознакомлению. 

"Аннетт" -- порой мне хватает терпения высидеть какие-то бесконечно длинные, нудные и совершенно зубодробительные арт-хаусные картины, но вот это чудо я осилить не смог, выключил минут через 20. Извините. 

"Агнец" -- невероятно атмосферный ужастик, который вряд ли можно рекомендовать любителям щекочущего нервы жанра. Тут все происходит крайне неторопливо и драмы, пожалуй, сильно больше, чем мистики. Снято все на натурных съемках в Исландии и история рассказывается на фоне таких пейзажей, что только ради этого стоит решиться на просмотр. Мне понравилось, хорошее кино.  

"Случайность и догадка" -- японское кино не кино. Картинка тут вообще не играет никакой роли, этот фильм -- бесконечная череда диалогов о человеческих чувствах. Диалогов очень глубоких,  психологически достоверных, словно бы написанных в лучших традициях русской классики XIX века. Да, внезапно оказалось, что японцы умеют в такое.
Фильм состоит из трех законченных миниатюр, каждая из которых посвящена вопросам любви и случайности. Мне понравилось, хотя еще раз повторюсь, что это совершенно не кино, это скорее книга. 

09 January 2022

2021 год в играх

Как и обещал, пост о том, во что получилось поиграть в прошлом году. 

Главной игровой платформой, как и в позапрошлом году, был Switch

C него и начнем.  

Самая популярная игра на приставке -- "Animal Crossing: New Horizons". Я в нее не играю, а вот ребенок набегал в 21-м году под сотню часов. В конце года новую жизнь вдохнуло DLC, интересное и качественное дополнение. 

"Shadowverse: Champions Battle" -- одна из лучших игр, которые я прошел в прошлом году. За подробностями в обзор, всячески рекомендую. 

"Grindstone" -- начал плотно играть еще в конце 20-го, в том году прошел и основную линию и дополнение. Игра на грани абсолютной гениальности -- казалось бы, очень простая базовая механика, но ее смогли отмасштабировать так, что в игре с удовольствием проводишь 60-70 часов и хочется еще. Маленький шедевр. 

02 January 2022

Год 2021: итоги

Когда я писал аналогичный текст в прошлый раз, то пришел в выводу, что мне и моим близким удалось пережить пандемийный 20-й год без особых потерь и последствий. А вот 21-й удалось пережить не всем. 

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

21 December 2021

Евангелие от Анана

Вообще стоит признать, что мода на такого рода скандалы в Сети пошла с легкой руки одного русского футболиста. Именно он, так сказать, выпустил джина из бутылки и показал, что руками он работает сильно лучше, чем ногами и головой. 

Из-за океана эстафета Сергеича была подхвачена басистом группы Megadeth, Дэвидом Эллефсоном, который решил продемонстрировать владение безладовой бас-гитарой одной из своих горячих поклонниц. Ну а та посчитала, что сие действо должно быть представлено вниманию намного более широкой аудитории, чтобы весь мир оценил умение дядьки взять себя, так сказать, за гриф... По итогу к Дэвиду приклеилось прозвище "мастер-на-все-руки". А еще его поперли из группы. До полного выяснения обстоятельств. И вот, на почве то ли обиды, то ли просто от банального безделья, он за последние полгода раздал больше интервью, чем за несколько десятилетий пребывания в Megadeth. 

В одном из таких интервью он заявил, что теперь "на своей шкуре познал, что чувствовал Христос". Я аж мацой подавился, когда это прочитал! Просто неслыханное святотатство!... Не, ну это, безусловно, известный факт, что Иисус был тем еще баловником и любил выкидывать перед толпой разные кунштюки, но чтоб такое... Да и руки у него вроде были заняты... Короче, я прям реально загорелся покопаться в апокрифах. Потому что понятно, что ICQ придумали в Израиле, но вот функцию видеозвонков в первом веке нашей эры в этом продукте я что-то как-то не припоминаю... Хотя может просто меня уже и память подводит.  

В общем, буду держать вас в курсе! 


10 November 2021

Mario Party Superstars

Как человек, который считает, что "Super Mario Party" это один из лучших способов провести время, когда у тебя в квартире собирается компания от четырех человек, я, конечно же, не мог пойти мимо новой игры из серии Party для Switch. 

Разбирать прям досконально новую "Mario Party Superstars" особо не хочется (тем более, что там особо и разбирать то нечего), но вот поговорить о сравнении с предыдущей частью, мне кажется, было бы интересно. 

"Super Mario Party" очень сильно ориентирована на управление движением ("Готовы?!... Да-а-а-а"!!) и играть в нее можно исключительно на джойконах. Новая часть прекрасно играется хоть на Pro контроллере, хоть на Switch Lite. 

Если кто не в курсе, именно появление motion управления в связке с простыми играми для компании обеспечило головокружительный успех самой продаваемой приставке Nintendo -- Wii. Во-первых, такое управление обеспечивает минимальный порог вхождения даже для тех, кто компьютерные игры вообще видит первый раз в жизни. Лично я с легкостью садил играть в Mario Party бабушек и дедушек, которые вообще никогда джойстика в руках не держали. Во-вторых, отдельный кайф таких игр заключается в том, что они обеспечивают хоть какую-то подвижность. Одно дело развалиться в кресле с джойстиком в руках на пузе и совсем другое, когда игра заставляет тебя как минимум размахивать руками самим причудливым образом. Этот момент, кстати, очень хорошо просекли в Nintendo, выпустив большое количество супер успешных игр фитнес направленности...  

Короче, в "Super Mario Party" огромное число активностей, заточенных на движении джойконов, и это очень и очень круто. 

Едем дальше. В "Super Mario Party" намного больше режимов игры. К примеру, помимо классической игры в настолки, там есть сплав по реке, когда по два игрока сидят вдоль борта виртуальной лодки и орудуют джойконами, словно веслами, пытаясь действовать максимально синхронно, оплывая преграды и гоняясь за бонусами. Совершенно умопомрачительный режим, при наличии которого про настолки даже и вспоминать не хочется. И даже в каких-то мелочах "Super Mario Party" предлагает больше. Например, мне совершенно не понятно, почему в "Superstars" для настолок не завезли режим кооператива. Весьма востребованная штука, когда приходиться играть вдвоем: можно либо сражаться на пару против команды ботов, либо иметь бота в качестве напарника. 

Идем дальше -- мини-игры.
Да, "Super Mario Party" предлагает их чуть меньше, чем новая часть (80 против 100), но, во-первых, среди них есть очень много, основанных на motion управлении (а я уже объяснил, почему это круто само по себе), а во-вторых, их качество заметно лучше. В "Super Mario Party" можно было просто зайти компанией в раздел мини-игр и легко там потеряться на час-другой, а вот в "Superstars" какое-то прям неприличное количество откровенно проходных, скучных и непонятных активностей... 

Что можно записать в положительные стороны новой части? 

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

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

И в-третьих, режим настолки в "Superstars" заметно более увлекательный и сбалансированный, чем в предыдущей части. В "Super Mario Party" это не столь критично, потому что там есть более интересные режимы, а вот в "Superstars" идти больше особо некуда и было бы не хорошо, если бы этот режим плохо работал. С другой стороны, эпитет "сбалансированный" вряд ли применим к играм для компании от Nintendo, ибо основной секрет успеха этих продуктов как раз заключается в том, что игровой процесс переполнен хаосом, случайностями и внезапными изменениями расстановки сил, что дарит игрокам азарт и уравнивает шансы между людьми опытными и новичками. 

Ну и в качестве некоего заключения могу сказать, что новая игра серии однозначно удалась, но приобретать ее стоит только если у вас уже есть "Super Mario Party" и она вам просто успела основательно поднадоесть.   


зы. Кстати, одним из неожиданных открытий игры для компании на четверых стала "Streets of Rage 4". Она, безусловно, не столь казуальная, как "Mario Party", но кайф от игры такой большой оравой прям совершенно нереальный. Попробуйте, если будет такая возможность!  


23 October 2021

Metroid Dread

Свою первую метроидванию я прошел лет 20 назад. Это была легендарная "Symphony of the Night", в которую я играл на ПК в эмуляторе. "Симфония" подарила мне массу эмоций, которые с той поры я, в безуспешном отчаянии, пытался пережить снова. Я перепробовал лучших представителей жанра, включая "Ori and the Blind Forest" и "Bloodstained", но все это было не то. А вот "Metroid Dread" оказалась той самой игрой, от которой я кайфанул не меньше, чем от "Симфонии". 

"Dread" это первая игра из серии Metroid, в который я решил поиграть. Конечно, до этого я присматривался ко всякому олд-скулу, типа игры со SNES, но каждый раз натыкался на ютюбовских записях геймплея на моменты, когда игрок шел и от балды закладывал бомбу под какой-то совершенно ничем не примечательный блок лишь для того, чтобы продвинуться дальше. Такого рода подход -- "пробегись по всем 30 доступным экранам и догадайся, какой именно блок тебе надо взорвать" -- мне совершенно не по душе, играть по гайдам не хотелось, поэтому игры серии проходили мимо меня. Собственно говоря, именно это и было моим главным беспокойством при знакомстве с "Metroid Dread" -- реально ли его пройти без подсказок и сильно ли часто предполагается такое вот слепое тыканье во все подряд.
По итогам полного прохождения могу сказать, что, в общем и целом, ход игры выстроен достаточно логично и видно, что авторы реально парились по этому поводу. Хотя не обошлось без ряда моментов, когда вполне можно "потеряться", не понимая, а что надо делать дальше. Периодически игроку подбрасывают задачку "угадай, какой именно блок тебе надо разбить ракетой", причем местами авторы ломают собственные же правила и логику, когда эти блоки для разрушения не показывает сканер, именно для этих целей тебе и выданный. И ладно, если бы речь шла о каких-то секретах, но нет, такие вот "задачки" предлагаются в рамках движения по основной линии игры. 
В общем, лично я несколько раз таки застревал, тратил массу времени на попытки чего-то придумать, но по итогу все равно бежал в Сеть за подсказкой. Иногда я реально тупил, а иногда именно геймдизайн лежал в достаточно спорной области. И все это, кстати, при идеально реализованной карте, на которой реально рассмотреть и изучить чуть ли не каждый блок экрана. 

02 October 2021

Diablo II Resurrected: закопайте стюардессу

Через силу заставил себя все-таки домучить первый акт, чтобы с чистой совестью написать: не надо играть в это в 2021 году!

Вообще, было бы очень странно, если бы Blizzard (а в те времена это была еще "правильная" Blizzard, одна из лучший игровых компаний в мире) потратила больше 10 лет на разработку Diablo III и не переосмыслила бы при этом все неудачные моменты в геймплее второй части. После D3 возвращаться в D2 просто невыносимо больно. 

Даже не знаю с чего начать, настолько все плохо. 

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

Заунывное развитие персонажа, когда заработанные skill points просто не куда вкладывать. Я играл за варвара и в течении всего первого акта активно инвестировать был смысл разве что в Shout. Прямое следствие этого -- крайне унылый процесс схваток, построенный тупо на нажатии одной единственной кнопки. Для сравнения, в D3 ты имеешь кучу разных умений, которые весело применять, которые могут быть крайне эффективны против толп врагов и которые автоматически перезаряжаются, не заставляя морочить игроку голову поддержанием нужного количества маны. В D3, когда ты видишь толпу врагов, ты уже предвкушаешь, как порвешь их в два-три нажатия кнопок и наверняка получишь что-то интересное из лута. Видишь толпу в D2 -- бли-и-и-и-ина!!.... 

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

Играл я в версию для Switch и тут есть вполне конкретные вопросы по части графики. Во-первых, я еще как-то могу понять порезанное разрешение игровой части, но почему инвентарь выглядит как обмазанное мылом гавно? Можно было не экономить хотя бы на статичных картинках предметов? Ну и 30 fps. Это можно было бы хоть как-то принять и простить, если бы перед глазами не было бы порта Diablo 3, который на Switch, при намного более сложной графике, работает в стабильных 60 fps... В принципе, Diablo не супер динамичная игра и в этом плане с 30 кадрами можно было бы жить, но когда я, из визуально спокойных зеленых полей первого акта, перешел в пустыню второго акта с жестким контрастом, то скроллинг экрана превратился в настоящую пытку для глаз из-за motion blur. 
И еще. Не знаю, до какой степени это проблема именно Switch версии, но играть с русской локализацией текста просто невозможно из-за того, что стильный шрифт из английской версии превратили в какой-то совершенно нечитаемый вырвиглазный курсив. 

Итого. Совершенно понятно, почему в Blizzard выбрали самый безопасный путь и не стали ничего кардинально менять в геймплее. Крайне обидно, что столько сил и денег вбухали в новую графику, которая действительно выглядит сногсшибально (везде, кроме Switch версии). Но геймплей 20-ти летней давности это вино, которое уже давно скисло. Честное слово, лучше в сотый раз пробегите Diablo 3.