• Об опыте написания AI к простенькому 2D шутеру

    Приветствую хаброчитателей, хочу вам рассказать об опыте написания AI к простенькой 2D игрушке в далеких уже 2003-2004 годах. Скажу сразу что написание сочинений в жизни мне никогда не удавалось, однако я буду стараться.
    Скорее всего специалистам геймдева данный пост покажется нубским, но надеюсь что остальным будет интересно, итак, начнем с начала.
    Читать дальше →
  • О синглтонах и статических конструкторах

      Изначально автор хотел назвать эту статью следующим образом: «О синглтонах, статических конструкторах и инициализаторах статических полей, о флаге beforeFieldInit и о его влиянии на deadlock-и статических конструкторов при старте сервисов релизных билдов в .Net Framework 3.5», однако в связи с тем, что многострочные названия по неведомой автору причине так и не прижились в современном компьютерном сообществе, он (автор) решил сократить это название, чудовищным образом исказив его исходный смысл.

      -------------------------

      Любая реализация паттерна Синглтон в общем случае преследует две цели: во-первых, реализация должна быть потокобезопасной, чтобы предотвратить создание более одного экземпляра в многопоточном мире .Net; а во-вторых, эта реализация должна быть «отложенной» (lazy), чтобы не создавать экземпляр (потенциально) дорого объекта раньше времени или в тех случаях, когда он вообще может не понадобиться. Но поскольку основное внимание при прочтении любой статьи про реализацию Синглтона отводится многопоточности, то на «ленивость» зачастую не хватает ни времени не желания.

      Читать дальше →
    • Android-марионетки

        В любой новости про зловредные приложения для платформы Android непременно упоминается механизм, с помощью которого Google удаленно удаляет нежелательное ПО со всех устройств разом. Как работает эта система, и не может ли она сама стать самым большим каналом распространения малвари?
        image
        Читать дальше →
      • Асимметричная криптография при лицензировании подписочного ПО на практическом примере

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

          В статье читайте:
          • Про «лицензию», «активацию», «хэш-функции», «цифровую подпись», «асимметричную криптографию» и (вкратце) про RSA и DSA, без формул и математики.
          • Чем механизм подписки (subscription) отличается от традиционного лицензирования.
          • Применение описанных принципов на примере EXE-протектора VMProtect.
          Статья сугубо практическая, т.к. эти же самые идеи мы применяем в нашем стартапе — платформе RentSoft (мы рассказывали о нем в предыдущей статье). Фактически, я описываю, что находится у нас «под капотом», а также сообщаю о тех «граблях», на которые мы в свое время наступили. Ближе к концу статьи будет практическая демонстрация — иллюстрация механизма взаимодействия нашей платформы с протектором EXE-файлов VMProtect, нашим партнером.

          Итак, приступим.
          Читать дальше →
        • Cut the Rope — первое место в Android Market. Сколько заработано?



            Российская игра Cut the Rope всего за неделю после выхода под Android заняла первое место в списке платных приложений Android Market. Это большой успех для отечественных разработчиков, которые сделали один из самых успешных игровых проектов на мировом мобильном рынке. В AppStore игра на пятом месте среди платных приложений, а по темпам роста обгоняла график Angry Birds. Первый миллион скачиваний состоялся всего на девятый день после релиза, что является рекордом для платных игр в AppStore.

            Кстати, издателем Cut the Rope является британская компания Chillingo — та же самая, что у Angry Birds.
            Читать дальше →
          • Разработка производительных приложений

            • Translation

            Производительные приложения



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

            Несмотря на то, что здесь будут описаны микрооптимизации, они практически никогда не смогут повредить вашему приложению. Выбор правильных алгоритмов и структур данных всегда должны быть первыми приоритетами, но этот аспект рассматриваться не будет.
            Читать дальше →
            • +65
            • 5.3k
            • 9
          • Как получить наибольшую выгоду от Crash Reports или упрощаем себе жизнь

              Привет хабродроидеры!
              Если ваше приложение падает в production и вам нужно быстро понять почему, на каком девайсе, с какой прошивкой и конфигурацией, то этот маленький топик расскажет об одном способе решения данной проблемы.
              Под катом описание возможностей ACRA.
              Читать дальше →
            • Реализация серверной части в многопользовательских онлайн играх

                За свою недолгую жинь я ни разу не встречал программиста, который бы не любил игры. И уж тем более, программиста, который никогда их не писал.
                Кто-то начинает с тетриса, кто-то со змейки. У кого-то это увлечение проходит, а кто-то этим «заболевает» и превращает свою болезнь в любимую работу или занятное хобби.

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

                Читать дальше →
              • Реклама для вашего Android приложения

                  Реклама реклама или как заработать на вашем приложении


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

                  Ну что ж поехали.
                  Читать дальше →
                • Debugger Canvas – новый способ отладки кода в Visual Studio

                    Debugger Canvas – это достаточно интересный способ отладки приложений (и не только). Этот плагин для Visual Studio Ultimate дает немного, пока для меня, необычный способ пошаговой отладки в Visual Studio. После установки этого расширения в Visual Studio ничего настраивать не нужно, а увидеть его работу можно сразу же после запуска приложения под отладчиком и установки точки останова. Debugger Canvas автоматически откроет в Visual Studio отдельный таб со своей функциональностью. Идея этого расширения в том, что оно открывает каждый отлаживаемый метод в отдельной области, позволяя на одном экране проследить цепочку вызовов методов (call stack) и более того иметь возможность просматривать значения локальных переменных в предыдущих методах по цепочке, если вы проходили их под отладчиком. Под катом более подробно о функциях и скриншоты.
                    Читать дальше →
                  • Подробное руководство по установке Android-x86

                      Эмулятор который идет в комплекте с Android SDK, не очень шустрый.
                      Основная идея использовать VirtualBox + Android X86, для преодоления проблем с производительностью.

                      Что нам необходимо:
                      Среда разработки Eclipse + Android SDK тут,
                      а также VirtualBox.

                      Под катом много картинок, и процесс установки, а также некоторые полезные советы.
                      Читать дальше →
                    • Фильтр Калмана — !cложно?

                        Недавно прочитал пост из «Дополненной реальности», в котором упоминается Фильтр Калмана в сравнении с более простым «альфа-бета» фильтром. Давно собирался сочинить нечто вроде сниппета по составлению ФК, и вот думаю самое время. В статье я вам расскажу как на практике можно составить расширенный ФК не особо утруждая себя высоконаучными размышлениями и глубокими теоретическими изысканиями.
                        Под катом попытка рассказать по-простому о сложном