Search
Write a publication
Pull to refresh
120
0.2
Send message

Ктулху зовёт! Эволюция компьютерных игр по Лавкрафту. Часть 4: «Переходи на тёмную сторону, у нас есть щупальца!»

Level of difficultyEasy
Reading time13 min
Views4.4K

Итак, Call of Cthulhu: Dark Corners of the Earth вышла в 2006 году, провалилась в продажах, отпугнула геймдев от Лавкрафта на десяток лет — и всё равно умудрилась стать культовой. На протяжении конца нулевых и первой половины десятых годов новые тайтлы по мифам Ктулху изредка выходили, но редко, как правило, неудачно и незаметно. Однако середины 2010-х что-то изменилось: количество и качество игр по лавкрафтиане стало расти, а вместе с ними и интерес аудитории. Отчасти это стало следствием инди-революции в геймдеве: некоторые из игр представляли собой смелые эксперименты небольших студий. Но куда более интересным феноменом стало то, что теперь в играх по мотивам Лавкрафта всё чаще предлагают не противостоять космическим порождениям древних бездн, а, наоборот, играть за тех, кто у самого Лавкрафта и в произведениях по его мотивам всегда считался антагонистами и злодеями. Ну или по крайней мере относительно мирно с означенными порождениями сосуществовать и взаимодействовать. Проследим, как игры про борьбу с лавкрафтианскими ужасами понемногу перешли к играм за эти самые ужасы.
Читать дальше →

Никто не понял world in conflict

Level of difficultyEasy
Reading time15 min
Views5.2K

Что вы помните о World in Conflict?

Удалую клюкву? «Полюшко-поле»? Красный медведь пробудился? Вертолетный десант у Статуи Свободы и небо в куполах над Сиэтлом?

А если я скажу, что игра была вообще не об этом?

Что, если шведы из Massive Entertainment смогли полноценно деконструировать нарративы времен Холодной войны с позиции стороннего наблюдателя?

Что, если сценарист Кристофер Эмгард смог беспощадно раскритиковать игры, которые на момент релиза в 2007 году еще даже не были в разработке?

Что, если World in Conflict могла полностью изменить облик сюжетных игр «про войну», не останься она в тени именитых конкурентов и узкой нише жанра тактики в реальном времени?

Тогда...

Господи, помоги нам выжить среди этой смертной любви.

Читать далее

Регулярные выражения простыми словами. Часть 1

Level of difficultyEasy
Reading time7 min
Views57K

Разработчики делятся на два типа: тех, кто уже понимает регулярные выражения и порой решает сложные задачи одной строкой, и тех, кто все еще боится и всячески их избегает. Эта статья специально для вторых, чтобы им было проще стать первыми. Она либо поможет преодолеть «регекспофобию», либо усугубит ее. В любом случае, добро пожаловать под кат.
Читать дальше →

Регулярные выражения простыми словами. Часть 2

Level of difficultyEasy
Reading time10 min
Views27K

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

Рецепты TypeScript: перевод ключей объекта в camelCase

Level of difficultyMedium
Reading time4 min
Views5.9K

Всем привет! С вами снова Костя Логиновских — ведущий разработчик из Cloud.ru. Я уже делился TypeScript-рецептами в предыдущих статьях — вот первая и вторая — и теперь хочу рассказать про еще один. Наши рецепты — это готовый код, который можно применить в конкретных ситуациях, а в некоторых случаях и подогнать ситуацию под код.

Сегодня в меню — функция на обычном TypeScript, которая преобразует тип объекта так, чтобы все ключи внутри него из snake_case стали camelCase. Жду всех под катом!

Смотреть рецепт

Автоматизация тестирования таблиц в Postgresql на SQL

Level of difficultyMedium
Reading time20 min
Views8.7K

Привет.

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

Читать далее

Айсберг софта для чтения и слушания на японском с первых дней обучения

Level of difficultyEasy
Reading time16 min
Views7.1K

По каким-то причинам (sic!), японский язык хочет выучить ужасающее количество программистов. Реально, мой любимый японский подкастер Тэппей говорит, что у него девять из десяти учеников что‑нибудь кодят. Поэтому у нас нет недостатка в отличном софте. Буду рассказывать про кучу инструментов, позволяющих погрузиться в закорючки и взаимодействовать с нативным контентом с первых дней. Японофилы узнают что‑нибудь, о чем они еще не слышали, а если вы учите другой язык — возможно захотите сделать что-то похожее для него.

Читать далее

Типизация свойства объекта в виде строки

Level of difficultyEasy
Reading time3 min
Views2.1K

Все так или иначе сталкивались с функцией или методом, который принимает объект и свойства в виде строки с которым нужно что-то сделать. Пример:

updateDate(user, "date");

И когда изменяется свойства объекта (user.dateuser.birthday), компилятор его нормально скомпилирует и мы лишаемся возможности отловить баг на стадий разработки.

Решить проблему

Оптимизация денежной наличности в АТМ, или Как сделать так, чтобы в банкомате всегда были деньги

Level of difficultyMedium
Reading time15 min
Views3.5K

