Search
Write a publication
Pull to refresh
120
0.2
Send message

Во что поиграть? – Корсары 2: Пираты Карибского Моря

Level of difficultyEasy
Reading time5 min
Views9.6K

Сегодня про компанию Акелла почти ничего не слышно, но когда-то она была довольно знаковым издателем и разработчиком игр в СНГ. Начав с «пиратского» контента, очень скоро перешла в русло сугубо легального ведения бизнеса. Правда многими небезосновательно считается, что с тёмной стороной силы Акелла не попрощалась, поскольку создала в качестве прикрытия своей нелегальной деятельности небезызвестную компанию Фаргус, чьи «пиратские» издания с теплом вспоминаются у большинства олдфагов.

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

Читать далее

Во что поиграть? – Castlevania: Symphony of the Night

Level of difficultyEasy
Reading time7 min
Views7.1K

Castlevania: Symphony of the Night является знаковой вехой для индустрии, ведь она, наравне с серией игр Metroid, способствовала появлению целого жанра, который был назван в их честь – Metroidvania. Будучи далеко не первым в линейке из более десятка игр, проект произвел фурор в 97 году благодаря значительно доработанному подходу к геймплею и обновленной игровой формуле предшественников. Если раньше игры в этой серии были коридорными аркадными платформерами, то новая (на тот момент) часть разбавила их ролевыми элементами и глубоким изучением мира, добавляя определённую долю нелинейности в процесс. А наличие большого и неочевидного сегмента игры после убийства последнего босса (который стоит пройти ради достижения «правильного» финала), четырёх концовок, а также возможности выбрать другого персонажа позволяло возвращаться в проект снова и снова, погружая игрока в её готический, тёмный мир, полный загадок и интересных открытий.

Читать далее

Как создавалась System Shock

Level of difficultyEasy
Reading time15 min
Views4.8K
image

В далеком 1994 году на прилавках магазинов появились дискеты с новым ролевым шутером от первого лица под названием «System Shock». Он предлагал окунуться в сложный интерактивный мир, способный реагировать на принимаемые игроком решения и ведущий себя при этом естественным образом. Если учесть, что главный конкурент, в лице «DOOM II: Hell on Earth», развлекал игроков в основном адреналиновым геймплеем «беги и стреляй», такие обещания звучали довольно амбициозно и несколько выбивались из трендов. Но всё же, несмотря на высокие оценки и положительные отзывы прессы, «System Shock» проиграла битву за геймерские сердца. По данным различных изданий за три месяца (с 23 сентября по 31 декабря) было продано чуть более 17 000 копий. Для сравнения: «DOOM II: Hell on Earth», который вышел 30 сентября в том же году, только за первый месяц разошелся тиражом в 600 000 проданных копий. Но пусть результаты на выходе и оказались неутешительными, это не помешало «System Shock» впоследствии обрести культовый статус, оставить след в истории и отчасти открыть дверь для сюжетно-ориентированных шутеров.
Читать дальше →

PostgreSQL и временные таблицы

Level of difficultyMedium
Reading time9 min
Views43K

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

Одним из свидетельств наличия проблемы является то, что для временных таблиц в Postgres Pro была добавлена специальная функция fasttrun, а в Postgres Pro Enterprise существенно доработана работа с ними (см. пункт 4). 

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

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

Читать далее

Oracle/ClickHouse. DWH. Партицирование как средство быстрого обновления данных

Level of difficultyMedium
Reading time6 min
Views10K

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

Читать далее

Alan Wake: 13 лет спустя

Level of difficultyEasy
Reading time10 min
Views10K
image

Что есть творчество – дар или проклятие? Творец – властитель людских дум или нечто большее? Можно ли силой искусства буквально влиять на реальность? И если да – надо ли? Так много вопросов, а ответов, как обычно, меньше.

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

Как сделать свой UI Kit на Vue 3 + storybook и задеплоить его на npm

Level of difficultyMedium
Reading time5 min
Views18K

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

После моего туториала, вы тоже сможете рассказывать какой у вас крутой UI Kit, но это не точно :)

Запилить свой UI Kit

Муки рождения Bioshock Infinite

Level of difficultyEasy
Reading time10 min
Views5.1K
image

Я до сих пор не могу поверить, что с релиза Bioshock Infinite прошло аж 10 лет. Это был не просто культурный феномен, захлестнувший миллионы людей по всему миру. Это было очень личное и эмоциональное приключение для каждого игрока, который вместе с Букером и Элизабет ворвался в Колумбию. Игра, безусловно, хороша. Но что если я скажу вам, что история её разработки настолько тяжёлая, хаотичная и запутанная, что после неё удивительно, как вообще Bioshock Infinite смог выйти в свет, да ещё и стать хитом? Звучит безумно, но это чистая правда, и сейчас я вам это докажу.
Читать дальше →

Нескучные интегралы

