Как стать автором
Обновить
143
0
Rafael Osipov @Rafael

Пользователь

Отправить сообщение

Как работают регулярные выражения, или Движок regex с анимацией

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

К старту курса по Fullstack-разработке на Python показываем, как работают регулярные выражения, на примере их движка с визуализацией, которую вы видите на КДПВ. Под катом подробности и код.

Читать далее
Всего голосов 22: ↑21 и ↓1 +20
Комментарии 17

Отрисовка в браузере большой анимации или как я ушел с mp4 к своему формату видео

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

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

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

Как я создал собственный 3D движок и игру на нём за 20 месяцев

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

Речь идёт о игре Speebot, которая была выпущена в Steam в 2017 году.

Я разрабатывал эту игру с января 2016 года в своё свободное время в одиночку. Мною выполнено всё программирование, дизайн игрового процесса, создание графики и музыки. Кроме того, я написал собственный игровой движок с нуля.

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

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

Как я создаю игры на своём 3D движке в одиночку

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

Много лет назад я занимался созданием маленьких Flash игр и публиковал их на сайте Newgrounds. Сейчас я делаю полноценные игры для ПК.

На сегодняшний день у меня 4 законченные коммерческие игры в Steam, и самая последняя из них — выпущенная в 2021 году Pilie Pals, о процессе создания которой я расскажу в этой статье.

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

Читать далее
Всего голосов 50: ↑49 и ↓1 +48
Комментарии 13

Как муравьи решают проблемы коммивояжёров

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

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

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

Скорость света ближе, чем казалось: ученые создали первый пузырь Алькубьерре

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


Еще одна технология из Star Trek оказалась больше наукой, чем фантастикой. Ученые под финансированием DARPA создали так называемую «warp bubble» — область пространства, способную расширяться или уменьшаться быстрее скорости света. Об этом сообщает бывший специалист НАСА по варп-двигателям Гарольд Уайт. Это первый настоящий «пузырь варп-движения», созданный в лаборатории. Который, как минимум, подтверждает, что такое возможно. И, по словам Уайта, устанавливает новую перспективу для тех, кто захочет создать первый космический корабль, способный к деформации.

Читать дальше →
Всего голосов 188: ↑147 и ↓41 +106
Комментарии 255

Почему важно учитывать дальтонизм в дизайне: пример игры Among Us

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

Дальтонизм (недостаток цветового зрения) означает снижение способности видеть цвет или различия в цвете. Согласно данным сайта colourblindawarness.org, недостаток цветового зрения есть у 8% мужчин и 0,5% женщин. Всего в мире более 300 миллионов человек страдают той или иной формой цветовой слепоты.

Насколько это много? Возьмем школу для мальчиков в графствах Англии, где учится 1000 учеников. Примерно у 100 из них будет недостаток цветового зрения: 12–13 будут дейтеранопами, 12–13 — протанопами, у 12–13 будет одна из форм протаномалии и у 62 — дейтераномалия того или иного вида. Примерно у половины нарушение будет умеренной или тяжелой степени.

Такое положение дел влияет и на организацию взаимодействия с пользователем: дизайнерам часто приходится учитывать, какие последствия для дальтоников будет иметь выбор тех или иных цветов. Но в какой степени цвета влияют на дизайн или игровой процесс? Чтобы разобраться в этом, я решила провести небольшое исследование на примере чрезвычайно популярной игры Among Us, в которой цветовое кодирование — основной способ различения игроков.

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

Замеряем производительность с помощью BenchmarkDotNet

Время на прочтение 6 мин
Количество просмотров 34K
imageДобрый день. Неделю назад я в третий раз применил библиотеку для создания\запуска .NET бенчмарков BenchmarkDotNet. Библиотека оказалась достаточно удобной, но практически не освещенной на хабре, что я сейчас и исправлю.

Под бенчмарком я подразумеваю измерение времени выполнения метода(ов). Для начала представим процесс написания бенчмарка руками. Создаем тестируемый метод, выбираем Release билд, создаем «замеряющий» метод, в нем собираем мусор, ставим StopWatch в начале и в конце, запускаем прогрев, запускаем тестируемый метод. Если тестируемый метод выполняется быстрее одного «тика» StopWatch, запускаем тестируемый метод много раз (пусть будет миллион), делим суммарное время на миллион, получаем результат (при этом нужно не забыть вычесть из суммарного времени время «холостого» прогона цикла на миллион операций).

А ведь это еще не все!
Всего голосов 20: ↑17 и ↓3 +14
Комментарии 19

Список ноотропов, покупка которых не окажется пустой тратой денег

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

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

Читать далее
Всего голосов 121: ↑85 и ↓36 +49
Комментарии 238

Эффект бабочки в развитии способностей ребенка от рождения до 7 лет к естественным наукам

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

Мы с мужем оба не чужды педагогике. Я много лет учила детей в Эколого-биологическом центре Аничкова дворца, муж — студентов в Политехе. И поскольку обстоятельства сподобили выращивать еще и общего ребенка, то не обошлось без дискуссии, как это делать. На том, что дитё надо обучить мыслить научно, мы сходились полностью. Однако дальше начинались разногласия. Муж предлагал подождать, пока оно само вырастет и начнет задавать интересные вопросы. Ибо по началу с маленьким кусочком мяса скучно и общих тем для разговора нет. И вообще, как можно обучать математике или биологии нечленораздельно говорящее существо, которое в ответ на объяснения теоремы Байеса/цикла Кребса пузыри из слюней пускает? Но я думаю, что по счастью, все не так уныло и бесполезно, как кажется. Попробую объяснить, почему.

Читать далее
Всего голосов 37: ↑27 и ↓10 +17
Комментарии 32

