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

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

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

2D магия в деталях. Часть первая. Свет

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

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

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

Беззеркальные камеры и закон компьютерных мощностей

Время на прочтение 10 мин
Количество просмотров 113K
Бум компактных системных камер, разразившийся три года назад, застал врасплох как орды кропозеркальщиков, продолжавших на все лады расхваливать преимущества любимых систем, так и любителей топовых компактных камер, готовых вкладывать огромные деньги в функциональность фотоаппаратов, едва ли сравнимую с зеркалками самого младшего уровня. Не секрет, что беззеркальные камеры вызвали своим появлением не только закономерный интерес, но и шквал ненависти; прежде чем за «беззеркалками» в англоязычном мире утвердилась аббревиатура CSC (Compact System Cameras), большинство называло их не иначе как EVIL (Electronic Viewfinder, Interchangeable Lens). Всерьёз поговаривали о заговоре корпораций, о поглощении сегментов рынка и даже о мировой войне, объявленной владельцам огромных полноформатных коробок со стороны толп нищебродов, желающих блеснуть профессионализмом, но не готовых расплачиваться за удовольствие от фотоснимков необходимостью таскать огромные кофры с аппаратурой.
Читать дальше →
Всего голосов 102: ↑77 и ↓25 +52
Комментарии 226

Молнии

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


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

По крайней мере, таков план.

Но как же именно вам, как разработчику игры, отрендерить такой эффект?
Читать дальше →
Всего голосов 99: ↑97 и ↓2 +95
Комментарии 22

Собираем за один вечер Virtual Reality шлем своими руками, с HD изображением и трекингом головы

Время на прочтение 25 мин
Количество просмотров 602K
Практически не осталось уже людей, которые бы не слышали о виртуальной реальности, и, наверное все уже слышали о VR-шлеме Oculus Rift, который можно сказать стал стандартом для подобного рода устройств. Так же на рынке есть решения, позволяющие использовать экран смартфона диагональю 4-5" в качестве экрана VR-очков, такие как Durovis Dive или нашумевший Google Cardboard, которые снизили планку демократичности вхождения в виртуальную реальность можно сказать уже для всех, но, тем не менее, пока что эта технология не стала повсеместной: не у всех есть смартфон с нужной диагональю, чтобы воспользоваться тем же картонным проектом гугла, покупать пусть не дорогое, но стоящее денег устройство типа Durovis Dive без какого либо понимания, что с ним конкретно делать дальше, а тем более заказывать и ждать сам шлем Oculus Rift простому обывателю довольно проблематично по многим причинам — начиная от цены за устройство, что делать с которым пока не совсем понятно и заканчивая довольно длительным ожиданием доставки заказа. Естественно, самым главным тормозом, помимо цены, является обычная лень и потухшая любознательность.

В этой статье я расскажу вам о своем пути к виртуальной реальности, опишу детальное и практически исчерпывающее руководство по изготовлению VR-шлема с использованием любого относительно современного андроид-смартфона или планшета любой диагонали, этот проект обойдется примерно в 5-8 часов работы и в 500-2000 рублей затрат, в зависимости от ваших пожеланий и возможностей, а на выходе вы получите очень интересное устройство, которое позволит вам смотреть fullHD 3D фильмы и фотографии, играть в андроид-игры а также использовать шлем для игр в ваши любимые PC-игры любой степени современности. Да, с трекингом головы и погружением в VR.

Поэтому, если вами не овладевает лень и вы любознательны, прошу под кат, но предупреждаю, статья наполнена тремя десятками «potato quality» изображений, общим весом на 4 мегабайта.
Читать дальше →
Всего голосов 114: ↑112 и ↓2 +110
Комментарии 66

Grid Tiling: смешение нескольких тайлов

Время на прочтение 4 мин
Количество просмотров 9.9K
Думаю, многие из геймдев-программистов размышляли о том, как реализовать удобный map-tiling. Только представив всевозможные комбинации смешений, можно порядочно изломать свой мозг — я несколько раз пытался изобразить какой-либо простой в использовании алгоритм, который позволял бы отображать разнообразные тайло-карты. О том, что из этого получилось — а получилось нечто достаточно простое для реализации — можно узнать ниже.
Читать дальше →
Всего голосов 21: ↑18 и ↓3 +15
Комментарии 1

