Pull to refresh
22
0
Денис Кузнецов @MrBrooks

Программист

Send message

Battle Realms: прорыв в жанре RTS, не замеченный публикой

Level of difficultyEasy
Reading time7 min
Views14K

Во времена дефицита информации о выходящих проектах пропустить что-то действительно интересное было раз плюнуть. Интернет имели единицы, а прочитать в журнале про все предстоящие проекты было довольно проблематично (да и для многих дорого). Но однажды мне повезло, и при очередном походе в магазин за новой игрой я совершенно случайно наткнулся, если и не на хит, то уж на знаковый проект – точно. Это был Battle Realms!

Будучи стратегией в восточном сеттинге и имея много интересных для жанра нововведений и игровых механик, она так и не стала значимой фигурой в индустрии (во многом из-за релиза незадолго до выхода Warcraft 3). Если вы подумали «О боже, очередной клон популярных стратегий нулевых», то спешу вам сообщить, что это в корне не так! Battle Realms не является пародией на Warcraft, Starcraft, Dune 2 или Red Alert, а пытается идти по своему пути! Это было круто и в 2001, а учитывая, что жанр стратегических игр не сильно развивается в наши дни, это интересно и сегодня. К тому же, недавно вышел её официальный ремастер, позволяющий самостоятельно попробовать этот самобытный проект.

Сегодня я постараюсь кратко рассказать, чем знаменательна Battle Realms, и пробудить ваше любопытство и ностальгию. Надеюсь, у меня получится убедить вас сыграть в неё. А чтобы вам было максимально удобно, я выложу сборку с уже готовой к запуску игрой.

Читать далее
Total votes 23: ↑22 and ↓1+24
Comments18

История создания Civilization IV: избавление от унылости

Level of difficultyEasy
Reading time8 min
Views9.9K
Историю четвёртой части «Цивилизации» можно начать с очередной смены владельца бренда Civilization: Atari (Infrogames) продала их 2К Games, дочерней компании Take-Two. Сумма сделки составила 22,3 миллиона долларов. На дворе стоял 2004-й год.



Хотя на самом деле к тому моменту разработка уже весьма активно велась, так что Сид Мейер и его студия Firaxis отнеслись к происходящему философски: смена издателя не сильно влияла на планы команды. Руководил проектом Сорен Джонсон, набравшийся опыта в работе над предыдущей частью серии.
Читать дальше →
Total votes 28: ↑27 and ↓1+32
Comments13

Памяти Кевина Митника — хакера, ломавшего ФБР, АНБ и Кремниевую долину. Часть 5: призрачный номер и загадочный хакер

Level of difficultyEasy
Reading time13 min
Views10K

Итак, Кевин Митник из-за предательства некстати возбомбившего от проигранного пари друга Ленни ди Чикко угодил в лапы ФБР. В суде ему были предъявлены обвинения в различных действиях, которые он, по крайней мере, как Митник утверждал до своей смерти, не совершал. Однако многие его настоящие правонарушения остались неизвестными в то время. В этот момент перед лицом прокурора, который говорил о его несуществующих преступлениях, включая фразу «Он может насвистеть по телефону и запустить ядерную ракету с базы NORAD!», Кевин начал сомневаться в американском правосудии. В результате он решил сделать всё возможное, чтобы никогда не попасться. Однако законопослушность и отказ от хакерства не входили в его планы…
Читать дальше →
Total votes 58: ↑56 and ↓2+74
Comments9

Математические бланки // Часть 1: введение в проблему

Level of difficultyEasy
Reading time7 min
Views4.1K

Что может быть настолько мистическим, чтобы описываться прямо противоположными понятиями? Извольте: чёрный ящик aka белое пятно. На самом деле, цвет здесь вторичен, он лишь означает: мы не знаем, что внутри. Желание преодолеть неизвестность ходит по пятам за идеей чёрного ящика - люди всегда стремились открыть его, нанести карту на белое пятно. Как показывает история, за этим обычно следует движение вперёд, новые возможности и премиальные бонусы.

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

