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

Дизайн

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

Пишем трассировщик лучей для ZX Spectrum

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

Я люблю трассировщики лучей и даже посвятил им половину своей книги. Менее известна моя любовь к ZX Spectrum — домашнему компьютеру 1982 года, с которым я вырос и с которого начался мой интерес к графике и программированию. По современным стандартам эта машина столь смехотворно слаба (и даже по стандартам 1980-х), поэтому возникает неизбежный вопрос: в какой степени удастся портировать трассировщик лучей из книги Computer Graphics from Scratch на ZX Spectrum?

В ZX Spectrum установлен процессор Z80 на 3,5 МГц (в тысячу раз медленнее, чем современные компьютеры), который не может умножать числа (!!!), и 48 КБ ОЗУ (в миллион раз меньше); он имеет графический режим 256x176 (примерно в двести раз меньше современного разрешения), способный отображать 15 цветов (в миллион раз меньше, к тому же с довольно необычными особенностями). Интересная машина для графического приложения, активно задействующего CPU!

Я планирую реализовать его на Sinclair BASIC — встроенном языке программирования Spectrum. Это не просто BASIC, а древний, очень ограниченный диалект BASIC. Например, единственные структуры управления в нём — это FOR и IF (а у IF нет ELSE и даже ENDIF); все переменные глобальны; не существует вызовов функций, только GO TO и GO SUB; и так далее. Кроме того, он интерпретируемый, то есть сверхмедленный. Но, по крайней мере, он реализует программное умножение! Если мне нужна будет производительность, то я всегда могу переписать трассировщик на ассемблере.

Я настроил минимально необходимую среду: код на BASIC я пишу в VS Code, компилирую его с помощью BAS2TAP и запускаю в эмуляторе FUSE. Благодаря этому скорость итераций оказалась достаточно высокой.

Читать далее
Всего голосов 142: ↑141 и ↓1 +140
Комментарии 85

Эмоциональный интеллект в UX-исследованиях

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

Привет! Меня зовут Татьяна Лескова, я младший аналитик-исследователь в RuStore. Применяете ли вы эмоциональный интеллект в своих UX-исследованиях и зачем вообще вам, как специалисту, прокачивать свой эмоциональный интеллект? Расскажу о том, как бустануть качество ваших исследований и улучшить продукт через умение понимать респондента и считывать его эмоции.

Читать далее
Всего голосов 19: ↑18 и ↓1 +17
Комментарии 2

Управление проектами в работе и жизни

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

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

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

«А» — начальная точка проекта. Любой проект должен начинаться с правильной постановки задачи. От постановки и понимания задачи зависит результат, за который отвечает исполнитель. Важно услышать саму потребность, с которой к вам пришел заказчик, и интерпретировать её в постановку задачи. Запросить необходимые материалы и задать достаточное количество вопросов для качественного результата — зона ответственности исполнителя. Постановкой задачи является формулировка пользы и способа ее достижения в конкретные сроки. Польза должна быть сформулирована в мире заказчика, а не в мире исполнителя. Финальную постановку задачи нужно согласовать с заказчиком, чтобы убедиться, что вы правильно друг друга понимаете. Выявленное полезное действие в проекте будет служить вам надежным инструментом для конструктивного диалога и принятия верных решений.

«Б» в проекте — это сделанная работа. Делать ≠ сделать. Для заказчика результат либо есть, либо его нет. Путь из точки «А» в точку «Б» существует только в мире исполнителя. Если вы профессионал и цените свою репутацию, то ваши критерии к выполняемой работе должны быть выше, чем у заказчика. Работу нельзя делать плохо, даже если это устроит клиента или он не сразу заметит. Сделать ≠ сдать, сделать — это действительно сделать, вовремя запустить качественный проект и принести пользу.

Читать далее
Всего голосов 15: ↑12 и ↓3 +9
Комментарии 2

