Pull to refresh
0
0
Send message

Работа с Корутинами в Unity

Reading time4 min
Views321K

Корутины (Coroutines, сопрограммы) в Unity — простой и удобный способ запускать функции, которые должны работать параллельно в течение некоторого времени. В работе с корутинами ничего принципиально сложного нет и интернет полон статей с поверхностным описанием их работы. Тем не менее, мне так и не удалось найти ни одной статьи, где описывалась бы возможность запуска группы корутинов с продолжением работы после их завершения.
Хочу предложить вам небольшой паттерн, реализующий такую возможность, а также подбор информации о корутинах.

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

Подборка интересных докладов с Casual Connect Europe 2014

Reading time5 min
Views5.3K
Недавно Casual Connect выложили на YouTube очередную порцию докладов. Докладов очень много и ни у кого нет времени ознакомиться с каждым из них.

Поэтому представляю вам подборку докладов, которые лично я посчитал интересными и стоящими внимания.


Ещё 13 докладов под катом

Как перевести игру на 20 языков и не попасть в ад

Reading time4 min
Views20K
Привет, я Владимир Купрацевич, управляющий переводческими проектами в компании Alconost. Однажды к нам обратился клиент — разработчик игр под Android и iOS. Он хотел локализовать свою игру на 20 языков, включая арабский, японский и корейский. Почему бы и нет, подумали мы: локализовать приложения мы умеем и любим, переводчики-носители языка у нас есть. Но дьявол в деталях. Забегая вперёд, скажу, что обряд экзорцизма мы провели успешно, заодно набив нехилой экспы получив полезный опыт. Мы решили делать переводы на облачной платформе — и не ошиблись. О том, каких дьяволов мы изгнали благодаря этому решению, я и расскажу. Думаю, что каждому разработчику и переводчику в сфере IT этот опыт пригодится.


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

Создание игры на ваших глазах — часть 4: Шейдер для fade in по палитре (а-ля NES)

Reading time7 min
Views22K
Сегодня я расскажу о реализации шейдера, позволяющего сделать fade in/out по палитре, как это делалось в старых NES-играх и т.п.

Суть состоит в том, что при наличии ограниченной палитры цветов нельзя было постепенно затемнить (или наоборот вывести из темноты) картинку, т.к. просто напросто не существовало нужных цветов в палитре. И это решалось путем использования разных цветов, которые воспринимаются как более темные. То есть нужно вам сделать fade in желтого объекта, а в палитре нет темно-желтых оттенков — вот и приходится сначала делать объект синим (выглядит темным), потом — красным и т.п.

Ниже я покажу, как выглядит конечный вариант написанного шейдера:



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

Декоратор (Перевод с английского главы «Decorator» из книги «Pro Objective-C Design Patterns for iOS» Carlo Chung)

Reading time22 min
Views20K
Обычно, делая фотографии, вы не задумываетесь, как оформите их потом. Вы фотографируете просто потому, что хотите поймать момент. Скажем, одну из фотографий вы затем распечатали, потом решили поместить в рамку с необычным стеклом. Но позже вы могли бы поместить ту же фотографию в другую рамку, если бы захотели. Даже несмотря на то, что вы изменили рамку, картинка осталась той же, потому что вы просто что-то добавляли к ней, но не изменяли ее при этом.

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

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

Создание игры на ваших глазах — часть 2: Шейдеры для стилизации картинки под ЭЛТ/LCD

Reading time6 min
Views76K
Поговорим на этот раз о технологии. В этой статье я расскажу и покажу, как в Unity создать шейдер для стилизации графики под старые ЭЛТ. Такой шейдер подойдет для пиксель-арта и для стилизации картинки под древнюю технику. Злоупотреблять им не стоит, но иногда использовать к месту — можно. (Специально уточню — я не предлагаю использовать такой эффект постоянно. Но, например, в заставках — он может прийтись к месту).



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

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

И ботаники бизнес автоматизируют

Reading time5 min
Views43K
Привет, недавняя статья на Хабре о том, как программист пытался продать, заставила меня поведать нашу небольшую историю о том, как мы кинули вызов интерфейсам 90-х и всей автоматизации кафе, баров и ресторанов в целом, используя современные технологии.

image

Ниже много откровения.

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

Устройство минималистичных посадочных страниц

Reading time7 min
Views45K


Предыдущий перевод (Landing page, которая работает), посвященный дизайну качественных посадочных страниц набрал больше 150 000 просмотров. С тех пор прошло уже много времени и подход к дизайну изменился – все больше становится минималистичных страниц, о которых и пойдет речь в статье.
Читать дальше →

Получение «зеленого света» в сервисе GreenLight: советы и рекомендации

Reading time13 min
Views65K

1. Вступление


Всем привет! Не так давно мы стартовали ОБТ нашего нового online-проекта Metal War Online. Со временем мы захотели выйти на глобальный рынок посредством Steam и, как большинство коллег, осуществляем эту затею через сервис Greenlight. Нашему опыту прохождения аппрува и будет посвящен материал.

Сразу оговоримся, что мы не претендуем на какие-либо открытия и новаторские подходы. Наоборот, наблюдается некий дефицит простой доступной информации по Greenlight и хотелось бы собрать воедино пункты, знакомые всем, показав их важность для итоговой цели – получению «зеленого света».

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