Тем не менее, предъявление внутренней структуры этих объектов (которое заняло 10 лет) обещает замечательные, прорывные результаты в самых разных областях. Теперь предстоит показать всё это широкому кругу программистов и математиков, для чего и предназначена предлагаемая вашему вниманию серия заметок. Данная первая заметка описывает проблему математических бланков и демонстрирует, на что способно её решение.

Читать далее
Total votes 8: ↑6 and ↓2+5
Comments29

Я уже 14 лет в отрасли, но программировать по-прежнему сложно

Level of difficultyEasy
Reading time15 min
Views32K

Много лет назад, учась computer science на старших курсах, я долго изучал различные вакансии онлайн, надеясь найти подходящую должность стажёра-программиста.

Кроме вакансий для стажёров я иногда случайно нажимал на объявления о вакансиях «сеньор-разработчика». Помню, больше всего меня поражало то, что первой строкой шло требование определённого количества лет работы: «Эта должность требует 5+ лет опыта».

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

Время летело, не успел моргнуть глазом, как прошло больше десятка лет. Сегодня я с гордостью могу сказать, что работаю программистом уже 14 лет. Спустя годы боёв на фронтах разработки ПО я осознал, что многие её аспекты сильно отличаются от того, что я представлял на старших курсах, а именно:

С опытом программирование не становится намного проще, о «проще пареной репы» можно только мечтать.

Написание кода для множества «больших проектов» — это не только неинтересное, но и опасное занятие, гораздо менее увлекательное, чем решение алгоритмических задач в LeetCode.

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

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

Читать далее
Total votes 45: ↑45 and ↓0+45
Comments31

Мифы об Unreal Engine 5 — Nanite

Level of difficultyMedium
Reading time13 min
Views13K

Доброго времени суток,

Успех новой версии Unreal Engine не оставил без внимания профессионалов всех мастей. Попытки поддать, происходящую революцию, рациональному объяснению - затмило умы самых упрямых юнити-делов. Журналисты проводят сравнения со всем подряд, что только подвернётся, чтобы попытаться перевести технологии из мира идей в любое доступное пространство. Ходят слухи, что пара кодеров поступила в клинику, они лишь запинаясь, повторяли о mesh-шейдерах. А те кто видел исходники, поговаривают о необычайном цвете кода, явно, не из нашего мира, возможно тема была, даже - светлой.

Всё это безумие - породило мифы и целые культы, рей-трейсер пошёл на рей-трейсера, рей-кастера размазало между кадрами, Z-брашер, с диким смехом, скопипастил два мазка кистью по фотоскану непристойных моделей, прямо в игру, даже Чат-GPT назвала демонстрацию - deep-fake’ом, а новости - вбросом. Кроллики и драконы стали жить вместе, собаки и кошки.. а да, о чём это я..

В общем, я не могу вам сказать, чем является на самом деле этот ваш Nanite, но я могу вам сказать, чем он точно не является. И так..

Свет. Занавес. Nanite
Total votes 24: ↑14 and ↓10+7
Comments36

Корутины в UnrealEngine

Level of difficultyMedium
Reading time22 min
Views11K

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

Читать далее
Total votes 12: ↑12 and ↓0+12
Comments8

Как мы с женой повышали ее качество жизни с диабетом при помощи ИТ

Reading time13 min
Views12K

Всем привет! Меня зовут Андрей. Сегодня я расскажу о проекте, который делал для своей жены и при активном ее участии. Это устройство на Raspberry Pi с опенсорсным софтом для контроля сахара в крови с помощью данных мониторинга и команд, отдаваемых инсулиновой помпе.

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

Читать далее
Total votes 55: ↑54 and ↓1+64
Comments27

OpenCat — создай своего робокотика

Reading time4 min
Views25K

Если вы фанат робо-собаки от Boston Dynamics и хотели бы завести дома его маленькую копию, вам в помощь OpenCat. Это платформа четвероногих роботов-питомцев на основе Arduino и Raspberry Pi с открытым исходным кодом. Разработчики предлагают всем попробовать создать своего собственного робота-любимца.