Паттерн конечные автоматы для Ash Entity System фреймворк

Время на прочтение 10 мин
Количество просмотров 8.1K
Два года назад познакомился с замечательнейшим фреймворком для разработки игр на Actionscript Ash (почти сразу после знакомства с ним, пришло понимание, что фреймворк подойдет под любой язык. А еще чуть-чуть позже появились порты фреймворка под другие языки — на момент написания перевода имеется 7 штук). Некоторое время распирало желание поделиться находкой с русскоязычным сообществом, пока меня не опередили переводом на Хабре. Теперь вдогонку хочу выложить перевод касательно реализации почти незаменимого паттерна Finite-State Machine для Ash Entity System фреймворка.
Подробности
Всего голосов 4: ↑3 и ↓1 +2
Комментарии 1

Boids — простой алгоритм перемещения групп юнитов

Время на прочтение 3 мин
Количество просмотров 31K
Во время разработки клона одной игрушки мне понадобилось перемещать группы юнитов от одной планеты к другой. Первое что пришло в голову — заспавнить юниты один за другим и двигать их по прямой. Но это выглядело не очень весело, кроме того — нужно было как-то обходить планеты. После беглого ознакомления с алгоритмами группового перемещения я решил попробовать Boids. В итоге получилось такое:



Под катом описание алгоритма с примерами кода.

Читать дальше →
Всего голосов 63: ↑60 и ↓3 +57
Комментарии 23

Signed Distance Field или как сделать из растра вектор

Время на прочтение 12 мин
Количество просмотров 59K
Речь сегодня пойдёт о генерации изображений с картой расстояний (Signed Distance Field). Данный вид изображений примечателен тем, что фактически позволяет получить «векторную» графику на видеоускорителе, причём даром. Одной из первых данный метод растеризации предложила компания Valve в игре Team Fortress 2 для масштабируемых декалей в 2007 году, но до сих пор он не пользуется особой популярностью, хотя позволяет рендерить прекрасного качества шрифты, используя текстуру всего 256х256 точек. Данный метод прекрасно подходит для современных экранов высокой чёткости и позволяет серьёзно сэкономить на текстурах в играх, он не требователен к железу и прекрасно работает на смартфонах.



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

Как же создавать такие изображения? Очень просто, ImageMagick позволяет сделать это одной командой:

convert in.png -filter Jinc -resize 400% -threshold 30% \( +clone -negate -morphology Distance Euclidean -level 50%,-50% \) -morphology Distance Euclidean -compose Plus -composite -level 45%,55% -resize 25% out.png

На этом можно было бы поставить точку, но так полноценного топика не получится. Что ж, под катом — описание быстрого алгоритма расчёта SDF, пример на C++ и немного шейдеров для OpenGL.
Читать дальше →
Всего голосов 115: ↑113 и ↓2 +111
Комментарии 61

Отладка Android CMake проекта по-взрослому

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

После перевода наших проектов на CMake, встал вопрос об отладке нативной части Android. Так как инструменты NDK стали неактуальны, пришлось залезть в дебри и научить Eclipse запускать удалённую отладку CDT-проекта, что называется, вручную. В идеале, чтобы это выполнялось в один клик.

Если вам не чужда разработка с использованием Android NDK, и вы хотите познать некоторые тонкости отладки, велкам под кат.
Читать дальше →
Всего голосов 28: ↑27 и ↓1 +26
Комментарии 6

Python на Хабре

Время на прочтение 7 мин
Количество просмотров 450K
Некоторое время назад, в силу определенных причин, мне пришла в голову мысль о том, чтобы начать изучать какой-нибудь новый язык программирования. В качестве альтернатив для этого начинания я определил два языка: Java и Python. После продолжительного метания между ними и сопутствующих нытья и долбежки головой о стену (у меня с новыми языками всегда так — сомнения, раздумья, проблема выбора и т.д.), я все-таки остановился на Python. Окей, выбор сделан. Что дальше? А дальше я стал искать материал для изучения…
Читать дальше →
Всего голосов 182: ↑162 и ↓20 +142
Комментарии 65