Бывала у вас такая ситуация, когда хотели снять деньги в банкомате, а их там не оказалось, и приходилось искать банкомат рядом, про себя ругаясь на банк: «Неужели так сложно сделать, чтобы деньги в аппарате были всегда?» Да, это возможно, но есть нюанс.

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

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

К чему это всё здесь описано? Рассчитать, сколько денег поместить в каждый конкретный банкомат — это задача с несколькими параметрами. Наскоком её не решить, например, не получится загружать все банкоматы деньгами по полной. Ведь иногда так бывает, что у двух рядом стоящих банкоматов к концу дня количество банкнот к концу дня отличается в разы!

Привет, меня зовут Мария, я работаю в Альфа-Банке на позиции Middle Data Scientist, и я вам расскажу, почему задача расчёта количества банкнот в банкомате не такая тривиальная, как кажется на первый взгляд.

Читать далее

Рецепты TypeScript: типизированное преобразование объекта

Level of difficultyMedium
Reading time5 min
Views3.6K

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

В этой статье предлагаю обсудить, как на обычном TypeScript приготовить такую функцию, которая из конфига роутинга по приложению вычислит объект, содержащий все пути внутри приложения. При этом сам объект роутинга будет иметь некоторую вложенность, а итоговая мапа с путями будет плоской структурой со значениями полей в виде строк. И всё это строго типизировано!

Забрать рецепт

Рецепты TypeScript: подстановка параметров в путь

Level of difficultyMedium
Reading time5 min
Views5.1K

Хабр, привет! Это Костя Логиновских — ведущий разработчик в Cloud.ru. Этой статьей я начинаю цикл коротких материалов, посвященный рецептам TypeScript. Что такое рецепты? Это готовый код, который можно применить в конкретных ситуациях, а в некоторых случаях и подогнать ситуацию под код.

Наше первое блюдо — функция на обычном TypeScript, которая поможет вычислить необходимые параметры для строки с маской постановки (например,:userId/resources/:resourceId, где такие параметры — это userId и resourceId) и заставит пользователя указать эти параметры либо выдаст ошибку при сборке проекта.

Смотреть рецепт

Ктулху зовёт! Эволюция компьютерных игр по Лавкрафту. Часть 2: Анненербе у Хребтов безумия, X-COM 2 и немного Quake

Level of difficultyEasy
Reading time10 min
Views6.5K

Игры по Лавкрафту начались на заре геймдева как такового — и поначалу представляли собой текстовые квесты, позволявшие игроку погрузиться в сеттинг иномирного ужаса и самостоятельно влиять на ход сюжета. По мере развития технологий они становились всё разнообразнее, от хитов и первооткрывателей жанра до легкомысленных, но порой весьма брутальных японских аркад. К середине 90-х годов лавкрафтиана окрепла — и хвосты с щупальцами Ктулху и компании начали обнаруживаться в самых разных играх, включая и те, про которые сразу не подумаешь.
Читать дальше →

Задача о банкомате

Level of difficultyMedium
Reading time12 min
Views19K

Рассмотрим одну задачу, которая на leetcode маркирована как "medium", хотя на самом деле это невероятно сложная задача. Примечательна она тем, что допускает в разной степени оптимальные решения, самые упрощённые из которых действительно весьма просты, а самые оптимальные ещё не найдены современной наукой. В этой задаче ценно то, что на её примере можно изучать целый ряд техник программирования.

Читать далее

В поисках сокровищ: Pillars of Eternity

Level of difficultyEasy
Reading time16 min
Views9.4K
image

Ещё пятнадцать лет назад жанр классических изометрических ролёвок был в большом упадке. Такие игры не сильно пользовались спросом у аудитории, мечтающей о проектах в честном 3D, а издатели не горели желанием спонсировать разработчиков, создающих в жанре с сомнительным коммерческим потенциалом. Но в 2015 году компания Obsidian Entertainment подарила нам настоящую жемчужину – Pillars of Eternity.

Проект был создан вопреки всему, создатели прошли через огромное количество трудностей и вызовов, и всё для того чтобы геймеры, что скучали по величественным мирам, полным глубоких историй, ярких персонажей и моральных выборов, могли спустя долгое время найти себе проект по душе. Тут на каждом шагу ощущается дух его предков, будто разработчики вдохнули жизнь в воспоминания о «Baldur’s Gate» и «Planescape: Torment», добавив в них современное очарование. И окунувшись в этот мир, можно легко вспомнить, почему классические RPG до сих пор не оставляют нас равнодушными, вызывая теплоту на сердце и море ярких впечатлений.
Читать дальше →

Ктулху зовёт! Эволюция компьютерных игр по Лавкрафту. Часть 1: забытые ужасы из начала 90-х

Level of difficultyEasy
Reading time10 min
Views7.1K

