• Подключаем устройства Intel для интернета вещей к Microsoft Azure IoT Suite

    • Translation
    Если подключить устройства для IoT, основанные на микроконтроллерах Intel, к PAAS-решению Microsoft Azure IoT Suite, получится среда для реализации бесчисленного множества проектов в области интернета вещей. Сегодня мы расскажем об особенностях Azure IoT Suite и поговорим о том, как связывать с этим набором облачных служб Intel Edison, Intel Curie и шлюзы от Intel.


    Читать дальше →
  • Делаем работу нашего гейм-дизайнера в Unity удобнее и приятнее

    • Tutorial
        Добрый день, Хабр. В эфире снова я, Илья Кудинов, QA-инженер компании Badoo. В свободное от основной работы время я занимаюсь разработкой игрушек на Unity 3D и решил в качестве эксперимента написать статью об одной из проблем, с которой столкнулась наша команда. Я являюсь основным разработчиком, и наш гейм-дизайнер в «гробу видал» копание в моем коде с какой бы то ни было целью (разделение труда — одно из величайших достижений цивилизации), значит, моя обязанность — предоставить ему все необходимые рычаги управления и настройки геймплея в виде удобных визуальных интерфейсов. Благо Unity сам по себе имеет достаточно удобные (кхе-кхе) готовые интерфейсы и ряд методов их расширения. И сегодня я расскажу вам о некоторых приемах, которые делают жизнь нашего гейм-дизайнера проще и удобнее, а мне позволяют не биться головой о клавиатуру после каждого его запроса. Надеюсь, они смогут помочь каким-нибудь начинающим командам или тем, кто просто упустил эти моменты при изучении Unity.

        Сразу скажу, что наша команда все еще активно учится и развивается, хоть мы уже и выпустили дебютную игру. И если «дедлайны не горят», то я предпочитаю разбираться в каких-то вещах сам, а не обращаться к экспертам и различным best practices. Поэтому что-то из рассказанного мною может оказаться не оптимальным или банальным. Буду очень рад, если в таких случаях вы подскажете мне более удобные решения в комментариях и личных сообщениях. Ну и в целом информация здесь скорее базового уровня.
    Читать дальше →
  • Сертификация в Apple Developer Center простым и понятным языком

    Кратко о главном


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

    Зачастую при первом погружении в эту систему у начинающих (и не только) разработчиков возникают серьезные проблемы с пониманием того, как функционирует Apple Developer Center (будем называть его «девцентр» для простоты). В результате, мне в процессе профессиональной деятельности не раз приходилось наблюдать на новых местах работы огромные свалки из профилей и сертификатов в девцентре, в результате чего приходилось приступать к «разбору завалов».

    При этом, в сети довольно не такой большой выбор материалов на эту тему. Конечно, в официальной документации Apple все хорошо структурировано и очень подробно описано, но зачастую просто не хватает времени на изучение такого количества материала. Как правило, хочется быстро понять, что именно и в каком порядке нужно сделать для корректной работы приложения на этапах разработки, тестирования и при публикации его в магазин App Store. В русском же сообществе подобных материалов, собранных в одном месте и в удобном доступе, я не видел вовсе, поэтому и решил написать эту статью. Для всех интересующихся — добро пожаловать под кат.
    Читать дальше →
  • Sound Manager для небольших игр и прототипов на Unity

      Воспроизвести звук в Unity просто. Нужно создать компонент AudioSource прикрепить к нему звуковой файл в виде AudioClip и вызвать audioSource.Play() из скрипта. Или даже поставить автовоспроизведение на при создании объекта(Play on Awake).

      Сложности начинаются когда звуков в игре становится много. Их все нужно расставить, прописать приоритеты. Звуки отдельно, музыку отдельно. При регулировке громкости звуков и музыки раздельно тоже сложности. Можно, конечно, регулировать громкость разных каналов в AudioMixer, но он не работает в WebGL. А Webplayer сейчас считается устаревшим.

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

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



      Читать дальше →
      • +10
      • 17.9k
      • 9
    • После прочтения применить. 25 книг для игрового разработчика

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


        Читать дальше →
        • +13
        • 78.4k
        • 7
      • Как подружить HTML5 с мобильными ОС

        • Tutorial
        Ты совсем рехнулся с этим WebGL!”, как-то заявил мне знакомый разработчик: “Изучаешь новый движок ради одной платформы?!

        А ведь и, правда, работая с Unity, я получаю доступ ко многим платформам. Работая с Blend4Web — только к одной. Крупные компании могут позволить себе использовать несколько технологий для качественного портирования игры, в случае инди — это большая проблема.

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

        Не все оказалось так просто. Хотя удалось найти пару многообещающих инструментов, которые показали приличные результаты.
        Читать дальше →
        • +12
        • 17.5k
        • 5
      • Работа с освещением в Unity — теория и практика

          В видеоиграх красивое освещение в реальном времени сильно бьёт по производительности, что особенно заметно на мобильных устройствах. Таким образом, разработчики вынуждены искать методы обхода этой проблемы. Lightmapping — технология, сохраняющая информацию об освещении в текстуру, что позволяет высвободить вычислительные ресурсы под другие нужды.
          В этой статье я познакомлю читателя с теорией освещения в играх, опишу процесс создания “лайтмапа” в Unity 5 и поделюсь рядом советов.
          image
          Читать дальше →
        • Практическое руководство по взлому (и защите) игр на Unity

          • Translation
          • Tutorial


          Когда речь идёт о программном обеспечении, термин «взлом» зачастую ассоциируют с пиратством и нарушением авторских прав. Данная статья не об этом; напротив, я решительно не одобряю любые действия, которые прямо или косвенно могут навредить другим разработчикам. Тем не менее, эта статья всё же является практическим руководством по взлому. Используя инструменты и методы о которых далее пойдёт речь, вы сможете проверить защиту собственной Unity игры и узнаете, как обезопасить её от взлома и кражи ресурсов.
          Читать дальше →
        • Как научиться делать игры: полезные ресурсы

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

            image
            Читать дальше →
          • Самый простой и самый сложный Builder на Java



              Один из часто рассматриваемых паттернов — паттерн Builder. В основном рассматриваются варианты реализации «классического» варианта этого паттерна:

              MyClass my = MyClass.builder().first(1).second(2.0).third("3").build();
              

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

              Итак, расссмотрим их:
              Читать дальше →
            • Альтернативы Google Play и App Store или как живет Китай без Google Play


              Альтернативные сторы не столь популярны в России, но являются неотъемлемой частью китайского мобильного рынка, где Google Play заблокирован. Глядя на Андроид, некоторые китайские компании запустили собственные iOS сторы. При этом устанавливать игры и приложения с таких сторов можно и на обычные iPhone (не Jailbreak). Это одна из особенностей, которую было бы неплохо распространить по всему миру, ведь монополия официальных сторов это не есть хорошо. На российском рынке альтернативный стор запустил пока только Яндекс. Но его доля очень маленькая, поэтому его пока сложно назвать конкурентом Google Play. Возможно в будующем ситуация изменится, в первую очередь за счет выхода китайских сторов на другие рынки, так например уже многие слышали про приложение – Mobogenie. Но мы решили разместить более полный список альтернативных приложений, которые существую на сегодняшний день.
              Читать дальше →
            • Чудо свершилось. Вышла «отвязанная» версия Arduino Mega Server

                image

                Революция о которой так долго говорили большевики свершилась. Теперь вы можете взять карточку памяти microSD, записать на неё файлы дистрибутива AMS и ваша Arduino превратиться в маленькое (или большое, это как посмотреть) чудо. Вам больше не нужны «костыли» с поддержкой стороннего сервера, Arduino Mega Server стал полностью автономным и вполне «юзабельным» в одиночном режиме работы. И это открывает для всех нас очень интересные перспективы.
                Читать дальше →
              • Глава 1. «Что такое Виртуальные Миры и как они возникли». Перевод книги Ричарда Бартла «Designing Virtual Worlds»

                  Приглашаю всех присоединиться к переводу книги. За перевод первой главы спасибо Лилии Кутуевой.
                  Начало тут.

                  imageНесмотря на то, что могут быть (и есть) и более фундаментальные определения этого понятия, тем не менее, Виртуальные Миры (ВМ) всегда придерживаются определенных условий, отличающих их от других родственных виртуальных пространств. Самыми основными будут следующие:

                  1. В основе ВМ лежат базовые автоматизированные правила, которые побуждают игроков производить в нем изменения (однако, они не могут менять сами правила, которые дают им такую возможность). Таковы физические основы ВМ.
                  2. Игроки играют своих персонажей «внутри» мира. Они могут обладать частичным или полным влиянием на войско, команду или группу людей, но в этом мире есть лишь одна игровая сущность, которой они представлены и с которой прочно связаны – это их персонаж. Поэтому и все взаимодействия с миром и другими игроками опосредованы этим персонажем.
                  3. Взаимодействие с миром осуществляется в режиме реального времени. Соответственно, когда вы что-то в нем делаете, можете ожидать немедленной ответной реакции.
                  4. Этот мир – многопользовательский.
                  5. Этот мир – стабилен (по крайней мере, до некоторой степени).

                  Игровой чат не является ВМ, потому что не имеет заданных физических параметров. Варгейм-стратегия не проецирует игрока на персонажа, которым он играет. Игра по электронной почте не происходит в режиме реального времени. Игра с одним игроком не является многопользовательской. Мир шутера от первого лица неустойчив.
                  В некоторых примерах аргументы не столь однозначны. Например, являются ли настольные РИ виртуальными мирами? Нет, потому что они не автоматизированы, но уже недалеки от этого. Может ли образовательный МПМ из двух игроков быть назван виртуальным? Возможно. Будет ли таковым мир игры на 500 игроков, мир столь большой, что некоторые игроки могут никогда друг с другом и не встретиться? Да, но это спорный вопрос.
                  На поверку определить, является ли мир виртуальным или нет, довольно легко – достаточно проверить его происхождение. Если его устройство в значительной степени списано с устройства существующего ВМ, почти наверняка это – ВМ; если же нет, тогда почти наверняка это не он.
                  Читать дальше →
                  • +11
                  • 14k
                  • 6
                • Некоторый опыт разработки игры на Unity3D

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

                  Скриношты для привлечения внимания:
                  image image

                  Моральная сторона вопроса

                  Стоит ли заниматься подобным, не имея серьезных знаний в разработке игр, моделировании, программировании? Ответа на вопрос от меня не последует, он у каждого будет свой. С уверенностью могу сказать точно — я не пожалел. Я попытаюсь кратко и четко выделить и описать узкие места с которыми я столкнулся, проложить карту по граблям.

                  Unity3d

                  Unity3d с недавних пор разрешено использовать бесплатно и на всю мощь. Я долго метался между несколькими движками, но c# оказался для меня решающим преимуществом. Кроме того, в Unity3d очень удобный способ построения пользовательского интерфейса. Для тех кто не боится Lua, также могу посоветовать Project Anarchy, или Unreal Engine 4 если не брезгуете визуальным программированием. У меня сложилось впечатление, что Unity3D прекрасно подходит для мобильной разработки. К сожалению у Unity3D слабое русскоязычное комьюнити и нередко приходится лезть на официальный qa.
                  Читать дальше →
                  • +12
                  • 35.3k
                  • 4
                • Unity 5 uNet – новая сетевая подсистема. Этюд по авторитарной архитектуре

                  image

                  Пример реализации сетевой архитектуры в Unity3D с авторитарным сервером


                  В виду того, что:
                  а) старые сетевые принципы Unity3D, как говорится, устарели;
                  б) я всё равно не понимал, как у меня заработало то колдунство.
                  в) назойливо появился новый метод и начал прыгать в глаза при каждом запуске Unity.
                  я решил, что надо в сетевом обмене разобраться плотнее и устранить область “here be dragons”.
                  Читать дальше →
                  • +10
                  • 34.1k
                  • 7
                • In App Purchase с помощью Soomla. Быстро и просто



                  В последнее время пришлось интегрировать внутриигровые покупки в свою игру и встал вопрос, а какой же плагин для этого использовать под Unity3D? Есть такие вещи как OpenIAB, Prime31, Unibill и Soomla. Более мелкие вещи брать в расчет не будем, ибо некоторые из них либо не обновляются вообще, либо имеют какие-то критические проблемы. Кто хочет знать, почему выбор пал именно на Soomla, и как его интегрировать прошу под кат.
                  Читать дальше →
                • Spring без XML. Часть 2

                  • Tutorial
                  И снова день добрый. Пост в продолжение публикации «Spring + Java EE + Persistence, без XML. Часть 1».


                  1. Введение


                  1.1 Подгружаем проект


                  Если вы хотите с этой части начать, либо не осталось проекта сделанного в предыдущей части, можете скачать его с github.
                  Схема простая:
                  • Заходите из консоли в папку с проектами IDEA
                  • git clone github.com/MaxPovver/ForHabrahabr.git
                  • cd ForHabrahabr/
                  • git checkout withauth
                  • Готово, теперь можете грузить проект в студию так же как описано в первой части.

                  1.2 Что мы будем делать в этой части?


                  В этой части мы рассмотрим как хранятся отношения многие-ко-многим на уровне объектов сущностей;
                  доделаем распределения прав пользователям;
                  сделаем простейший REST-controller;
                  сделаем регистрацию новых пользователей (только для админа);
                  и все это без XML.
                  Читать дальше →
                  • +8
                  • 16.1k
                  • 6
                • Как реализовать конвертацию из растра в черно-белый вектор на сайте

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

                    image
                    Читать дальше →
                    • +14
                    • 18.6k
                    • 5
                  • Работа с компрессией текстур в Unity3D + NGUI

                    Привет Хабровчане!

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

                    Хотелось бы поделиться разработкой, которую мы успешно внедрили у себя в Heyworks и используем на проекте Pocket Troops (Неудержимые). Проблема, с которой сталкивались и сталкиваются все разработчики, при чем не только работающие с NGUI и Unity3d, но и с другими движками и пакетами, это поиск золотой середины между качеством и весом игровых интерфейсов (впрочем, это не только интерфейсов касается). В этой статье я постараюсь помочь убить двух зайцев одной пулей.
                    Кому интересно, добро пожаловать под кат.