Читать далее
Total votes 62: ↑60 and ↓2+70
Comments13

Как вырастить тупого ребёнка (научно обоснованные вредные советы)

Reading time7 min
Views266K

Brain of someone described as an «idiot»

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

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

Что мы подразумеваем под умственным развитием


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

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

Итак, начнём растить не очень умного ребёнка, пользуясь достижениями современной науки.
Читать дальше →
Total votes 166: ↑143 and ↓23+155
Comments480
Собираетесь перейти в IT или повысить квалификацию? Мы собрали все образовательные инициативы Microsoft в подобие адвент-календаря, чтобы было удобно ориентироваться.
Читать далее
Total votes 18: ↑18 and ↓0+18
Comments5

.xlsx изнутри. Разбор структуры файлов. Разбор каждого .xml файла

Reading time25 min
Views48K

Это статья о разборе excel изнутри. Вы узнаете как работать со стилями ячеек, листов через xml, как вносить данные и формулы в ячейки и мого другого.

Читать далее
Total votes 85: ↑85 and ↓0+85
Comments74

Flipper Zero — как выйти на Кикстартер сидя на карантине на даче

Reading time7 min
Views75K
Flipper Zero крупным планом

Flipper Zero — проект карманного мультитула для хакеров в формфакторе тамагочи, который я разрабатываю с друзьями. Предыдущие посты [1],[2],[3]

Я до сих пор не могу в это поверить. Это самая волнительная статья, которую я когда-либо писал. Мы прошли огромный путь: два раза полностью меняли электронику Флиппера, выживали при блекауте и закрытых границах из-за коронавируса, переносили компанию из Гонконга в США, с трудом прошли все проверки и верификации и НАКОНЕЦ ГОТОВЫ К ЗАПУСКУ ФЛИППЕРА НА КИКСТАРТЕРЕ! Сейчас мне осталось только нажать кнопку «Старт».

Внутри я расскажу: через что нам пришлось пройти, что нужно для выхода на Кикстартер, как мы за две недели зарегистрировали компанию в США и открыли банковский счет, как Stripe отказывался подтверждать нашу компанию и что будет дальше.
Читать дальше →
Total votes 220: ↑216 and ↓4+294
Comments221

C++20 утверждён! Чего ждать и к чему готовиться разработчикам в C++23

Reading time6 min
Views62K
На днях в Праге прошла встреча международного комитета по стандартизации C++. И-и-и-и…



C++20 готов! Осталось поставить штампик от ISO, но это чисто формальный шаг, с которым не должно быть проблем.

Поздравляю всех с этим замечательным событием! Concepts, Coroutines, Modules, Ranges, std::format, constexpr new и constexpr алгоритмы+vector+string, datetime, jthread, span, bit_cast и многие другие мелкие и большие нововведения.

Что успели добавить и поправить в последний момент, что предложили разломать и что все хотят видеть в C++23 — обо всём этом под катом.
Читать дальше →
Total votes 54: ↑51 and ↓3+72
Comments407

Расширяем возможности UObject в Unreal Engine 4

Reading time15 min
Views29K

Всем привет! Меня зовут Александр, я уже более 5 лет работаю с Unreal Engine, и почти все это время — с сетевыми проектами.

Поскольку сетевые проекты отличаются своими требованиями к разработке и производительности, нередко необходимо работать с более простыми объектами, такими как классы UObject, но их функциональность изначально урезана, что может создать сильные рамки. В этой статье я расскажу о том, как активировать различные функции в базовом классе UObject в Unreal Engine 4.



На самом деле, статью я написал скорее как справочник. Большую часть информации крайне сложно найти в документации или сообществе, а тут можно быстро открыть ссылку и скопировать нужный код. Решил заодно поделиться и с вами! Статья ориентирована на тех, кто уже немного знаком с UE4. Будет рассмотрен С++ код, хотя знать его не обязательно. Можете просто следовать инструкциям, если вам нужно то, о чем пойдет речь. Более того, не обязательно копировать все, вы можете вставить код из раздела с нужными свойствами и он должен работать.

