Pull to refresh
8
0
Michael S. Kataev @lPestl

Game/Software Developer

Send message

Город в бутылке — движок Raycasting всего на 256 байт

Reading time8 min
Views17K

Привет любителям микро-кодирования. Вот вам кое-что невероятное: крошечный движок raycasting (метод “бросания лучей”) и генератор городов, который помещается в отдельный 256-байтовый HTML-файл.

Читать далее
Total votes 65: ↑57 and ↓8+65
Comments12

Как работает физика в играх

Level of difficultyMedium
Reading time17 min
Views20K

В мире видеоигр игровая физика играет важную роль, определяя реалистичность и взаимодействие игрового мира с игроком. Что же происходит под капотом? Какие алгоритмы и подходы используются в современных движках? И что же значит «застрять в текстурах»? (спойлер: чушь полнейшая)

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

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

Как написать свою маленькую ОС

Level of difficultyEasy
Reading time7 min
Views44K


Большое начинается с малого. Например, ядро Linux 0.0.1 состояло всего из 10 239 строк кода, из них 20% комментарии. Такой проект вполне может осилить студент в качестве курсовой или дипломной работы, программируя по вечерам на домашнем ПК (собственно, Линус и написал его во время учёбы в университете, когда вернулся из армии).

Если один студент смог это сделать тогда, то почему нельзя повторить? И действительно, в интернете есть даже специальные обучающие ресурсы для написания новых ОС и целые сообщества энтузиастов, которые помогают друг другу в этом непростом деле.
Читать дальше →
Total votes 83: ↑78 and ↓5+98
Comments26

Уйти нельзя остаться — что делать, когда очень хочется уволиться

Reading time12 min
Views51K

Согласно статистике, в РФ работу меняют в среднем раз в 3,5 года, а в США — раз в 4,1 года. Но статистика — всего лишь цифры, в неё попадают и те, кто меняет работу каждые 3-6 месяцев, и те, кто остается с компанией по 10-15 лет. Если прямо сейчас вы уже занесли ручку над заявлением об увольнении, предлагаю подумать, подышать и еще раз проверить все причины своего решения. 

Я выделила несколько причин, которые могут привести к решению уволиться. На самом деле, их намного больше, но я постаралась перечислить основные.

Привет, Хабр! Меня зовут Рушана Каюмова, я — Lead HR в Экспресс 42. Эта статья посвящена скользкой и неприятной теме увольнения. Это только кажется, что уволиться — просто. На деле во всех историях, которые я слышала о смене работы, возникали какие-то шероховатости. Предлагаю пройтись по процедуре. Эта информация будет полезна всем, у кого есть работа, а также лидам и руководителям. Ведь каждый рано или поздно сталкивается с необходимостью уволиться самому или с увольнением сотрудника.

Читать далее
Total votes 30: ↑16 and ↓14+5
Comments36

Бесплатный левел-дизайн, или как строить ландшафт в реальном времени на UE4

Reading time16 min
Views11K

Всем привет! Меня зовут Влад Маркелов, и сегодня я расскажу, как можно бесплатно и быстро создавать огромные игровые уровни и как в реальном времени строить ландшафт по информации из Интернета.

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

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

Slate UI Framework (UE4/5) — standalone application

Reading time11 min
Views8.6K

Slate is written entirely in C++ and runs on all Unreal Engine 4 supported platforms. It is render interface agnostic, which allows it to be used in standalone desktop and mobile applications that do not depend on the game engine.

Gerke Max Preussner о Slate UI Framework

Последние 6 лет я много работаю с Unreal Engine 4. Вернее не с самим движком, а с его различными модулями, с помощью которых мы выстраиваем свою базу тулов и различных технических решений вокруг основного игрового проекта. Несмотря на зоопарк различных технологий, который образовался вначале, со временем наша собственная экосистема постепенно начала стандартизироваться. Всё больше ребят начали писать более качественные расширения для Unreal Editor именно на Slate UI Framework. Конечно, когда нужно сделать UI для функциональности, которую можно "впихнуть" в одну кнопку, проще реализовать это на UMG в Editor Utility widget. Но если нужно что-то посложней, например, нужна асинхронность в процессе выполнения или, например, необходимо рисовать на UI TreeView (деревья), то тут без обращения к Slate модулю - не обойтись. Так же для многих UI тулов рано или поздно встаёт вопрос о возможности их самостоятельного существования, в отвязке от конкретного проекта, а в идеале - без привязки к Unreal Editor. Про сборку Stand Alone приложения, с UI от редактора UE4/5, я и хочу вам рассказать.

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

(Не)официальное приложение Хабра — HabrApp 2.0: получение доступа

Reading time3 min
Views17K

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



