Pull to refresh
0
0
Светлов Александр @Mehalich

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

Send message

Коммуникации в программировании — во сне и наяву

Reading time9 min
Views12K
В детстве я считал библейскую историю про Вавилонскую башню — странноватой сказкой, пока не начал сталкиваться с аномалией непонимания людьми друг друга чуть ли не каждый день в программных проектах. Простыми словами суть истории про башенку такая: люди «кодили» большую, страшшшшную, мощщщную систему и до того усложнили архитектуру и заумничались — что стали запутываться, наступать друг другу на ноги, руки и головы и вся конструкция стала колом к чертовой матери — команда развалилась и переругалась, «фрилансеры» с дубинами в руках, глиняными дощечками (вместо ноутов) под мышкой и запасами копченого мяса разбрелись по земле.


Читать дальше →

О трехмерном Z-order замолвите слово

Reading time9 min
Views8.4K

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

Вы спросите: «Кому вообще интересны эти небесные объекты?» и даже: «Ну и при чём здесь 2ГИС?» и будете отчасти правы. Ведь методы пространственного индексирования являются универсальной ценностью.

Обычно, имея дело с геоданными, мы работаем с локальной проекцией на плоскость и тем самым отмахиваемся от искажений. В масштабах планеты это сделать труднее — начинают выпирать астрономические проблемы.
Что касается объёмов данных, уже сейчас в OSM более 4 млрд точек и 300 млн дорог. Это соизмеримо с масштабами, характерными для звёздных объектов. Да и помимо всего прочего, звёздные атласы — отличный стенд для разработки и отладки пространственных алгоритмов.

Обещанные тонкости и выводы под катом.
Читать дальше →

xfcRS — оригинальный лаконичный шустрый рендер сглаженных тайлов, «expansion fast cell — Rounded Squares»

Reading time13 min
Views4.4K
image