Говард Филлипс Лавкрафт — трагический пример автора, который умер в безвестности, но спустя десятки лет был переоткрыт и оказал колоссальное влияние на мировую культуру. Его мрачные и странные миры, наполненные безумием и ужасом непознаваемого, с каждым десятилетием привлекают всё больше людей — в том числе к созданию компьютерных игр по мотивам его произведений. Настоящий прорыв в этом смысле произошёл на рубеже десятых и двадцатых годов, аккурат к столетнему юбилею начала творческого пути затворника из Провиденса: с 2017 года и поныне каждый год выходит по несколько тайтлов разных жанров и качества. Однако первая компьютерная игра по мирам Лавкрафта появилась в далёком уже 1979 году. Попробуем бегло проследить непростой путь, который прошли игры по мифам Ктулху за прошедшие с тех пор 45 лет, коснувшись как хитов, так и почти забытых экспериментов!
Читать дальше →

По мотивам одного сбоя в БД Oracle

Level of difficultyMedium
Reading time14 min
Views6.1K

Всем привет! Я Тимур, инженер в команде Databases Т-Банка. Занимаюсь решением проблем и настройкой производительности СУБД Oracle и PostgreSQL Oracle — это СУБД для наших критичных  нагруженных legacy систем, системы построенные на новой архитектуре используют PostgreSQL.

Расскажу о случае конкуренции на одной критичной БД. В какой-то момент перестали проходить транзакции из-за конкуренции за ITL-слоты на вставке в таблицу. Проблема, конечно, была решена, но хочу порассуждать о том, как можно расследовать такие инциденты хорошо известными способами. А еще рассмотрим, как можно подсмотреть за некоторыми аспектами внутреннего устройства СУБД.

Читать далее

Как создавалась антология Риддика

Level of difficultyEasy
Reading time27 min
Views12K

Изначально мне казалось, что Риддик – это буквально одна игра и один фильм, но на самом деле:

– Три уже вышедших фильма;
– Два мультфильма;
– Три игры;
– Одна книга;
– Один неканоничный спинофф;
– И один фильм, который должен выйти в этом, мать его, году.

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

Посему я решил, что проведу детективное расследование. В этой статье мы пробежимся по биографии авторов сценария, режиссёра, главного семьянина Голливуда и, конечно же, употребим весь существующий контент, чтобы ответить на вопрос «в чём же секрет Риддика?».

Я надеюсь, вы не боитесь темноты

Fallout London: гигантский мод для Fallout 4. Что за новинка и стоит ли поиграть?

Reading time6 min
Views14K

Бонджорно, мои золотые! Это Идар Табухов, скрам-мастер в МТС Диджитал и фанат компьютерных игр. Сегодня хочу поговорить про Fallout London — на мой взгляд, это один из самых крупных фанатских проектов за всю историю существования игры. Мод переносит центр интересов игрока за океан, давая возможность исследовать разрушенный ядерным апокалипсисом и грузом последующих веков Лондон — мы вне США, Карл! Это не просто набор из нескольких новых миссий, а самостоятельная, детально проработанная история, с уникальной атмосферой, полностью британскими локациями, персонажами и квестами.

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

Читать далее

«Энциклопедия профессора Фортрана»: вспоминаем легендарную книгу из детства миллениалов

Level of difficultyEasy
Reading time15 min
Views21K

В самом начале 1990-х годов в Москве вышла книга о компьютерах, которая обрела огромную популярность среди детей «младшего школьного возраста» и не только. Как свидетельствуют многочисленные комментарии в сети к публикациям с её упоминаниями — её помнят и любят очень многие из тех, чьё детство пришлось на это время. Более того, немалое число из помнящих именно её страницы стали тем источником интереса и вдохновения, которые привели их к IT-специальностям. Книга называлась «Энциклопедия профессора Фортрана». Изначально она представляла собой научно-популярное приложение к сказке «А я был в компьютерном городе», но значительно превзошла её в популярности и вышла в качестве отдельного издания. С этого момента прошло уже почти 35 лет, но профессор Фортран и сотоварищи по-прежнему узнаваемы, любимы и используются для создания мемов разной степени упоротости. Давайте же вспомним оба текста, историю их создания, а также авторов и художников!
Читать дальше →

Глобально оптимальный, восьмой и наиболее быстрый вид интерпретаторов байткода

Level of difficultyHard
Reading time15 min
Views12K

Совершать невозможное и раздавать пинки здравому смыслу — в этом и состоит жизнь членов Гуррен-Дана! (C) Камина

Эта статья вступает в техническую полемику со статьей 2015 года за авторством Atakua, подходы из которой я и атакую. Atakua исследует 7 видов интерпретаторов байткода, но делает это без уважения - быстрейшей оказывается двоичная трансляция, которая, по сути, уже не интерпретатор байткода, а форма Ahead-Of-Time компилятора. Эта двоичная трансляция транслирует байткод в машинный код, представляющий собой цепочку вызовов скомпилированных сервисных процедур. Тех самых, что в интерпретаторе байткода отвечают за выполнение каждого опкода.

Но Atakua не выжал из интерпретаторов байткода всю скорость которая возможна. Так что эта статья - туториал: как написать интерпретатор байткода, который может обгонять JIT/AOT-компиляцию по скорости. Интересно? Читайте дальше!

Бенчмарк прилагается. Будет немного хардкора и ни одной сгенерированной нейросетью картинки!

Читать далее

Information

Rating
4,102-nd
Location
Магнитогорск, Челябинская обл., Россия
Registered
Activity