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

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

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

Создание нативного iOS плагина для Unity3d. Недокументированные возможности

Время на прочтение6 мин
Количество просмотров8.7K
В Unity3d существует возможность подключения нативных плагинов к приложению. На официальном сайте Unity3d есть документация по взаимодействию с нативным кодом на iOS. Данная документация ограничивается описанием того, как вызвать ту или иную функцию из плагина, который вы собрали сами и как сделать обратный вызов. В документации описано каким правилам должна соответствовать описываемая функция и немного о том, как передать в нее параметры. В конце статьи с документацией есть ссылка, по которой можно скачать пример под названием Bonjour.

К сожалению в документации не описано, что делать в случае если вашему плагину необходимо перехватить событие о том, что пользователь подписался на Push Notification или приложение перешло в бэкграунд (AppDidEnterBackgound), тогда как доступ к этим событием бывает необходим для некоторых плагинов, которые вы возможно захотите написать.
Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии2

Делаем простую игру с кнопками, ящиками и дверями на Unity

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


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

Для самых нетерпеливых по ссылкам ниже находится готовый прототип.
Онлайн версия
Скомпилированная версия для Windows [Зеркало] ~7.5 МБ

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

Подразумевается, что вы уже успели скачать Unity и поигрались немного в редакторе. Нет? Сейчас самое время, я подожду.
Читать дальше →
Всего голосов 96: ↑89 и ↓7+82
Комментарии32

Создание игры на ваших глазах — часть 7: 2D-анимации в Unity («как во флэше»)

Время на прочтение6 мин
Количество просмотров96K
В этой статье поговорим о 2D анимациях в Unity. Я расскажу о своем опыте работы с родными анимациями в юнити, о том, насколько тайм-лайны похожи на флэшевские, об управлении анимациями, event'ах, вложенности, и о том, как художник справляется с анимированием.

Для начала, немного теории.

В Unity есть две сущности:

1. Анимация (то, что отображается в окно «Animation»)
2. Mechanim дерево анимаций (то, что отображается в окне «Animator»).



Ниже я немного расскажу, что это такое и как нам может приходиться (или не пригодиться).
Читать дальше →
Всего голосов 29: ↑26 и ↓3+23
Комментарии15

Unity — Концептуальные идеи и подсказки для новичков игродева. Мощная оптимизация 2D проекта

Время на прочтение5 мин
Количество просмотров38K
Ссылка на первую статью из этой серии.

Быстрое вступление

Я долго думал какую тему выбрать на этот раз, и решил, что расскажу про некоторые фишки, которые помогут оптимизировать вашу игру. Особенно это будет актуально для новичков, потому что чаще всего первая игра оказывается игрой для смартфонов и планшетов. А на мобилках, сколько бы там ядер не оказывалось — 6 или 8, игры все ещё очень несбалансированные в плане потребления ресурсов. Код и его идея, которые будут приводится в этой статье являются немного более сложными для понимания чем те две строчки кода, которые я приводил в своей предыдущей публикации. Хотя, я не правильно выразился — код легко понять — но порог вхождения в это понимание будет чуть выше чем легко (для новичков конечно), придется посидеть минут 5.

Введение в идею

Как вы создаете объекты в Unity из префабов? Только Instantiate и никак иначе — другой функции там просто не существует.

Для тех кто не помнит или еще не знает, что такое Instantiate (), маленькая справка — *аргументы инстанции*. Вот вы их создаете (объекты), и создаете, иногда удаляете, потом опять создаете, и так в течении всего уровня. Это бьёт по оптимизации и существенно — почему? Потому что так написано на всех форумах Unity, а иногда проглядывается и в документации, а документацию надо слушаться. Как Instantiate бьет по про производительности?
Читать дальше →
Всего голосов 22: ↑17 и ↓5+12
Комментарии13

Реализация системы динамически загружаемого контента (DLC) для мобильной игры в Unity 3D

Время на прочтение7 мин
Количество просмотров39K
Недавно, для одной игры на Unity 3D, которую мы разрабатывали, возникла необходимость добавить DLC систему. Хотя это оказалось далеко не так просто, как казалось в начале, мы успешно справились с возникшими проблемами и игра ушла в gold. В этой статье я хочу изложить наш вариант реализации DLC, рассказать о возникших проблемах и как мы их решили.

Постановка задачи