Сам написал, сам поиграл: как работали трёхмерные игры на кнопочных телефонах нулевых? Пишем 3D-шутер с нуля

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

Думаю, большинство моих читателей успела застать эру кнопочных телефонов с поддержкой Java-приложений. Помните ли вы, как мониторили разделы с загрузками на WAP-сайтах и ждали выхода новых игр, которые подойдут под ваш телефон и разрешение экрана? А какой восторг вызывали свежие 3D-игры, где графика с каждым релизом становилась всё лучше и была вполне на уровне PlayStation 1? V-Rally, Galaxy On Fire, Asphalt Urban GT, Deep3D, Sony Ericsson Tennis, Left 2 Die, Counter Terrorism 3D — думаю, хотя бы один из этих тайтлов вам знаком. Но задумывались ли вы, как работали эти игры «под капотом»? Каким образом разработчикам удавалось адаптировать полноценные 3D-шутеры и гонки под железо, где не было 3D-ускорителей (видеокарт), сопроцессора для чисел с плавающей точкой (FPU), а одноядерный процессор, работающий на частоте 100-200МГц, помимо игры обрабатывал ещё и звук, ввод, а также радиомодуль? Сегодня мы узнаем: как разрабатывали игры под J2ME, какие графические API существовали и на каких телефонах поддерживались, почему игры на Sony Ericsson шли лучше, чем на Nokia, а на «закуску» сами с нуля напишем 3D-бродилку в практической части! Интересно? Тогда добро пожаловать под кат!
Читать дальше →
Всего голосов 88: ↑87 и ↓1 +86
Комментарии 31

Истории

Экзоскелет «Норникеля»: как он таким стал

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

Всем привет! Меня зовут Владислав Давыдов, я главный менеджер центра развития цифровых технологий компании «Норникель».

Возможно, вы уже знаете, что «Норникель» ведет разработку промышленного экзоскелета. У вас могли возникнуть закономерные вопросы: Почему экзоскелет именно такой? Как мы к этому пришли и какие результаты получаем?

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

Читать далее
Всего голосов 96: ↑92 и ↓4 +88
Комментарии 95

Процедурные складки на одежде для мультфильма на основе Geometry Nodes

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

Привет, Хабр! Я Михаил Солуянов, ведущий разработчик в МТС Авто — занимаюсь генерацией синтетических изображений для обучения нейросетей. В рабочее время я Unity-разработчик, а в свободное — инди-аниматор мультфильмов. Сегодня расскажу о том, как сделать складки на одежде без симуляции ткани в Blender.

В 2020 году я сделал мультфильм «Мышиный Новый год» (ru, en), который попал на фестиваль Giffoni-50 — один из самых крутых фестивалей, специализирующихся на детской анимации. В мультфильме у меня были герои — антропоморфные мыши в миниатюрных одеждах. И мне захотелось добавить им складки на одежде, которые правдоподобно реагировали бы на их движения. Расскажу о том, как использовал Tension Map и почему перешёл в итоге на Geometry Nodes. Поехали!

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

Как писать более чистый CSS: дюжина советов от банальных до неочевидных

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

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

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

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

Разработка Tower Defense на Unity — часть 1

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

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

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

История Drag and Drop: от первого в мире графического интерфейса до современного веба

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

Всем привет! Меня зовут Александр Григоренко, я фронтенд-разработчик, и в последнее время я много работаю над веб-интерфейсами с возможностью перетаскивания объектов методом Drag and Drop. В процессе изучения стандартов и сложившихся лучших практик работы с этим подходом, мне стало интересно разобраться в истории его появления. Копнув поглубже, я выяснил, что Drag and Drop — это один из самых первых способов взаимодействия человека с компьютерной программой. В этой статье хочу рассмотреть историю появления и развития этой технологии.

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

Анатомия игры: отражение

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


