• Pixel Studio — мобильный редактор пиксель-арта

      Приветствую! Идея создать свой редактор пиксель-арта (обязательно с блэкджеком) появилась на отдыхе, когда мне уже совсем надоело бездельничать и захотелось позаниматься любимым делом (а я занимаюсь играми и приложениями). А ноутбук я с собой не взял. Сейчас Pixel Studio активно набирает популярность, а нескромный заголовок «Лучший мобильный редактор пиксель-арта» нужно оправдывать) Под катом расскажу о том, сколько, как и в чем разрабатываю, как публикую и продвигаю, как развивается приложение и какие планы на будущее.

      Читать дальше →
    • Локализация игр и приложений в Unity. Быстро и удобно

      • Tutorial
      Привет! В этой статье я поделюсь своим опытом локализации игр и приложений в Unity, а также расскажу о своем плагине Simple Localization, который доступен в Asse Store. Уровень статьи — Easy. Кода не будет вообще, он вам не пригодится.

      Читать дальше →
    • Действительно ли Unity медленный? Осторожно, LINQ

        Часто говорят, что Unity медленный. Но насколько? Я разрабатываю приложение Pixel Studio, это редактор пиксель-арта. Для него я написал свою реализацию формата GIF. Самая трудоемкая операция — кодирование GIF, а именно алгоритм сжатия LZW. Посмотрим, как с этим справится Unity.

        image
        Читать дальше →
      • Ну почему все стало так медленно?! Выбираем железо для разработки на Unity

          Привет! Я делаю игры и ассеты на Unity. Начинающие разработчики иногда спрашивают меня, с чего начать и насколько мощный компьютер им понадобится. Лично у меня железо довольно старое. И чтобы ускорить разработку, я решил наконец-таки провести апгрейд своего компьютера. С далекого 2011 года сердцем моего ПК является процессор Intel Core i5 2500K, но настала пора отправить его на пенсию. Но что лучше — высокая тактовая частота или наличие большого количества ядер? Обязательно ли покупать дорогой процессор, или получится сэкономить? Какая видеокарта нужна для разработки? Будем разбираться под катом!


          Читать дальше →
        • Готовимся к публикации игры в Xiaomi Mi Game Center (Unity, C#)

          • Tutorial
          Китайский рынок мобильных игр и приложений остается в значительной степени закрытым для остального мира. И не так давно Unity анонсировали сотрудничество с Xiaomi, призванное помочь разработчикам опубликовать свои игры с помощью сервисов Unity напрямую в Xiaomi Mi Game Center. А пока на официальном сайте висит табличка «Функция еще не включена, ждите новостей!», мы можем подготовить наш билд для Xiaomi. А если повезет, то и успешно опубликовать!

          image
          Читать дальше →
        • 1.500.000 установок за 3 месяца — история разработки Tap Tap Builder

            Добрый день! Я — инди-разработчик и автор игры Tap Tap Builder. В этой небольшой статье я поделюсь своим опытом и расскажу, как маленькая игра прокладывает себе путь в большой мир.

            image
            Читать дальше →
          • Оптимизация игры на Unity и dev story Tap Tap Builder

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

              image
              Читать дальше →
            • Можно ли сделать игру без художника за 2 дня? Devstory моей игры Neobug Rush 2 Players

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

                Читать дальше →
              • Защита игр и мобильных приложений от взлома для чайников (Unity, C#, Mono)

                • Tutorial
                Всем снова здравствуйте! Дошли руки написать крутую статью на весьма важную тему для разработчиков игр. Итак, поговорим о защите ваших драгоценных игр и приложений, которые вы пилите на Unity в надежде заработать на буханку хлеба, от взлома злобными школьниками. Почему школьниками? Потому что надежной на 100% защиты априори быть не может. И кто захочет, все равно взломает. Вопрос лишь в том, сколько времени и сил он на это потратит. И как любят шутить безопасники — терморектальный криптоанализ никто не отменял.

                Итак, в статье я постараюсь максимально доступно рассказать о 3 аспектах (и конечно, предложу реализацию):
                • защита данных приложения (сейвов)
                • защита памяти приложения
                • защита внутриигровых покупок (Google Play)

                image
                Читать дальше →
              • Создание рейтинга игроков для мобильной игры (Unity + Google Play Game Services)

                  Рейтинг игроков (leaderboard, scores) для мобильной игры — вещь интересная и порой даже необходимая. В этой статье я расскажу о том, как добавить рейтинг игроков в приложение, созданное в Unity, т.к. в рунете информации об этом не так много. Кроме того, рейтинг будет кросплатформенный (android + iOS), однако без поддержки Windows Phone.

                  image
                  Читать дальше →
                • Советы по сопровождению мобильного приложения для начинающего разработчика

                    Привет! Моя статья может оказаться полезной начинающим разработчикам мобильных приложений. Итак, бессонные ночи позади, и ваше приложение отправилось в свободное плавание по просторам маркета. Вы потираете руки, наблюдая за увеличением количества установок. И количествов денег, которые начинают поступать на ваш счет. Казалось бы, самое время отдохнуть. Но нужно иметь ввиду, что ваше приложение — как захватившийся костер. Если отойти на 15 минут, он потухнет. Поэтому я хочу поделиться с вами своим опытом и дать 10 полезных советов.
                    image
                    Читать дальше →
                  • Бесплатное тестирование мобильных приложений (Samsung Apps)

                      Всем привет! Хочу поделиться с вами опытом и рассказать про публикацию игры на одном «малоизвестном» маркете — Samsung Apps.
                      Конечно, никому никогда не придет в голову мысль устанавливать оттуда приложения. Но! Я создал аккаунт (бесплатно!) и отправил игру. Через 2 недели пришел ответ, игру отклонили. Причина — в аттаче. Аттач не хилый такой — 40 метров. Скачал. Что же там?!
                      Html-отчет с тестами на 17! моделях самсунга — от мелких телефонов до планшетов. Все баги записаны с шагами воспроизведения, с картинками и видео! Я очень удивился, так как к QA имею прямое отношение. И хоть убейте, не понимаю, почему они это делают за бесплатно. Впрочем, ничто не мешает этим воспользоваться =)

                      Так что, если хотите за бесплатно протестировать вашу игру — пробуйте) Под катом несколько присланных фотографий и фрагмент html-отчета.
                      Читать дальше →
                      • +10
                      • 10.1k
                      • 8
                    • Автоматизированное тестирование веб-приложения (MS Unit Testing Framework + Selenium WebDriver C#). Часть 4: Наконец-то пишем тесты

                      • Tutorial
                      image
                      Введение

                      Привет, привет! Ну что же, пришло время заключительной части, в которой я приведу пример несложных тестов, написанных с применением врапперов из предыдущих частей статьи. Как и обещал, открываю публичный доступ к работающей версии фреймворка (см. ссылки).
                      Читать дальше →
                      • +4
                      • 41.3k
                      • 3
                    • Автоматизированное тестирование веб-приложения (MS Unit Testing Framework + Selenium WebDriver C#). Часть 3: WebPages — описываем страницы

                      • Tutorial
                      WebPages
                      Введение

                      Приветствую всех, кому предыдущие статьи оказались полезными или были просто интересны. В прошлой части мы разобрались с Selenium WebDriver, и теперь, перед тем, как приступать к написанию тестов, мы должны описать страницы тестируемого приложения. В превью перечислю основные моменты
                      • Описания всех страниц будут находиться в отдельном проекте, я назвал его Autotests.WebPages
                      • Для каждой страницы будет создан отдельный класс, располагающийся в отдельном файле
                      • Названия классов будут совпадать с названиями web-страниц, например описание страницы MySite/Home/Help будет храниться в классе с названием Help
                      • Структура расположения этих файлов иерархическая и будет повторять дерево web-страниц. Например, страница Help будет иметь путь Root\Home\Help.cs относительно проекта и располагаться в пространстве имен (namespace) Autotests.WebPages.Root.Home
                      • Для доступа к страницам будет разработан некоторый фасад (Facade), статический класс Pages
                      • На практике страницы могут иметь много общего, поэтому вполне логично использовать наследование и вынесение некоторого функционала в отдельные хелперы
                      Читать дальше →
                      • +9
                      • 21.6k
                      • 4
                    • Автоматизированное тестирование веб-приложения (MS Unit Testing Framework + Selenium WebDriver C#). Часть 2.2: Selenium API wrapper — WebElement

                      • Tutorial
                      Selenium + C#
                      Введение

                      Привет! В предыдущей части я описал основные проблемы, возникающие при работе с Selenium WebDriver, а так же привел пример обертки Browser. Вроде было не сложно, да?) Ну что ж, идем дальше. Надо разобраться с оставшимися проблемами:
                      • Описание элемента происходит одновременно с его поиском, т.е. на момент определения элемента он должен существовать в браузере. Очень часто решается путем написания getter для каждого элемента. Это накладно и плохо с точки зрения производительности
                      • ISearchContext.FindElements принимает только один параметр типа OpenQA.Selenium.By, т.е. мы не можем искать сразу по нескольким свойствам. Обычно элемент ищется по первому критерию, а затем начинается отсеивание по остальным
                      • Отсутствие многих, казалось бы, очевидных методов и свойств. Например: Exist, SetText, Select, SetCheck, InnerHtml и т.д. Вместо этого мы вынуждены довольствоваться Click, SendKeys и Text
                      • Множество проблем на различных браузерах, например на Firefox и Chrome элемент кликается, а на IE — нет. Приходится писать special cases, «костыли»
                      • Производительность. Да, драйвера работают не быстро. Впереди планеты всей как обычно IE — поиск может занимать секунды, иногда и десятки секунд

                      В этой части мы будем писать wrapper WebElement, который целиком направлен на пользователя, т.е. на разработчиков автотестов. Признаюсь, что в момент его написания моя задача заключалась в создании «фреймворка», которым должны пользоваться инженеры по ручному тестированию для написания автотестов. Естественно предполагалось, что они имеют весьма скромные познания в программировании. Поэтому было совершенно не важно, сколько тонн кода будет в самом фреймворке и насколько он будет сложным внутри. Главное, чтобы снаружи он был прост как три буквы. Предупреждаю, будет много кода и мало картинок =)
                      Читать дальше →
                      • +8
                      • 35.8k
                      • 7
                    • Автоматизированное тестирование веб-приложения (MS Unit Testing Framework + Selenium WebDriver C#). Часть 2.1: Selenium API wrapper — Browser

                      • Tutorial
                      Selenium + C#
                      Введение

                      Снова здравствуйте! Представляю вам вторую часть статьи на тему автоматизированного тестирования веб-приложения на Selenium и C#. И если первая часть была из разряда «капитан очевидность», что вызвало негодование у читателей, то в этой части будет много кода. И так, зачем же писать обертку (wrapper) над Selenium API? На мой взгляд, пользователи могут столкнуться со следующими проблемами:
                      • Интерфейс IWebDriver предоставляет довольно скудную функциональность в плане управления браузером. Поэтому все, что нам понадобится, придется писать самим
                      • Описание элемента происходит одновременно с его поиском, т.е. на момент определения элемента он должен существовать в браузере. Очень часто решается путем написания getter для каждого элемента. Это накладно и плохо с точки зрения производительности
                      • ISearchContext.FindElements принимает только один параметр типа OpenQA.Selenium.By, т.е. мы не можем искать сразу по нескольким свойствам. Обычно элемент ищется по первому критерию, а затем начинается отсеивание по остальным
                      • Отсутствие многих, казалось бы, очевидных методов и свойств. Например: Exist, SetText, Select, SetCheck, InnerHtml и т.д. Вместо этого мы вынуждены довольствоваться Click, SendKeys и Text
                      • Множество проблем на различных браузерах, например на Firefox и Chrome элемент кликается, а на IE — нет. Приходится писать special cases, «костыли»
                      • Производительность. Да, драйвера работают не быстро. Впереди планеты всей как обычно IE — поиск может занимать секунды, иногда и десятки секунд

                      Ну что ж, много проблем — много решений. Я не хочу и не смогу изложить все и сразу в этой части. Длинный пост будет неинтересен, да и во время его написания энтузиазм резко падает) Поэтому эта часть имеет номер 2.1, в ней я покажу свой wrapper над браузером.
                      Читать дальше →
                      • +15
                      • 47.2k
                      • 3
                    • Автоматизированное тестирование веб-приложения (MS Unit Testing Framework + Selenium WebDriver C#). Часть 1: Введение

                      image

                      Введение

                      Всем Buenos Dias! В своей статье я хотел бы максимально лаконично и просто рассказать о том, как построить процесс автоматизированного тестирования web-приложения с нуля. Первым делом нужно правильно расставить приоритеты и выбрать приемлемое соотношение цена/качество. Сразу определимся — это будет не решение «на коленках» из зоопарка скриптов, которыми часто пользуются при ручном тестировании. В тоже время мы не будем тратить много усилий на проектирование нашего «фреймворка» для автоматизации. Наша цель — предоставить результаты своей бурной деятельности перед руководством в максимально короткие сроки, при этом система должна быть:
                      • максимально простой, чтобы тесты могли писать даже специалисты по ручному тестированию
                      • гибкой и расширяемой, поскольку мы не можем адекватно оценить весь объем работ на данном этапе
                      • кроссплатформенной (Selenium WebDriver C# поддерживает Firefox, Chrome и IE)

                      В своем примере я буду успользовать .NET (Microsoft Unit Testing Framework) и Selenium WebDriver C#.
                      Читать дальше →