Как стать автором
Обновить

Дизайн

Сначала показывать
Порог рейтинга
Уровень сложности

Разработка игры Jim Power для 8-битной приставки: из первых рук

Уровень сложностиПростой
Время на прочтение30 мин
Количество просмотров2.1K

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

Но далеко не все проекты и моя роль в них известны широкой публике. Пожалуй, один из самых интересных — версия игры Jim Power от Piko Interactive, созданная для 8-битной игровой консоли NES (Famicom, Денди). Я занимался им в 2014-2020 годах в качестве приглашённого разработчика.

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

Если вы когда-либо хотели узнать, как и кем делаются современные игры для несовременных платформ, каким образом люди вообще приходят к этому — сейчас всё будет.
Читать дальше →
Всего голосов 27: ↑33.5 и ↓-6.5+40
Комментарии5

Новости

GPU-вычисления в браузере на скорости нативного приложения: марширующие кубы на WebGPU

Время на прочтение13 мин
Количество просмотров2.6K

WebGPU — это мощный GPU-API для веба, поддерживает продвинутые рендеринговые конвейеры и вычислительные конвейеры GPU. WebGPU ключевым образом отличается от WebGL своей поддержкой вычислительных шейдеров и буферов хранения данных. В WebGL такие возможности отсутствуют, а WebGPU, в свою очередь, позволяет целиком выполнять в браузере мощные приложения, требующие вычислений на GPU. Речь может идти о самых разных приложениях, от GPGPU (напр., симуляции, обработка/анализ данных, машинное обучение, т.д.) до конвейеров рендеринга на основе GPU-вычислений — а также о многих других приложениях в этом спектре.

В этой статье мы оценим вычислительную мощность WebGPU, сравнив её с показателями Vulkan. Для этого мы реализуем классический алгоритм «марширующие кубы» (Marching Cubes) для WebGPU. Алгоритм марширующих кубов почти без оговорок относится к чрезвычайно параллельным, в составе этого алгоритма выполняется два глобальных шага редукции, необходимых для синхронизации местоположений рабочих элементов и вывода потоков. Поэтому данное решение — отличный вариант GPU-параллельного алгоритма, который стоит первым делом попробовать на новой платформе. Дело в том, что он достаточно сложен, чтобы API испытал давление сразу по нескольким направлениям сверх элементарных параллельных операций диспетчеризации в ядре. При этом он не столь сложен, чтобы на его реализацию требовалось существенное время, а также он не превращается в узкое место из-за ограничения производительности ЦП.

Читать далее
Всего голосов 11: ↑11.5 и ↓-0.5+12
Комментарии1

Вы думаете рисовать линии это просто?

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров18K

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

Читать далее
Всего голосов 55: ↑59 и ↓-4+63
Комментарии33

Разбирая бэклог. Часть 7. Diablo. 5+7 2D и 3D альтернатив или куда меня завело изыскание аналогов известной ARPG серии

Уровень сложностиПростой
Время на прочтение17 мин
Количество просмотров1.9K

Однажды вдоволь наигравшись в данную серию игр и первую "Diablo" (1996) в отдельности, я стал интересоваться на предмет, а на что ещё можно обратить внимание со схожими параметрами? Поиск был ограничен следующими критериями:

*. RPG / ARPG. Либо другой жанр, например Action / Shooter, или rogue-like, но с явно выраженными схожими элементами.

*. Год выпуска не имеет значения.

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

2. Умеренная продолжительность, без жёсткого, затяжного захода на 100+ часов.

3. Низкий порог вхождения, отсутствие сложных механик.

4. Атмосфера.

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии10

Как использовать Singleton и не потерять тестируемость

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров3.9K

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

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

Читать далее
Всего голосов 4: ↑3.5 и ↓0.5+3
Комментарии7

Не UI единым: как провести UX-ревью сложного IT-продукта и не утонуть в данных? Гайд от практика

Время на прочтение10 мин
Количество просмотров2.2K

Привет! Это Даша, проектировщик из Selectel. Сегодня хочу поделиться своим опытом проведения UX-аудита — неоднократно я приходила в новый продукт и передо мной вставала такая задача.

Я успела набить шишек, перерыть половину рунета и в итоге на практике получить ценный опыт.