GameDev как хобби

Время на прочтение 7 мин
Количество просмотров 50K
Работая в программистом в области никак не связанной с играми я вдруг решил написать мобильную игру. Не зная ни инструментов, ни технологий и специфики разработки. Какой она получилась? Какие выводы я для себя сделал и может ли геймдев быть хобби – всё под катом.

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

Стражи ночи

Время на прочтение 9 мин
Количество просмотров 81K
Будучи высококвалифицированным исследователем, я потратил немало времени на продвижение науки вперёд. Но я родился на Юге и искренне убеждён, что прогресс — это выдумка, и что нужно готовиться к Судному дню, к жатве того, что мы посеяли и к появлению быстрых зомби, медленных зомби, и даже вежливых зомби, которые обращаются к вам «сэр» или «мадам», но в итоге пытаются съесть ваш мозг дабы заполучить ваши навыки. Когда нагрянет революция, нужно быть готовым; поэтому в моменты тишины и покоя, когда я не произвожу очередной прорыв в науке, я размышляю над тем, что же я буду делать, когда прогноз погоды изменится на «РЕКИ КРОВИ ЦЕЛЫЙ ДЕНЬ ДО СКОНЧАНИЯ ВРЕМЁН».

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

Но! Но… Самым важным членом моей банды будет системный программист, ибо в гоббсовском кошмаре невероятных масштабов умеющему отладить драйвер устройства или распредёленную систему человеку можно доверять; системный программист видел ужасы Вселенной и понимает безысходность бытия. Системный программист писал драйверы для устройств, прошивку которых создавал то ли пьяный ребёнок, то ли трезвый карась. Системный программист отлавливал проблему с сетью через восемь машин, три часовых пояса и с дружеским визитом в Омск, откуда ее перенаправили в левое переднее копыто той лошади, что избавила Трою от перенаселения.1 Системный программист читал исходники ядра для лучшего понимания процессов мироздания и видел комментарий «И ЭТО РАБОТАЕТ ЛОЛ» в коде планировщика, и не смеялся он, но плакал; и отправил он патч ядра для восстановления баланса Силы и устранения инверсии приоритетов, что приводила к зависанию MySQL. Системный программист знает, что делать, когда общество падёт, потому что он уже живет в мире, где царит беззаконие.
Читать дальше →
Всего голосов 157: ↑136 и ↓21 +115
Комментарии 50

Немного о независимых игровых разработчиках

Время на прочтение 8 мин
Количество просмотров 50K
Так случилось, что я уже длительное время занимаюсь фултайм инди разработкой. Это значит, что единственный источник дохода — это игры, которые я делаю не на заказ. Никакого фриланса или удаленной работы. Параллельно явлюясь соведущим подкаста для инди разработчиков, где гости рассказывают каково это быть независимыми разработчиками в той или иной части рынка, используя определенную технологию и целясь на какие-то платформы. Эта статья — небольшой FAQ по частым вопросам, которые приходят.

Читать дальше →
Всего голосов 104: ↑99 и ↓5 +94
Комментарии 22

Использование NDK в Android Studio

Время на прочтение 9 мин
Количество просмотров 67K
В настоящее время среди Android-девелоперов большую популярность имеет среда разработки Android Studio, основанная на IntelliJ IDEA от JetBrains. Однако, при использовании данной IDE, могут возникнуть проблемы при разработке приложений, использующих нативный код, так как Android NDK рассчитан преимущественно на использование IDE Eclipse и ADT.

Цель данной статьи — подробное описание процесса создания Android-приложения, использующего NDK в Android Studio, в частности — предложение достаточно простой и эффективной конфигурации gradle (системы сборки пакетов, используемая в Android Studio), гарантирующей включение нативных библиотек в APK-файл. Также статья включает краткую инструкцию работы с NDK в IDE Eclipse и введение в нативную разработку, достаточное для написания первого приложения.
Читать дальше →
Всего голосов 37: ↑36 и ↓1 +35
Комментарии 8

Информация

В рейтинге
Не участвует
Откуда
Hamburg, Hamburg, Германия
Зарегистрирован
Активность