В игре есть магазин, где игрок покупает вещи за игровую или реальную валюту. В магазине – более 200 вещей. Когда игрок заходит в игру, ему доступно 20 вещей в магазине. Если есть интернет, игра без ведома юзера опрашивает сервер на предмет наличия DLC и, если таковое имеется, скачивает в бэкграунде. Когда игрок повторно зайдет в магазин, он увидит все новые вещи из DLC.
Еще есть набор локаций. Каждая локация имеет набор текстур и .asset файлов. Новые локации также должны добавляться через DLC.
Загрузка ресурсов из DLC должна быть синхронной.
Платформа: iOS (iPhone 3GS и выше.) и Android (Samsung Galaxy S и выше).
Читать дальше →
Всего голосов 22: ↑18 и ↓4+14
Комментарии9

In App Purchase с помощью Soomla. Быстро и просто

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


В последнее время пришлось интегрировать внутриигровые покупки в свою игру и встал вопрос, а какой же плагин для этого использовать под Unity3D? Есть такие вещи как OpenIAB, Prime31, Unibill и Soomla. Более мелкие вещи брать в расчет не будем, ибо некоторые из них либо не обновляются вообще, либо имеют какие-то критические проблемы. Кто хочет знать, почему выбор пал именно на Soomla, и как его интегрировать прошу под кат.
Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии22

Виртуальный квадрокоптер на Unity + OpenCV (Часть 2)

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

Доброго времени суток, дорогие хабравчане!

Этой статьей я хотел бы продолжить серию о том, как подружить Unity, C++ и OpenCV. А также, как получить виртуальную среду для тестирования алгоритмов компьютерного зрения и навигации дронов на основе Unity. В предыдущей статье я рассказывал о том, как сделать виртуальный квадрокоптер в Unity. В этой статье речь пойдет о том, как подключить C++ плагин, передать туда изображение с виртуальной камеры и обработать его посредством OpenCV.
Читать дальше →
Всего голосов 14: ↑12 и ↓2+10
Комментарии3

11 ошибок ваших бэкапов

Время на прочтение7 мин
Количество просмотров96K
Всех пользователей можно разделить на две группы: на тех, кто регулярно делает бэкапы и на тех, кто пока не начал их делать. Если вы относитесь ко второй категории, то это означает лишь то, что вы недостаточно хорошо или не в полной мере представляете себе количество и масштабы неприятностей, способных повредить ваши данные – кража, пожар, ураган, вирусы, баги программного обеспечения, поломки железа, ошибки пользователей и всё в таком духе. Ну, или ещё не сталкивались с прохождением «квеста» по восстановления данных после их потери (который, к сожалению, можно успешно пройти далеко не всегда). Как бы там ни было, лучше знать наперед, каких ошибок стоит избегать при резервном копировании, поэтому представляем вашему вниманию одиннадцать ошибок при создании бэкапа. Это даже не столько ошибки, сколько советы и перечень стратегий, которыми не следует пользоваться (в первую очередь, для пользователей Mac). Добро пожаловать под кат.


Читать дальше →
Всего голосов 55: ↑41 и ↓14+27
Комментарии78

Прототипы устройств Apple 30-летней давности

Время на прочтение2 мин
Количество просмотров142K
В 1982 году Apple было всего шесть лет, а 28-летний Стив Джобс был сооснователем и президентом. Уже тогда компания стремилась к качественному дизайну своих продуктов и нанимала лучшие дизайнерские бюро для разработки концептов устройств. Одним из таких партнеров стала фирма Frogdesign. Ее основатель, немецкий дизайнер Хартмут Эсслингер (Harmut Esslinger), в прошлом году представил в своей книге "Design Forward" прототипы устройств Apple, которым не суждено было появиться на свет.

В то время компания Apple переживала не лучшие времена, активно боролась за рынок со своими конкурентами — IBM, Xerox, Sony, поэтому делать революционный продукт было просто необходимо. Хартмут Эсслингер в 70-ые годы работал с Sony, а с начала 80-ых — с Apple. За время сотрудничества компания изменила статус с локального бренда Кремниевой Долины на корпорацию мирового масштаба. Не малую роль в этом сыграл Хартмут Эсслингер, предложивший Стиву Джобсу концепт простого, светлого, «Snow White» дизайна. Таким был создан первый Макинтош, который царствовал на рынке с 1984 по 1990 годы, вплоть до ухода Стива Джобса из Apple. Вслед за ним ушел Хартмут Эсслингер, разорвав свой контракт и начав сотрудничать с NeXT.

Apple Snow White 3 «Macphone», 1984


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

Читать дальше →
Всего голосов 106: ↑97 и ↓9+88
Комментарии67