Фоновое обновление данных в iOS7

Reading time4 min
Views30K
В конце сентября компания APPLE выпустила iOS 7, одной из особенностей этой версии стала улучшенная многозадачность и возможность обновления данных, когда приложение не активно.
Есть два варианта запуска приложения для обновления данных — периодические обновления и запуск при получении специального push-уведомления. В каждом из вариантов приложение будет запущено в фоновом режиме (background mode), и будет принудительно закрыто через 30 секунд, так что времени для обновления будет совсем мало.
Читать дальше →

Захватываем и снимаем демонстрационное видео iOS приложения подручными и не очень средствами – способы и решения

Reading time8 min
Views42K


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

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

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

Направленное освещение и затенение в 2D-пространстве

Reading time8 min
Views49K

Добрый день, Хабравчане!
Хотелось бы рассказать об одном из способов отрисовки освещения и затенения в 2D-пространстве с учетом геометрии сцены. Мне очень нравится реализация освещения в Gish и Super MeatBoy, хотя в митбое его можно разглядеть только на динамичных уровнях с разрушающимися или перемещающимися платформами, а в Гише оно повсеместно. Освещение в таких играх мне кажется таким «тёплым», ламповым, что непременно хотелось нечто подобное реализовать самому. И вот, что из этого вышло.
Читать дальше →

Динамическое освещение и неограниченное количество источников произвольной формы в 2D

Reading time6 min
Views40K
Продолжая тему велосипедостроения, хочу поделится тем, как я делал освещение в пиксель-арт игрушке.
Особенность этого метода заключается в том, что эти источники света не ограничиваются ни количеством ни формой.


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

Ломаем iOS-приложение. Часть 1

Reading time13 min
Views74K
Вы хорошо поработали, и вот ваше приложение в App Store!

  • Храните учётные записи юзеров?
  • Используете встроенные покупки?
  • Не хотите показывать своё ноу-хау?

Повод задуматься о безопасности кода и данных! Мы будем искать уязвимости в тестовом приложении. В этой статье поговорим о безопасности данных, а в следующей — перейдём к коду.
Много текста и картинок

Астрофотография в каждый дом

Reading time6 min
Views126K
Думаю у любого человека, интересующегося космосом — возникала идея купить телескоп, чтобы лично все посмотреть.

Однако суровая реальность вечно портит всю малину: в пределах города – все небо засвечено уличным освещением и турбулентность воздуха высокая. Это означает, что либо придется ограничится самыми крупными и яркими объектами (вроде Луны и Юпитера), либо возить телескоп далеко за город.

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

Пример того, что получилось: галактика Андромеда, M31 на телескопе Т20
Читать дальше →

Стоит ли быть «успешным»?

Reading time6 min
Views49K
Как надоели эти тематические статьи о повышении результативности, мотивации и прочей чепухе. Зачем люди их пишут? Чтобы помочь тем, кто запутался в себе? Для тех, кому тяжело сосредоточиться? Вряд-ли это так.

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

Боремся с ошибками акселерометра, гироскопа, M7, цифрового компаса и других датчиков в iPhone 5S и не только

Reading time9 min
Views130K


Многие наслышаны о проблеме с неоткалиброванными датчиками в новом iPhone 5S – инструмент «уровень», встроенный в родной компас iOS 7 показывает отклонение в несколько градусов, если устройство положить на плоскую поверхность, например, стол.

Если кратко, то в той или иной степени проблема ориентации датчиков присутствовала всегда и на всех устройствах с iOS. Ранее проблему не наблюдали так часто в виду отсутствия встроенного в мобильную OS приложения позволяющего измерять уровень. Аналогичная проблема имеет место быть и на других мобильных устройствах оснащенных акселерометром, поскольку принципы везде заложены одинаковые – с этим не понаслышке должен быть знаком каждый разработчик, которому приходилось иметь дело с различными датчиками движения и ориентации.

Я разрабатываю приложения с использованием датчиков акселерометра, гироскопа и цифрового компаса, ровно с тех самых пор, как разработчикам стал доступен API, практически с самого начала – будучи автором одного из самых популярных компасов для iOS с проблемами калибровки акселерометра и точности других датчиков я столкнулся еще несколько лет назад.

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

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

Процедурная генерация планов помещений

Reading time7 min
Views73K

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

По процедурной генерации планов помещений есть много, очень много статей. Вот ещё пяток ссылок на статьи. Только исходников ни к одной из них нет.

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

Адаптивные email'ы

Reading time4 min
Views42K
image


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

Колосс на глиняных ногах. Принципы управления быстроразвивающейся игровой студией

Reading time8 min
Views22K


 Часто бывает, казалось бы: сплоченный коллектив профессионалов, сильный и качественный продукт на подходе, толстая инвестиционная подушка финансовой безопасности, а что-то не так. Причем, с каждой неделей этих «что-то» становится все больше и больше. Сотрудники нервничают, огромное количество работы проходит в режиме овертайм, постоянные сбои во внутренних коммуникациях, поиск ответственных и виноватых – у победы много отцов, поражение – всегда сирота. Такой деструктивный сценарий развития студии – медленный, но верный путь к завершению её деятельности. Но мы же не просто так собрались несколько месяцев назад?

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

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

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

Information

Rating
Does not participate
Date of birth
Registered
Activity