Эта статья родилась из желания помочь читателям избежать ошибок, которые совершила я (например, с головой уйти в анализ размера кнопок вместо изучения основных пользовательских сценариев), и при этом поделиться инструментами, которые помогли мне провести UX-аудит, будучи новичком в сложном продукте. Кроме того, я собрала полезный шаблон в Miro для динамичной и наглядной презентации результатов аудита команде.

Все подробности — под катом.
Читать дальше →
Всего голосов 27: ↑32 и ↓-5+37
Комментарии0

Новый взгляд на старые игры. Часть 4. Duke Nukem 3D (1996) + add-ons + EDuke32 (source-port)

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров2.6K

В этом кратком руководстве будет разобран вариант запуска "Duke Nukem 3D: Atomic Edition" (1996) с наиболее распространённым и актуальным source-портом, а также перечислен список адд-онов, которые могут представлять интерес.

Читать далее
Всего голосов 9: ↑8.5 и ↓0.5+8
Комментарии1

Разбирая бэклог. Часть 6. Спрайтовая эстетика, минимализм, загадочные письма. 4+4 необычных аркады и пазла. 1991-1999

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров1.3K

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

Читать далее
Всего голосов 6: ↑5.5 и ↓0.5+5
Комментарии0

VES — микросервис Cosmos для кодирования видео на Netflix

Время на прочтение11 мин
Количество просмотров797

Cosmos представляет собой новейшее поколение медиа-обработчика на Netflix, интегрирующее архитектуру на основе микросервисов, асинхронные рабочие процессы и функционал без привязки к серверам. Эта платформа нацелена на оптимизацию медиа-процессов внутри Netflix, повышая их гибкость и производительность, а также способствуя более продуктивной работе разработчиков. За последние годы команда Encoding Technologies (ET) усердно трудилась над модернизацией видео-конвейера с использованием платформы Cosmos.

Обновлённый конвейер состоит из множества микросервисов, каждый из которых выполняет строго определённые функции. Один из таких сервисов – Video Encoding Service (VES), который играет ключевую роль в процессе кодирования видео, преобразуя исходные медиа-файлы в форматы, подходящие для стриминга на Netflix или других студийных задач. VES сталкивается с рядом требований, связанных с обработкой контента:

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

Обязательность чанковой кодировки для соответствия требованиям задержек, с учётом различной чувствительности к ним;

Важность непрерывного выпуска обновлений для ускорения инноваций в стриминговых и студийных направлениях;

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

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

Приятного прочтения!

Читать далее
Всего голосов 7: ↑9 и ↓-2+11
Комментарии1

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

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров722

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

Очертить образ помогают архетипы — модели с набором определённых качеств. Например, ваш знакомый кажется забавным, потому что постоянно попадает в курьёзные ситуации. То же используют бренды. Вспомните M&M’s с рекламой неловких говорящих драже. Архетип — это способ очеловечить бренд.

Читать далее
Всего голосов 10: ↑8.5 и ↓1.5+7
Комментарии1

Посмотрел 100 000 Youtube Shorts и определил 10 причин БОЛЬШИХ просмотров

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров2.2K

Все просмотренные Shorts я анализировал, досмотрел/не досмотрел, зацепила ли картинка, захотелось ли репостнуть или сохранить видео. Особенно пристально вглядывался в видео, которые уже набрали миллионы просмотров, разбирал каждую секунду, каждое слово

Постараюсь на каждый из 10 пунктов привести хороший и плохой пример(ы), чтобы было наглядно понятно, что и как снимать, а не типичная вода в интернете (даже будет несколько моих видео, естественно в "хороших" примерах)/

Читать далее
Всего голосов 14: ↑9 и ↓5+4
Комментарии26

Сложнейшая проблема компьютерных наук: центрирование

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров20K

Заявляю: «Мы, как цивилизация, разучились использовать центрирование». Ну то есть мы, конечно, знаем, как это делать — очень просто:

display: flex;
justify-content: center; /* Горизонтальное центрирование */
align-items: center; /* Вертикальное центрирование */

Не спрашивайте, почему вам нужно запомнить четыре слова вместо просто горизонтальное/вертикальное; всё равно лучше, чем было до этого.

Ещё можно использовать сетку:

display: grid;
justify-items: center; /* Горизонтальное центрирование */
align-items: center; /* Вертикальное центрирование */