Reading time6 min
Views176K
Некоторые из вас, вероятно, видали на просторах сети эту задачку: какое число продолжает следующий ряд?

Предлагался такой очевидный правильный ответ:

Для тех, кому неочевидно, как он получен, предлагалось объяснение. Пусть (ну и 1 при x = 0, хотя неважно). Тогда каждый член ряда — это значение следующего интеграла в цепочке:

Пока всё идёт хорошо, но тут внезапно:

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

VulkanSceneGraph: Введение в графическую библиотеку

Level of difficultyMedium
Reading time13 min
Views5.3K

Возможно, кто-то из читателей помнит мою серию публикаций о графической библиотеке OpenSceneGraph. Уже на тот момент, в общем-то было понятно, что использование OpenSceneGraph в 2018 году мало оправдано из-за того, что OpenGL, на котором основан OpenSceneGraph потихоньку сдает свои позиции. В феврале 2016 года орган по стандартизации OpenGL Khronos group, выпускают приемника OpenGL - Vulkan API версии 1.0. Производители оборудования в общем-то почти сразу стали добавлять в драйверы своей аппаратуры поддержку нового API. По крайней мере, актуальная на тот момент GeForce GTX 970 уже имела таковую поддержку (про более старые серии аппаратуры ничего сказать не могу).

Не смотря на то, что OpenSceneGraph таки получил поддержку OpenGL 3.x (и ваш покорный слуга собирал его с таковой поддержкой), разработчикам этой библиотеки стало понятно, что огромное количество внутренних проблем OpenGL делает его поддержку бесперспективной. Поэтому, в конце мая 2018 года стартовала разработка новой графической библиотеки VulkanSceneGraph, ориентированной исключительной на Vulkan API. 13 ноября 2022 года состоялся официальный релиз VulkanSceneGraph-1.0, а совсем недавно, 31 августа 2023 выпустили VulkanSceneGraph-1.0.9.

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

Читать далее

Генерируем простой web интерфейс для просмотра таблиц PostgreSQL

Level of difficultyEasy
Reading time10 min
Views22K

В публикациях на хабре, чаще всего самое интересное в комментариях. Вот и в моем прошлом посте "Сгенерировать web интерфейс из БД или объектной модели не стало проще даже 10 лет спустя" я собрал джекпот из SharePoint, Vaadin и нескольких библиотек либо устаревших, либо поддерживаемых "одним автором".

Что я пытался объяснить читателям, что на этапе проверки идей не нужна дополнительная сложность в виде серверной инфраструктуры только ради этой самой инфраструктуры и нового языка программирования/платформы. Именно поэтому мне не нужны сейчас Yii, Symfony и Laravel, не подойдет ADF. На любое обучение тратится драгоценное время и поэтому надо понимать зачем тратить время на что-то, что потом возможно навсегда придется забыть через неделю-другую игры с прототипом.

В своих эксперементах с помощью лапшекода на JavaScript я быстро разработал вполне функциональный интерфейс. А начиналось все с Java 21, хотя в итоге обошелся без нее!

Читать далее

Как, откуда и зачем появился Bioshock 2

Level of difficultyEasy
Reading time8 min
Views6.3K
image

У Bioshock 2 очень неоднозначное место в истории. С одной стороны, её считают коммерческой поделкой, слепленной без уважения к первоисточнику для паразитировании на успехе культовой игры Кена Левина и его Irrational Games. С другой, у игры вполне хорошие оценки критиков и адекватные продажи. Так зачем и как был сделан Bioshock 2? И является ли этот проект достойной частью серии? На эти и не только вопросы мы сегодня постараемся найти ответ, покопавшись в событиях давно минувших дней.
Читать дальше →

Рефлексия в JavaScript и TypeScript: обзор основных техник. Как сгенерировать CLI-интерфейс для класса

Level of difficultyMedium
Reading time22 min
Views14K
Как и в любом достаточно динамическом языке, в JavaScript из коробки есть способы разобрать в рантайме структуру его значений — определить типы, ключи объектов, получить конструкторы и прототипы.

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

Читать дальше →

Наполняем до краев: влияние порядка столбцов в таблицах на размеры баз данных PostgresQL

Level of difficultyMedium
Reading time8 min
Views24K

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

И что же там прячется?

Lua FFI

Level of difficultyMedium
Reading time20 min
Views5.3K
Под катом описание довольно примитивного FFI для Lua под x64 windows, а теперь ещё и linux (и не только, SysV ABI).

Но который, тем не менее, позволяет делать:

local ffi = require ("ffi")
local msg = ffi("user32.dll", "MessageBoxA")
msg(0, "Message", "Title", 0)

или взять, например glfw3.dll, и путём

local glfw = ffi("glfw3")

сделать все экcпортируемые библиотекой glfw3.dll функции доступными для вызова из Lua.