Стив Возняк: вообще-то, в фильме была в основном ложь обо мне

Время на прочтение4 мин
Количество просмотров265K
Вообще-то, в фильме была в основном ложь обо мне. Я был инженером в HP, разрабатывающим iPhone 5 того времени, их инженерные калькуляторы. Там у меня было много друзей и хорошая репутация. Я создавал вещи для людей по всей стране для развлечения, включая первую систему проката фильмов для отелей и считыватели таймкодов SMPTE для мира коммерческого видео. Ещё домашние пинболл-игры.

Среди этих вещей, Apple I был ПЯТЫМ случаем, когда что-то, что я создал (а не собрал на основе чьей-то схемы), было превращено в деньги Джобсом.
Читать дальше →
Всего голосов 295: ↑277 и ↓18+259
Комментарии205

Распознавание лиц человеческим мозгом: 19 фактов, о которых должны знать исследователи компьютерного зрения

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

Как обычно, предлагаю сокращенный перевод, полный текст доступен в оригинале.

Читать дальше →
Всего голосов 185: ↑181 и ↓4+177
Комментарии66

Google I/O 2013 Первый день. Краткие итоги

Время на прочтение6 мин
Количество просмотров102K
Все, наверное знают, что вчера 15 мая стартовала конференция Google I/O (а кто не знал теперь знает). В первый день конференции, по обычаю, освещают все ключевые нововведения в платформах Google.

image

Так что всем тем, кому интересно, что нового нам приготовил поисковый гигант, приятного чтения, а кому малоинтересно или не интересно вовсе, можно смело пропускать. Для простоты восприятия разобьём материал на две части: для пользователей и для разработчиков.
Читать дальше →
Всего голосов 89: ↑78 и ↓11+67
Комментарии94

Эквалайзер на JavaScript

Время на прочтение5 мин
Количество просмотров58K
На хабре уже было несколько статей по Web Audio API: создание визуализатора, вокодера и пианино в 30 24 строки. Поиск же по всея интернетам по запросу эквалайзер упорно выдавал туториалы по созданию спектрограмм. (Если заголовок этой статьи сбил вас с толку или вы таки купились на картинку:) и ожидали именно визуализации аудио — вам сюда или вот сюда). Но именно просто эквалайзера я так и не встретил (хотя уверен, что где-то он таки есть). Возможно, это настолько простая задача, что об этом и писать не стоит. Но, в таком случае, почему бы не сделать её ещё проще?


Читать дальше →
Всего голосов 44: ↑39 и ↓5+34
Комментарии21

Видео-курс по Swift на русском языке

Время на прочтение1 мин
Количество просмотров115K
Здравствуй, Хабр!

Мы сделали видео-уроки по языку Swift на основе бесплатной книги The Swift Programming Language от Эппл.



Все 32 урока доступны на нашем сайте. Несколько уроков – под катом.
Читать дальше →
Всего голосов 146: ↑129 и ↓17+112
Комментарии62

Swift — нововведения

Время на прочтение1 мин
Количество просмотров77K
image

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

Я не сомневаюсь, что многие из нас вчера смотрели презентацию WWDC 2014 от Apple. Были представлены новая операционная система OS X Yosemite, а так же iOS 8. Но главное, чем наверное взбудоражило Apple программистов во всем мире, так это новым языком — Swift!

Swift является новым инновационным языком программирования для Cocoa and Cocoa Touch с еще более кратким и выразительным синтаксисом, с помощью которого приложения пишутся молниеносно. Это делает написание кода интерактивнее и веселее, и работает бок о бок с Objective-C. По словам Федериги, некоторые функции Swift работают быстрее, чем в других объектно-ориентированных языках: например, сортировка сложных объектов происходит в 3,9 раза быстрее, чем в Python, и почти в полтора раза быстрее, чем в Objective-C.
Читать дальше →
Всего голосов 200: ↑131 и ↓69+62
Комментарии264

Как собрать WhatsApp за сутки. Часть 1

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


Здравствуйте, дорогие читатели Хабрахабра!

В этой серии статей я расскажу, как быстро и почти безболезненно поднять свой собственный WhatsApp под iOS. Статью делю на две части для вашего удобства:

  1. Создание проекта, простой UI, привязка к сервису мгновенных сообщений
  2. Делаем красивый UI, добавляем видео и аудио звонки, передачу фото и документов

К сожалению, пособие о том, как набрать 400 000 000 пользователей и продать сервис за 19 Инстаграмов, затерялось где-то на книжной полке. Постараюсь его найти, если кому интересно.