Было решено: нужно что-то удобное, приятное, своё. Что насчёт своего приложения для Хабра?
Читать дальше →
Total votes 67: ↑65 and ↓2+63
Comments76

Асинхронность в программировании

Reading time26 min
Views96K

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


В основе материала — расшифровка доклада Ивана Пузыревского, преподавателя школы анализа данных Яндекса.


Читать дальше →
Total votes 71: ↑67 and ↓4+63
Comments70

Плоская Земля: эксперименты и доказательства

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


Total votes 261: ↑256 and ↓5+251
Comments299

Интерактивность без гаджетов

Reading time10 min
Views5K
Однажды мне посчастливилось попасть в ВДНХ, на экспозицию Политехнического музея. Это было около 5 лет назад, и на тот момент, пожалуй, это была самая интересная интерактивная выставка из всех, которые доводилось видеть. Но как и полагается уважающей себя выставке, она дала толчок к размышлениям – а что же такое интерактивность, и была ли эта выставка по-настоящему интерактивной? Попробуем разобраться.

Слово «интерактивный» предполагает, что если что-то с чем-то взаимодействует, то все в порядке, интеракция есть.

Но вот если присмотреться…

image
Читать дальше →
Total votes 27: ↑26 and ↓1+25
Comments9

Простое объяснение алгоритмов поиска пути и A*

Reading time13 min
Views68K
image

Часть 1. Общий алгоритм поиска


Введение


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

Цель данной статьи — объяснить поиск пути в целом и A* в частности очень понятным и доступным образом, положив таким образом конец распространённому заблуждению о том, что эта тема сложна. При правильном объяснении всё достаточно просто.

Учтите, что в статье мы будем рассматривать поиск пути для игр; в отличие от более академических статей, мы опустим такие алгоритмы поиска, как поиск в глубину (Depth-First) или поиск в ширину (Breadth-First). Вместо этого мы постараемся как можно быстрее дойти от нуля до A*.
Читать дальше →
Total votes 29: ↑29 and ↓0+29
Comments11

Новости игровой индустрии (11-25 марта 2019)

Reading time9 min
Views5.8K

Продолжаем серию новостей, выпуск третий.


GDC 2019! Если транслировать совершенно все новости оттуда, то ни в какой дайджест не поместится, хватит на год описывать всякие мелочи. Поэтому по верхам.



Megacity Demo


  • Unity опубликовали клёвую технодемку Megacity, показывающую, на что способен Burst Compiler. Напоминаю, BC — это такая штука, которая компилирует особое подмножество C# в натив, и тем самым достигает лютейшего перформанса. Я когда-то делал для Хабра интервью с одним из разработчиков этой фичи, рекомендую ознакомиться. Сейчас видео демки можно скачать с owncloud с сайта Unity или нагуглить что-нибудь перепакованное на YouTube. Например:
Читать дальше →
Total votes 22: ↑21 and ↓1+20
Comments4

Quick Draw Doodle Recognition: как подружить R, C++ и нейросетки

Reading time32 min
Views6.8K


Привет, Хабр!

Осенью прошлого года на Kaggle проходил конкурс по классификации нарисованных от руки картинок Quick Draw Doodle Recognition, в котором среди прочих поучаствовала команда R-щиков в составе Артема Клевцова, Филиппа Управителева и Андрея Огурцова. Подробно описывать соревнование не будем, это уже сделано в недавней публикации.

С фармом медалек в этот раз не сложилось, но было получено много ценного опыта, поэтому о ряде наиболее интересных и полезных на Кагле и в повседневной работе вещей хотелось бы рассказать сообществу. Среди рассмотренных тем: нелегкая жизнь без OpenCV, парсинг JSON-ов (на этих примерах рассматривается интеграция кода на С++ в скрипты или пакеты на R посредством Rcpp), параметризация скриптов и докеризация итогового решения. Весь код из сообщения в пригодном для запуска виде доступен в репозитории.

Содержание:


  1. Эффективная загрузка данных из CSV в базу MonetDB
  2. Подготовка батчей
  3. Итераторы для выгрузки батчей из БД
  4. Выбор архитектуры модели
  5. Параметризация скриптов
  6. Докеризация скриптов
  7. Использование нескольких GPU в облаке Google Cloud
  8. Вместо заключения
Читать дальше →
Total votes 48: ↑48 and ↓0+48
Comments7

DynamicData: Изменяющиеся коллекции, шаблон проектирования MVVM и реактивные расширения

Reading time10 min
Views19K