Также не спрашивайте, почему выражение justify-content стало justify-items.
Читать дальше →
Всего голосов 171: ↑185.5 и ↓-14.5+200
Комментарии50

Как мы создавали дизайн-систему: опыт компании Звук

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров942

Привет, Хабр! Меня зовут Мария Бажина, я Android Developer в компании Звук. 

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

Спойлер – в результате разработка фич стала быстрее в 2 раза, сборка дизайн-макетов ускорилась в 3-4 раза, а UI приложения удалось избавить от хаоса из рандомных шрифтов и иконок и унифицировать. Подробнее – в статье. 

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии2

Ближайшие события

Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург

Особенности проектирования интерфейсов в ИБ продуктах на примере Ampire

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров745

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

Читать далее
Всего голосов 3: ↑4.5 и ↓-1.5+6
Комментарии0

В чём разница между дизайнерами в агентстве и продукте. Мышление, процессы и перевоплощение

Время на прочтение12 мин
Количество просмотров557

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

Я сама 10 лет работала в разных агентствах, а в прошлом году перешла в продукт. И мне есть, что рассказать).

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии2

USM (Unified Service Management)_Шаблон

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров714

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

USM строится на основе пользовательских историй, которые описывают функциональные требования к продукту. Эти истории организуются в виде карты, которая визуализирует поток работы пользователя через различные этапы взаимодействия с продуктом. Карты User Story Mapping могут быть использованы для итеративного планирования разработки продукта, а также для улучшения понимания пользовательских потребностей и предпочтений.

Читать далее
Всего голосов 4: ↑5 и ↓-1+6
Комментарии0

UX установки диффузионного силицирования

Время на прочтение8 мин
Количество просмотров1.3K

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

Читать далее
Всего голосов 11: ↑11 и ↓0+11
Комментарии5

Lane margining: как оценить качество PCIe-соединения без дополнительной аппаратуры

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров3.9K

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

Долгое время без специального дорогостоящего инструмента нельзя было убедиться в устойчивости линка: что он не пропадает при малейших воздействиях температуры, влажности или любопытных лапок. То есть нелегко было узнать количественный запас по уровню сигнала, насколько он близок к границе потери различимости физических уровней — а значит, и разрыва соединения. Эта безнадежная ситуация изменилась с появлением четвертого поколения стандарта PCIe.

Читать далее
Всего голосов 39: ↑49 и ↓-10+59
Комментарии19

Изменить цвета и кнопки сервиса — и не сломать дизайн-систему

Время на прочтение13 мин
Количество просмотров1.5K

Меня зовут Алексей Афонин, я старший дизайнер продукта в Yandex Cloud. В прошлом году нам понадобилось полностью изменить внешний вид нашего сервиса для бизнес‑аналитики DataLens перед его выходом в опенсорс. Разработчики и дизайнеры интерфейсов часто сталкиваются с подобными задачами: есть уже работающий сервис, но его нужно стилизовать, например, в случае ребрендинга или при необходимости учесть специфический пользовательский опыт.

В наших продуктах мы пользуемся дизайн‑системой и библиотекой компонентов Gravity UI — это проект Yandex Cloud, который не так давно тоже вышел в опенсорс. В этой статье я поделюсь опытом, как мы решили задачу «перекрашивания DataLens» с её помощью. Но даже если вы не используете DataLens и ещё не знакомы с Gravity UI, наши наработки могут пригодиться командам разработчиков и дизайнеров, которые хотят стилизовать свои продукты быстрее и удобнее.

Читать далее
Всего голосов 10: ↑11 и ↓-1+12
Комментарии6

Как мы сделали визуализатор трехмерных изображений с нуля

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров4.4K

Современные томографы позволяют получать высокоточные трехмерные изображения внутренней структуры большого размера, предоставляя ценную информацию о геометрии, составе и дефектах исследуемых образцов. Размеры одной реконструкции обычно колеблются от 512 мегабайт до 1 терабайта. Для анализа таких данных используются специализированные инструменты, но традиционная визуализация трёхмерного объема реконструкции до сих пор является важным этапам оценки качества реконструкции и её интерпретации специалистом.

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

Читать далее
Всего голосов 20: ↑22.5 и ↓-2.5+25
Комментарии8
1
23 ...