Читать дальше →
Total votes 38: ↑36 and ↓2+34
Comments7

История видеопроцессоров: 1976 — 1995 годы

Reading time14 min
Views22K
image

Эволюция современных графических процессоров началась с появления в 1995 году первых 3D-карт, за которым последовало широкое распространение 32-битных операционных систем и недорогих персональных компьютеров.

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

Первые дни потребительской 3D-графики были Диким Западом конкурирующих идей: от способов реализации оборудования до использования различных техник рендеринга и интерфейсов приложений и данных. У первых графических систем имелся фиксированный конвейер функций (fixed function pipeline, FFP) и архитектура, следовавшая по очень строгому пути обработки; при этом графические API практически у каждого производителя 3D-чипов были собственные.

3D-графика превратила довольно унылую PC-индустрию в шоу света и магии, но своим существованием она обязана многим поколениям инноваций. В этой серии статей мы подробно рассмотрим историю GPU: первые дни потребительской 3D-графики, совершившую переворот 3Dfx Voodoo, консолидацию отрасли в начале века и современные GPGPU.
Total votes 19: ↑18 and ↓1+17
Comments16

Лямбды: от C++11 до C++20. Часть 2

Reading time8 min
Views29K
Привет, хабровчане. В связи со стартом набора в новую группу по курсу «Разработчик C++», делимся с вами переводом второй части статьи «Лямбды: от C++11 до C++20». Первую часть можно прочитать тут.



В первой части серии мы рассмотрели лямбды с точки зрения C++03, C++11 и C++14. В этой статье я описал побуждения, стоящие за этой мощной фичей C++, базовое использование, синтаксис и улучшения в каждом из языковых стандартов. Я также упомянул несколько пограничных случаев.
Теперь пришло время перейти к C++17 и немного заглянуть в будущее (очень близкое!): C++20.
Читать дальше →
Total votes 41: ↑41 and ↓0+41
Comments29

Современные возможности C++, о которых надо знать всем программистам

Reading time9 min
Views40K
Автор материала, перевод которого мы сегодня публикуем, говорит, что C++, в его современном виде, если сравнивать его с тем, чем был этот язык несколько лет назад, значительно изменился в лучшую сторону. Конечно, эти изменения произошли далеко не сразу. Например, в былые времена C++ не хватало динамичности. Непросто было найти человека, который мог бы сказать, что он питает к этому языку нежные чувства. Всё изменилось тогда, когда те, кто отвечает за стандартизацию языка, решили дать ход новшествам. В 2011 году C++ стал динамическим языком, языком, который постоянно развивается и вызывает у программистов куда больше положительных эмоций.

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



Сегодня мы поговорим о некоторых новых возможностях языка (начиная с C++ 11, которому, кстати, уже 8 лет), знать о которых будет полезно любому программисту.
Читать дальше →
Total votes 56: ↑44 and ↓12+32
Comments14

Дизайн игр: не сбивайте игрока с толку

Reading time8 min
Views15K
image

Игровой процесс может быть очень сложной задачей. Некоторые игры, например, «Змеи и лестницы», достаточно прямолинейны, однако такие игры, как SpaceChem и Factorio могут быть невероятно сложной проверкой работы мозга.

Каждой игре, от простой до сложной, очень важно объяснить игроку, как в неё играть. Неважно, бросает ли он кубики или решает сложные математические уравнения — главное, чтобы игрок понимал, как работает игра.

Но создатели некоторых игр делают их сложными без необходимости. В большинстве игр существует чёткий набор правил, а любые возможные действия игрока приводят к ожидаемым результатам, но некоторые игры иногда становятся запутанными. Давайте рассмотрим одни из самых частых ловушек для разработчиков и подумаем над тем, как их избежать.
Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments67
1

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity

Specialization

Game Developer
C++
Unreal Engine