Размер самой ffi.dll при этом получился аж 9 Кбайт, вот она целиком на картинке размером 32х96 пикселей. Можно сохранить это изображение, сконвертировать в bmp (хабр не умеет в bmp, пришлось дополнительно упаковать в png), потом руками удалить первые 54 байта заголовка (до 'MZ') и пользоваться.


Но очень осторожно, так как в результате всё-таки получилось, что в аккуратную детскую песочницу Lua залезли грязными сапогами, притащили туда всякие небезопасные штуки из С, вроде ручного управления памятью и обращения с указателями вида *(double*) (void * ptr), и вообще использование таких вещей учит всякому нехорошему.

Тут недавно выходил ряд статей про «вредные советы» в программировании «60 антипаттернов для С++ программиста». Под катом можно найти практическое воплощение большинства из них, не всех конечно, но только потому, что не все из них применимы к С, без плюсов :)
Читать дальше →

Как обходится ограничение скорости скачивания с YouTube

Reading time7 min
Views21K

Вы когда-нибудь пробовали скачивать видео с YouTube? Я имею в виду ручками, а не через такие софтины, как youtube-dl, yt-dlp или один из «этих» сайтов. Оказывается, это гораздо сложнее, чем можно было бы подумать.

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

Читать далее

Всегда ли хорош Index Only Scan?

Level of difficultyMedium
Reading time5 min
Views14K

Среди применяемых в PostgreSQL методов доступа к данным Index Only Scan стоит особняком, считаясь у многих разработчиков "волшебной пилюлей" для ускорения работы запроса - мол, "Index Scan - плохо, Index Only Scan - хорошо, как только получим его в плане - все станет замечательно".

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

Читать далее

История компьютерных стратегий. Часть 6. «Red Alert»: Эйнштейн против Гитлера, Сталин против всех

Level of difficultyEasy
Reading time10 min
Views12K

Итак, «Warcraft: Orcs & Humans» от Blizzard и «Command & Conquer» от Westwood Studios непосредственно наследовали «Dune II». «C&C» продолжал её почти напрямую, а авторы первого «Варкрафта» просто были очень впечатлены и решили сделать что-то в том же духе. Обе игры оказались удачными, обе легли в основу обширных серий и заложили краеугольные камни многолетней популярности жанра RTS. Естественно, что две конкурирующие студии не собирались почивать на лаврах и буквально сразу после релиза принялись развивать тему. Но если Blizzard напрямую продолжили свою историю борьбы людей и орков в фэнтезийном мире «Warcraft 2», то Westwood Studios решили сделать приквел к C&C и представили версию Второй мировой войны без нацистской Германии. Так родился развесисто-клюквенный сеттинг «Red Alert».
Читать дальше →

Информатор рассказал Конгрессу, что правительство США скрывает доказательства существования «нечеловеческого разума»

Reading time6 min
Views25K

26 июля в Вашингтон прилетели НЛО.

НЛО — или, как их ещё называют, неопознанные аномальные явления (НАЯ) — в последние годы стали объектом повышенного внимания со стороны правительства США благодаря громким показаниям очевидцев. Для того чтобы пролить свет на то, что, по мнению некоторых, представляет собой серьёзную угрозу национальной безопасности, которую несут в себе НАЯ, подкомитет Палаты представителей по национальной безопасности на границе и иностранным делам провёл в среду (26 июля) в Вашингтоне слушания на тему «Неопознанные аномальные явления: последствия для национальной безопасности, общественной безопасности и прозрачности деятельности правительства».

На слушаниях выступили три ключевых свидетеля: Райан Грейвс и Дэвид Фравор, два бывших лётчика ВМС США, сообщившие о получивших широкую огласку встречах с неизвестными объектами в воздушном пространстве военных учений, и Дэвид Груш, ветеран боевых действий, обладатель наград, офицер разведки Пентагона.

Читать далее

История компьютерных стратегий. Часть 4: великий и ужасный «Warcraft», внебрачный сын «Dune 2»

Level of difficultyEasy
Reading time10 min
Views15K

В прошлой части мы обсудили появление на свет Civilization и Dune II, ставших настоящими вехами в развитии компьютерных стратегий. В особенности это касается «Дюны 2», из которой выросли чуть менее чем все стратегии в реальном времени. И это не просто красивая фраза: хит по мотивам саги Фрэнка Герберта напрямую породил две последующие великие игры, братьев-конкурентов, определивших дальнейшее развитие жанра. А именно — «Warcraft: Orcs & Humans» от Blizzard и «Command & Conquer: Tiberian Dawn» от Westwood Studios. Они так же выросли из «Dune II», как «Doom 2» — из «Wolfenstein 3D».

Сегодня поговорим о том, как почти случайно, из попыток усовершенствовать «Дюну» и принятых «на коленке» решений, появился на свет мир «Warcraft».
Читать дальше →

Information

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