В феврале 2019 года состоялся релиз ReactiveUI 9  —  кроссплатформенного фреймворка для построения приложений с GUI на платформе Microsoft .NET. ReactiveUI  — это инструмент для тесной интеграции реактивных расширений с шаблоном проектирования MVVM. Знакомство с фреймворком можно начать с серии статей на Хабре или со вступительной страницы документации. Обновление ReactiveUI 9 включает в себя множество исправлений и улучшений, но, пожалуй, самое интересное и значимое изменение — тесная интеграция с фреймворком DynamicData, позволяющим работать с изменяющимися коллекциями в реактивном стиле. Попробуем разобраться, в каких случаях нам может пригодиться DynamicData и как устроен внутри этот мощный реактивный фреймворк!
Читать дальше →
Total votes 36: ↑36 and ↓0+36
Comments4

Предотвращение устаревания учебных материалов

Reading time4 min
Views7.4K

Кратко о ситуации в ВУЗах (личный опыт)


Для начала стоит оговорить, что изложенный материал субъективен, так сказать "взгляд изнутри", но по ощущениям информация актуальна для многих государственных ВУЗов постсоветского пространства.


Ввиду спроса на специалистов ИТ, многие учебные заведение открыли соответствующие направления подготовки. Более того, даже до студентов вовсе не "айтишных" специальностей дошло множество предметов ИТ-ого профиля, зачастую это Python, R, менее везучим многим приходится осваивать "пыльные" учебные языки, вроде Pascal.


Если посмотреть глубже, то все не так просто. Не все преподаватели успевают за "трендами". Лично я, учась на "программистской" специальности столкнулся с тем, что у некоторых преподавателей нет актуальных конспектов лекций. Если говорить точнее, преподаватель скинул старосте на флешку фото конспектов, написанных от руки каким-то студентом. Об актуальности таких материалов как методички по WEB-программированию (2010-ого года) я вовсе молчу. Также остается догадываться, касательно того, что происходит в техникумах и худших из худших учебных заведениях.

Читать дальше →
Total votes 21: ↑18 and ↓3+15
Comments31

Unity: процедурное редактирование Mesh

Reading time16 min
Views14K
Преобразование моделей «на лету» — нередкая практика в симуляции физики деформаций, а также в играх с динамически генерируемым и изменяемым контентом. В таких случаях удобно применять методы процедурного редактирования и создания геометрии. Последние часто позволяют сэкономить заветные байты при передаче подгружаемых из сети данных. Кроме того — это весело!

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

Читать дальше →
Total votes 24: ↑21 and ↓3+18
Comments9

Гвозди в крышку гроба рунета

Reading time11 min
Views89K
Все конечно в курсе последних обсуждений в государственной думе по поводу автономного рунета. Многие об этом слышали, но что это такое и какое к нему это имеет отношение — не задумывались. В данной статье я попытался объяснить, зачем это нужно и каким образом это повлияет на российских пользователей глобальной сети.

image
Читать дальше →
Total votes 228: ↑201 and ↓27+174
Comments659

Пересечение тестирования и архитектуры: интервью с Нилом Фордом

Reading time23 min
Views4.1K


Что может значить должность «QA architect»? А что значит совсем уж непонятная должность «meme wrangler»? С какого момента при работе над архитектурой надо подключать тестировщиков? Как менять процессы в организации так, чтобы люди при встрече с первой же сложностью не возвращались к старым?

Нил Форд на своём сайте представляется тремя вариантами: «ThoughtWorker» (сотрудник компании ThoughtWorks, которую многие знают из-за Мартина Фаулера), «Software Architect» и «Meme Wrangler». Вскоре на нашей конференции Heisenbug он расскажет о создании «эволюционных архитектур», которые возможно менять при изменении внешних обстоятельств. А пока что Михаил xomyakus Дружинин (участник программного комитета Heisenbug) расспросил Нила: и о том, как тема его выступления пересекается с тестированием, и о многом другом.
Читать дальше →
Total votes 22: ↑21 and ↓1+20
Comments0

Немного о затенении по Фонгу

Reading time6 min
Views12K

«Мы не можем ожидать, что у нас получится отобразить объект точно таким, каким он является в реальности, с текстурами, тенями и т.д. Мы надеемся только на то, чтобы создать изображение, которое достаточно близко к достижению определённой степени реализма».

Буй Тыонг Фонг

Буй Тыонг Фонг родился в 1941 году и стал учёным-информатиком во время Вьетнамской войны. Должно быть, ему сложно оказалось завершить своё обучение в токсичной среде 60-х, не говоря уже о том, что его призвали на фронт! Но ему удалось выжить и дожить до 1975 года, прежде чем его жизнь забрала лейкемия спустя всего два года после того, как он заложил для мира фундамент современной теории освещения и затенения: шейдер Фонга.
Читать дальше →
Total votes 20: ↑20 and ↓0+20
Comments0

Information

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

Specialization

Software Developer, Game Developer
Lead