xfcRS — многофункциональный быстрый алгоритм, для тайлового рендера с гладкими переходами / для построения изоповерхности / для выделения края в растре / для постпроцессинга как пиксельный шейдер — для пиксельарт масштабирования 8х8 (для быстрой растеризации шрифтов, иной материал для upscale'инга без доработок не рекомендуется). Расшифровка акронима — «eXpansion Fast Cell — Rounded Squares»

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

Если у вас возникнут вопросы по терминам обезательно загляните сюда
Тезаурус:
— Рендеринг — процесс построения кадра на экране. Рендер, соответственно алгоритм который это делает.
— Растр — массив точек экрана или графического файла текстуры. Растеризация — процесс построения этого массива точек, из неких входных данных.
— Upscale — Так именуют процесс и осуществляющие его алгоритмы, предназначенные масшатбировать графику конкретно в сторону увеличения размеров. Основной фокус в них уделяется борьбе с появлением негативных эффектов искажения картинки, такие как излишняя зернистость, размытие, и др.
— Пиксельарт — растровая графика, либо в силу своего давнего года выпуска, либо специально имитирующая ретро компьютеры, не борющаяся за большое разрешение растра.
— Постпроцессинг — В общем случае, алгоритм который работает после некоторого другого предваряющего его работу алгоритма (тот может в таком случае называться препроцессинг).
— Шейдр — В общем случае алгоритм постпроцессинга реализованный для аппаратного исполнения на видеокарте.

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

— Marshing Squares – алгоритм генерации изолиний на двумерном скалярном поле. см. ru.wikipedia.org/wiki/Marching_squares
— Изолиния — Условная линия служащая для приближенного отражения положения точной.
— Апроксимация — Приближенное значение чего либо точного.


Забегая вперед, скажу сразу: это не улучшенный Marshing Squares,
Читать дальше →

Как я программирую на Python

Reading time1 min
Views40K
Часто с началом нового проекта программист не в состоянии увидеть полную картину — он не знает с чего начать, где получить информацию, сколько ее получить, при этом есть шанс засесть за документацией надолго пока не пропадет желание что-либо делать. Я относительно часто делаю проекты «для души» в ранее незнакомых областях, например, программировал микроконтроллеры, делал свой segway, проектировал на ПЛИС свой микропроцессор, делал плагины под Counter-Strike, софт к купюроприемникам и другие проекты, в которых на старте был абсолютным нулем.



А недавно...

Unity3D Ускорить отрисовку 2D анимации в разы? Легко

Reading time6 min
Views17K
В этой статья мне хотелось бы рассказать о том, как была ускорена отрисовка монстров при создании игры Alien Massacre. Данное решение подойдет для любых проектов, которые испольуют спрайтовую анимацию.

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

  • 1 Необходимо обеспечить отрисовку большого числа анимированных объектов на сцене. Ведь мы хотим, чтобы игрок отстреливался от полчищ монстров.
  • 2 Прогресс анимации должен быть различен для каждого из объектов. Ведь мы не хотим, чтобы мобы ходили строем.

Решение «из коробки»


Безусловно, первое решение было простым: все сделать с помощью уже встроенного в UnityEngine компонента Animator. Посмотрим, что из этого получается.
Читать дальше →

Чем игровая статистика отличается от данных плейтестов

Reading time4 min
Views5.3K
Сейчас, работая в исследовательской компании, я иногда встречаю разработчиков, которые уверенно заявляют, что им не нужны никакие исследования аудитории, раз у них есть статистика. У них за спиной данные от сотен тысяч или даже миллионов игроков и это придает им уверенности. Но все ли так однозначно? Совсем неоднозначно, потому что статистика показывает, что делают игроки, но не отвечает на вопросы “почему”.

В 2013 на моем самом масштабном проекте World of Battles (MMO RTS) мы получали статистику о каждом значимом действии игрока (а их были сотни тысяч), поведении приложения и сервера. Часть статистики была доступна “вживую”, а часть появлялась постфактум на следующий день в процессе автоматической обработки данных на сервере.

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


Читать дальше →

Мультиклеточный процессор — это что?

Reading time18 min
Views52K
Многие слышали о мультиклеточной архитектуре, процессорах и даже первых устройствах на них. Особенно продвинутые пользователи опробовали свои алгоритмы. Были проведены первые простые тесты производительности, а также пользователь Barsmonster, вытравил кристалл процессора Р1. Сейчас уже проходит первые проверки процессор R1 и скоро будет доступен всем. Но ответ на вопрос о том, как работает мультиклеточная архитектура и в чём её отличие, знают не все. Попытаемся сейчас ввести в курс дела.
Читать дальше →

Доработка 3D-принтера MC7 Prime mini от Мастер Кит

Reading time2 min
Views8.3K
Вашему вниманию предлагается доработка 3D-принтера MC7, в результате которой становится возможным оснастить его популярным набором электроники: Arduino Mega + шилд RAMPS1.4 + 3D Smart Controller. Последний компонент представляет собой 4х-строчный LCD-дисплей с энкодером и считывателем SD-карты. С его помощью ваш принтер превращается в автономное устройство и не требует подключения к компьютеру для печати.


Читать дальше →

Основы геймдизайна: 20 настольных игр. Часть вторая: нарды, монополия, скрэббл

Reading time11 min
Views25K
В статье Джона Харриса из серии «Основы геймдизайна» представлен подробный обзор самых популярных настольных игр, включая традиционные вроде шахмат и го, ролевые вроде «Зова Ктулху», европейские вроде «Колонизаторов» и многие другие, у которых есть чему поучиться.


Читать дальше →

Подводные камни при релизе игры в Google Play и App Store

Reading time8 min
Views35K


Если вы разрабатываете игру под Android или iOS, рано или поздно вам придётся заняться подготовкой к публикации на Google Play и App Store. Но если вы ещё ни разу не релизили мобильную игру, многие вещи и правила могут оказаться неприятным сюрпризом и сильно замедлить процесс публикации.


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


  • Почему нельзя просто так взять скриншоты из игры и вставить их в описание?
  • Почему стоит ознакомиться с требованиями обоих сторов, даже если на данный момент релиз только на один из них?
  • К чему могут придраться на ревью в App Store и насколько это может затянуться?
  • Какие подводные камни ждут разработчика Free-to-play игры?
  • Почему пользователи Windows будут страдать при публикации в App Store?
  • Почему могут не работать тестовые платежи на iOS?
Читать дальше →

Что разработчики интерфейсов могут почерпнуть из японских видеоигр начала девяностых

Reading time6 min
Views25K
image

Я пишу это с лёгкой печалью, пересматривая мои любимые ролевые игры для Super Nintendo, и понимаю:

современный дизайн пользовательского интерфейса избаловал меня.

И это ощущение довольно распространённое. Читатель Hugon на форуме Quarter to Three пишет:

Когда я думаю о консольных RPG, я вспоминаю страницы с весьма неинформативным описанием персонажа и плохой навигацией. И вспоминаю слёзы радости, если в игре было хотя бы самое простое сравнение предметов."

Спасибо, «прекрасный интерфейс».

В прошлом я не слишком придирался к качеству. Когда я сидел сзади в автомобиле папы и ломал клавиатуру Nokia в попытке не позволить змее съесть свой хвост, мне в голову не приходили более глубокие мысли чем: «ага!», «супер!» или «ааааа!».

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

PHD VI: как у нас угнали дрона

Reading time9 min
Views46K


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

Но на самом деле, как мы уже много раз упоминали, SDR (software-defined radio) — отличный инструмент для доступа в мир IoT, где уровень вхождения определяется уровнем добросовестности производителя IoT-решений. Однако даже не имея SDR можно творить чудеса, пусть и в ограниченном пространстве частот и протоколов.

Цель — перехватить управление дроном.

Входные данные:

  • диапазон управления дроном: 2,4 ГГц ISM,
  • управление осуществляется модулем nRF24L01+ (на самом деле — его клоном BK2423).

Средства (выдавались желающим): Arduino Nano, nRF24L01+.

Результат — угонщик получил Syma X8C в подарок.

Так как среди желающих угнать наш дрон оказались уже подготовленные люди, имеющие в арсенале HackRF, BladeRF и другие серьезные игрушки, мы опишем два метода — SDR и непосредственно nRF24L01+.
Читать дальше →

Дайджест разработки на Unreal Engine

Reading time2 min
Views34K
Игры на Unreal Engine, разработка на Unreal Engine, туториалы для Unreal Engine и другие интересные материалы об Unreal Engine вы найдете в нашем дайджесте. И кажется, мы забыли упомянуть самое главное – дайджест посвящен Unreal Engine.


Читать все

Дешёвый хронограф для пневматики своими руками

Reading time9 min
Views101K


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

Рудольфу Свореню — 89! Как книга «Электроника шаг за шагом» — изменила жизнь людей

Reading time25 min
Views65K
Про Рудольфа Свореня (автора книги «Электроника шаг за шагом») мы делали несколько постов. И в частности про кампанию по переизданию этой культовой книги. В анкету на предзаказ уже отметилось почти 500 человек, охват удивительный — города от Калининграда, до Сахалина. Из Канады и США. Из эстонского Таллина. Киев, Харьков. Минск. Вильнюс. Несколько заявок из Казахстана.

И в частности некоторые отзывы:

"Читал несколько раз и каждый раз обнаруживал что-то новое. Даже после «искусства схемотехники», которая по сути является ВУЗовским учебником, перечитывать «Шаг за шагом» было поучительно. Как она на меня повлияла: начинал как электронщик, но сейчас работаю DSP-программистом. Если бы не прочитал её и не подхватил бы её дух — вряд ли стал бы разработчиком. Благодаря этой книге я проникся системой ценностей инженеров и стал инженером."

"Читал почти все книги. Изменила жизнь..."

"Мой первый электро букварь :)"

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

"Прочитана до дыр. Книга дала серьезный толчок для дальнейшего развития в этой области. Именно из-за этой книги я связал свою жизнь с электроникой. Спасибо!"

"Электроника шаг за шагом — вдохновляет к творчеству."

В это воскресенье 29 мая — у Рудольфа Анатольевича был День Рождения — 89 лет!, в честь этого дня — мы решили сделать небольшой подарок — и попросили людей написать отзыв о том, как именно книги Р.А. повлияли на их жизнь — на выбор будущей профессии. И для тех кто не читал книгу — было бы интересно узнать, что же такого особенного в этой книге что она смогла объединить стольких людей?
Читать дальше →

Сравнение конфигураций Dependency Injection фреймворков

Reading time13 min
Views39K

Много раз я спрашивал себя, что какой IoC контейнер подойдет для того или иного проекта. Их производительность — это только одна сторона медали. Полное сравнение производительности можно найти здесь. Другая сторона медали — простота и скорость обучения. Так что я решил сравнить несколько контейнеров с этой точки зрения и взял Autofac, Simple Injector, StructureMap, Ninject, Unity, Castle Windsor. На мой взгляд, это наиболее популярные IoC контейнеры. Вы можете найти некоторые из них в списке 20 лучших пакетов NuGet и также я добавил другие по своим предпочтениям. Лично мне очень нравится Autofac и во время работы над этой статьей я еще больше утвердился, что это лучший выбор в большинстве случаев.


Здесь описываются основы IoC контейнеров, таких как конфигурация и регистрации компонентов. Есть мысль так же провести сравнение управления lifetime scope и продвинутых фитч. Примеры кода можно найти в репозитории LifetimeScopesExamples GitHub.

Читать дальше →

Городской сканер из Half-Life 2 стал реальностью

Reading time1 min
Views24K

За тобой следят, %username%

Для разведки в городе Сити-17 из Half-Life 2 применялись разведывательные дроны особого типа, City Scanner. Полицейские силы из игры использовали такие дроны для того, чтобы следить за порядком в городе, и фиксировать все нарушения.

Теперь такой дрон стал реальностью. Правда, работают с ним не правоохранители, а любители квадрокоптеров. Создатель дрона — житель Саратова Валентин Демченко. Уже в ходе первого испытания дрон вызвал удивление прохожих. Еще бы — ведь не каждый день видишь перед собой то, что до сих пор было только частью популярной игры.
Читать дальше →

Делаем трехосевой фрезерный станок с числовым программным управлением

Reading time10 min
Views35K
Идея сделать станок дома руками не нова. Каждый кто задумывается над реализацией такого оборудования в домашних условиях, должен руководствоваться своим мотивом создания. Мне это необходимо, потому, что от природы у меня не на столько ровные руки, чтобы сделать хорошие, даже более или менее габаритные, детали, а часто возникает задача изготовить точную сложную деталь, с чем станок хорошо справится. Всегда хватает новых идеи и задумок для реализации, а времени не очень много.


Читать дальше →

Игры для программистов

Reading time7 min
Views53K

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

Information

Rating
Does not participate
Location
Таллин, Эстония, Эстония
Date of birth
Registered
Activity