Продолжаем разбирать устройство игр с небольшими вкраплениями практики. Сегодня на повестке — отражение в зеркале. Нет, не свое собственное, а отражение в зеркальных поверхностях внутри 3D-движков, в частности — в играх. Разберем, какие бывают отражения, как они реализуются и как именно сделать отражение в редакторах движка.
Читать дальше →
Всего голосов 22: ↑21 и ↓1 +20
Комментарии 12

Книга «Гейм-дизайн: как создаются игры»

Время на прочтение 9 мин
Количество просмотров 12K
image Привет, Хаброжители!

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

Книга затрагивает теорию гейм-дизайна, практические особенности реализации игр в различных жанрах, их внутренние механизмы и самые успешные проекты в конкурентном игровом мире. Майкл Киллик, получивший премию BAFTA за наставничество молодых дизайнеров видеоигр, познакомит вас с техническими аспектами разработки игр и поделится приемами, которые помогут сделать первые шаги на пути создания собственных проектов. Вы поймете особенности игровой индустрии и будете разбираться во всех этапах создания игрового продукта, от идеи до разработки и выпуска игры.
Читать дальше →
Всего голосов 11: ↑8 и ↓3 +5
Комментарии 8

Что качать дизайнеру в 2024: 7 востребованных навыков на рынке

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

Эта статья для тех, кто хочет оставаться на волне прогресса, а не оказаться погребённым под нею.

О чём поговорим:

1. Как делать дизайн для ИИ, и кто делает его сейчас?

2. Для чего дизайнеру разбираться в цифрах?

3. Зачем учиться рассказывать истории?

4. Как изменилось 3D, и почему его нельзя игнорировать?

5. Чем топовые приложения отличаются от хороших?

6. Как генеративная графика перестала быть развлечением?

7. Какого дизайнера возьмут на работу в первую очередь?

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

Делаем addon для Blender

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

Люблю Blender. Он мощный, а в последних версиях красивый! А ещё он бесплатный. И даже становится удобнее. Но, если посмотреть на то, сколько вопросов в интернете про то, как сделать что-то вполне тривиальное, начинаешь понимать, что до реального удобства там ещё далеко. С последними версиями эти вопросы становятся менее актуальными, потому что часть этих проблем уже кто-то решил за вас, написав аддон, который и только ждет что бы его активировали!

А что делать, если руками никак, а нужного функционала нет? Написать свой аддон!

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

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

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн

Психология и UX. Вортекс — ловушка для пользователей

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

Вортекс / Vortex — поведенческий шаблон , который начинается с намеренного взаимодействия с продуктом, за которым следует серия незапланированных действий. Эта цепочка создает ощущение «затягивания» в цифровое пространство, заставляя пользователя чувствовать потерю контроля.

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

Квесты — мëртвый жанр или надежда инди-разработчиков?

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

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

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

Как обновляют интерфейсы банкоматов и как это недавно сделали мы

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

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

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

Что можно улучшить в приложении? часть 2. Крадем как художники у Lamoda

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

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

Выбор размера

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

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

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

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

Как я участвовал в геймджеме | Pixel New Year Jam

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

Если тебе удобнее смотреть видео, то вот.

А это то же видео, только в текстовом формате, что кому-то может быть удобнее.

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

UX – как лучше улучшать

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

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

Начнём разбор с простого экрана загрузки фотографии паспорта.

Постичь дзен
Всего голосов 11: ↑10 и ↓1 +9
Комментарии 19

Создание сетевой игры с помощью Collagen_2, Node.js и библиотеки socket.js

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

В данной статье будет описан простой способ создания сетевой онлайн мини игры на подобии небольшой чат комнаты. Игроки могут передвигаться по полю игры, прятаться за деревьями, также есть возможность управлять камерой вида. Для тестирования игры необходимо скачать редактор зайти в папку collagen_2/games/game_3, ввести в командной строке forever start app.js. Для работы игры требуются модули socket.js и forever(глобальная инсталяция).

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