Заинтересовавшихся прошу под кат.
Читать дальше →
Всего голосов 178: ↑146 и ↓32+114
Комментарии55

Как мы :hover на iOS побеждали…

Время на прочтение6 мин
Количество просмотров51K
Ни для кого, думаю, не секрет, что touch-устройства обрабатывают «мышиные» события несколько иначе, не так, как это происходит на десктоп-браузерах…

Самый яркий для меня пример, это обработка псевдокласса :hover. Для начала iOS7, например, не будет реагировать на hover если только на элемент, или его родителя, не навешена обработка события click. Это хорошо видно вот на этом примере: jsfiddle.net/H8EmG — сколько не тыкай пальцем в текст — никаких подчеркиваний не увидишь. А в этом примере jsfiddle.net/H8EmG/1 «тычок» пальцем в текст будет приводить к его подчеркиванию. Интересный факт — пока не ткнем в другой элемент, текст так и будет сидеть под ховером…

Другой интересный пример, это обработка появления элементов «по-наведению»: jsfiddle.net/ASRm9/1 Попробуйте нажать на текст. Сперва вы увидите текст «HOVER!», появившийся внутри строки, а вот второе нажатие уже вызовет alert('click'). Это происходит потому, что iOS понимает что за :hover что-то скрыто, и старается не сломать поведение, заложенное автором сайта.

Но однажды мы столкнулись с такой багой, объяснить которую мы не смогли до сих пор, а на ее локализацию потребовался не один день отладки на iPad… Желающие подробностей, а также хитрого, как мне кажется, способа решения, наверное, всех проблем с :hover разом — прошу под кат…

Читать дальше →
Всего голосов 28: ↑22 и ↓6+16
Комментарии13

Continuous Integration. Путь обеспечения надежности и доверия к системе

Время на прочтение4 мин
Количество просмотров34K
Не так давно, я заинтересовался трудами идеологов программирования, таких как Кент Бэк, Роберт Мартин, Мартин Фаулер, Пол Дюваль.

Их книги произвели на меня впечатление и воодушивили попробовать некоторые описанные практики. Refactoring, TDD, XP, и, наконец, Continuous Integration, это то, что в последнее время интересует меня в процессе разработки программного обеспечения.

Хочу поделиться с хабросообществом тем, что я вынес из книг и с чем приходится сталкиваться в реальности.

Теория


Continuous Integration (далее CI) — это практика разработки программного обеспечения, в которой члены команды проводят интеграцию не реже чем раз в день. Результаты интеграции проверяются автоматически, используя автотесты и статический анализ кода.

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

Фактически, CI позволяет избавиться от предположений, при процессе разработки ПО. Менеджер предполагает, что продукт готов и стабилен, программист — что в коде нет ошибок и т. д. Избавиться от вопросов, таких как: «стабильна ли последняя сборка, какие фичи готовы, соответствует ли код стандартам компании» и т.д.

Всех, кому интересна тема CI прошу под кат.
Читать дальше →
Всего голосов 14: ↑9 и ↓5+4
Комментарии8

Основные правила инди-геймдева. Часть 3

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

С вами вновь дядя Док. В прошлый раз я постарался рассказать вам основные «правила» работы с энтузиастами, на деле их гораздо больше, но слишком многие из них основаны на личных предпочтениях. В этот раз мне бы хотелось рассмотреть основы работы с уже собранной командой.
Работа игрового дизайнера помимо «виденья» игрового мира и написания диздока, заключается в менеджменте команды. И некоторые из вас, вероятно подумают: «Что же это за халтура такая?». Я бы сейчас посмеялся, но боюсь вы не услышите, главная проблема работы с узконаправленными спецами, это то что они фактически не понимают друг друга, а при возникновении претензий начинаются раздоры в команде т.к. программист никогда не будет обращать внимание на работу художника пока не станет слишком поздно, 3д модельеру пофиг на ограниченные возможности движка, а звуковику вообще фиолетого на всех и вся. И тут в дело вступает геймдиз, он является связующим звеном между этими, по сути разными мирами. Если 3д модельер говорит что текстурка слезает на НПСе при движении, именно геймдиз должен понять чья тут ошибка, программиста или же художника.
Читать дальше →
Всего голосов 22: ↑14 и ↓8+6
Комментарии11

Цифровая стабилизация изображения со стационарных камер — корреляционный подход

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

Введение


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

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

Рис. 1 Стабилизация изображения иногда очень полезна.

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

Информация

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