Selenium для игр: автоматизируем крестики-нолики

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

На тему моего стрима на этой неделе меня вдохновила демонстрация Судхарсана Селвараджа, где он использовал Selenium для игры на виртуальном пианино. Я тоже хотела использовать Selenium, чтобы немного развлечь вас и себя, поэтому составила этот «рецепт», наглядно демонстрирующий, как автоматизировать игру в крестики-нолики (tic-tac-toe) онлайн!

Что особо примечательно в этом рецепте, так это то, что он выходит за рамки привычного использования Selenium для тестирования и способствует развитию навыков проектирования.

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

Делаем вечную лампочку

Время на прочтение 3 мин
Количество просмотров 297K
На упаковках светодиодных ламп указывают срок службы 30, 40 или 50 тысяч часов, но многие лампочки не живут и года.

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

Читать дальше →
Всего голосов 243: ↑238 и ↓5 +233
Комментарии 361

Введение в Roslyn. Использование для разработки инструментов статического анализа

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

Roslyn является платформой, предоставляющей разработчику различные мощные средства для разбора и анализа кода. Но наличия таких средств недостаточно, нужно понимать, что и для чего необходимо использовать. Данная статья несёт цель ответить на подобные вопросы. Помимо этого, будет рассказано об особенностях разработки статических анализаторов, использующих Roslyn API.
Читать дальше →
Всего голосов 29: ↑29 и ↓0 +29
Комментарии 11

Особенности локализации игр на иностранные рынки

Время на прочтение 14 мин
Количество просмотров 28K
Под катом вы найдете лонгрид на тему локализации игр, подготовленный на базе открытой лекции Алексея Медова — ведущего редактора Inlingo Game Localization Studio. Лекция проходила в рамках нашей образовательной программы «Менеджмент игровых интернет-проектов» в ВШБИ. О чем же мы поговорим в статье?

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



Читать дальше →
Всего голосов 26: ↑25 и ↓1 +24
Комментарии 16

Отслеживаем прогресс выполнения в Python

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

Зачем нужны индикаторы прогресса?


Индикаторы прогресса (progress bar) — визуальное отображение процесса работы. Они избавляют нас от необходимости беспокоиться о том, не завис ли скрипт, дают интуитивное представление о скорости его выполнения и подсказывают, сколько времени осталось до завершения.


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

Читать дальше →
Всего голосов 43: ↑42 и ↓1 +41
Комментарии 11

Это норма — 2: как запекаются карты нормалей

Время на прочтение 6 мин
Количество просмотров 25K
Это вторая часть серии туториалов о картах нормалей. Первая часть находится здесь, но для понимания второй части читать её не обязательно.

Общий принцип запекания карты нормалей относительно прост: у нас есть lowpoly-модель с UV-координатами и highpoly-модель; мы переносим информацию о нормалях с highpoly на lowpoly. Благодаря этому lowpoly будет отражать свет так же, как highpoly.

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

Если вы не контролируете нормали вершин lowpoly-модели, то потеряете контроль над картой нормалей.

image
Всего голосов 22: ↑22 и ↓0 +22
Комментарии 0

Это норма: что такое карты нормалей и как они работают

Время на прочтение 6 мин
Количество просмотров 74K
На протяжении нескольких лет я пытался разобраться в картах нормалей и в проблемах, которые обычно возникают при работе с ними.

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

Первые созданные человеком 3D-модели выглядели примерно так:

image

Это замечательно, но у такой модели есть очевидное ограничение: она выглядит слишком полигональной.

Наиболее очевидное решение: добавить больше полигонов, сделав поверхность более равномерной и гладкой, вплоть до того, чтобы полигоны казались единой гладкой поверхностью. Но оказывается, для того, чтобы сделать поверхности наподобие сфер гладкими, нужно огромное количество полигонов (особенно сегодня).
Читать дальше →
Всего голосов 72: ↑69 и ↓3 +66
Комментарии 6

Чего стоит идея и как превратить ее в концепт: инструменты геймдизайнера

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


«Идея ничего не стоит» — эту мантру слышал наверное каждый геймдизайнер. Важны лишь концепт и реализация. Только на бумаге или экране компьютера идея начинает обретать смысл и форму. И я задался вопросом: а есть ли какие-то базовые принципы по превращению идеи в концепт?

Внутри перевод с краткой теорией и практическими советами для всех, кто ждет вдохновения или не знает, с чего начать.
Читать дальше →
Всего голосов 20: ↑18 и ↓2 +16
Комментарии 3

Полезные советы по Python, которых вы ещё не встречали

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


Читать дальше →
Всего голосов 62: ↑61 и ↓1 +60
Комментарии 7

52 датасета для тренировочных проектов

Время на прочтение 5 мин
Количество просмотров 102K
  1. Mall Customers Dataset — данные посетителей магазина: id, пол, возраст, доход, рейтинг трат. (Вариант применения: Customer Segmentation Project with Machine Learning)
  2. Iris Dataset — датасет для новичков, содержащий размеры чашелистиков и лепестков для различных цветков.
  3. MNIST Dataset — датасет рукописных цифр. 60 000 тренировочных изображений и 10 000 тестовых изображений.
  4. The Boston Housing Dataset — популярный датасет для распознавания паттернов. Содержит информацию о домах в Бостоне: количество квартир, стоимость аренды, индекс преступлений.
  5. Fake News Detection Dataset — содержит 7796 записей с разметкой новостей: правда или ложь. (Вариант применения с исходником на Python: Fake News Detection Python Project )
  6. Wine quality dataset — содержит информацию о вине: 4898 записей с 14 параметрами.

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

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность