Как стать автором
Обновить
0
@Dimitrollread⁠-⁠only

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

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

Windows Camp //Labs — как научиться разрабатывать универсальные приложения Windows 10 за один день

Время на прочтение2 мин
Количество просмотров11K
На так давно мы провели Windows Camp, на котором рассказали вам про новую Windows 10 и универсальные приложения (если вы ещё не видели — можно посмотреть все доклады онлайн). Однако, как известно, лучше один раз увидеть, чем 7 раз услышать, и лучше один раз потрогать, чем 7 раз увидеть.



Мы приглашаем вас вместе с нами научиться разрабатывать приложения на платформе Windows 10 в ходе специальных лабораторных работ — Windows Camp //Labs. Мероприятие пройдет 28 октября в Москве (обязательна предварительная регистрация) в Digital October, участники не из Москвы смогут посмотреть трансляцию (на сайте мероприятия) и проделать работы у себя дома. Для участия (как на мероприятии, так и онлайн) потребуется ноутбук с установленным ПО (подробности — ниже).
Читать дальше →
Всего голосов 18: ↑12 и ↓6+6
Комментарии4

Проблема читов в онлайн-играх

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


Большинство крупных многопользовательских игр рано или поздно сталкиваются с тем, что не все пользователи играют честно. В нашем шутере Warface в какой-то момент это стало ощущаться особенно сильно. Для борьбы с читерами мы используем целый комплекс решений. Одним из компонентов этого комплекса является наша внутренняя разработка под названием MRAC (Mail.Ru AntiCheat). После ее внедрения мы добились хороших результатов: среднее количество ежедневно улетающих в бан читерских аккаунтов упало с 17000 в начале года до 1500 сейчас, при том, что количество жалоб от пользователей на читеров существенно уменьшилось. На выявление подозрительной активности и блокировку аккаунта сейчас уходит примерно 5 минут, вместо прежних 20. Сейчас система распознает и реагирует на более чем 200 сигнатур читерского ПО и постоянно совершенствуется.
Читать дальше →
Всего голосов 61: ↑50 и ↓11+39
Комментарии98

Metaballs без шейдеров + физика жидкостей

Время на прочтение7 мин
Количество просмотров20K
Как-то раз возник у меня диспут с хабраюзером ZimM по поводу безшейдерного 2D движка: я утверждал, что для простых 2D игр шейдеры не обязательны, почти все эффекты можно сделать спрайтами, его же позиция была обратной. Я не раз в уме возвращался к этому спору и придумывал задачи, не реализуемые на первый взгляд без шейдеров, и именно решение одной такой задачи и привело к созданию игры, где игрок управляет жидкостью наклоном телефона.
Читать дальше →
Всего голосов 21: ↑19 и ↓2+17
Комментарии11

Технические рекомендации и ресурсы Google для мобильных сайтов

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


Предлагаем вашему вниманию материалы доклада Андрея Липатцева, Google, с последней конференции Bitrix Summer Fest. В своём выступлении Андрей рассказал о текущей ситуации с ранжированием и оценкой Google сайтов для мобильных устройств.
Читать дальше →
Всего голосов 25: ↑19 и ↓6+13
Комментарии1

Проектирование программного обеспечения

Время на прочтение5 мин
Количество просмотров125K
Если бы мы запланировали статью, которая не будет никому интересна, то наверное написали про важность проектирования зданий перед их постройкой. Но, к счастью, любой человек понимает, почему не стоит строить дома на глазок, добавляя фичи прямо в процессе строительства. При разработке же программного обеспечения по-прежнему полезно напоминать о том, что начинать её следует с проектирования — т.е. с полного планирования того, что непосредственно нам придётся разрабтывать, в какие сроки, с какими исходными данными и ожидаемым результатом.



За 13 лет опыта компании «Эдисон» в аутсорс-разработке для средних и крупных компаний из России, США, Европы и Австралии мы выработали собственную схему проектирования ПО, о которой в этом посте и расскажем.
Читать дальше →
Всего голосов 31: ↑18 и ↓13+5
Комментарии21

Эволюция дизайна и юзабилити мобильных приложений известных сервисов. Как улучшить свое приложение?

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


В июле 2008 года корпорация Apple анонсировала появление Apple App Store — каталога приложений для iOS. Несколько позже появился и Google Play. Изначально в каталогах было минимум программ, но спустя некоторое время количество приложений увеличилось до сотен тысяч. Теперь в App Store около полутора миллионов программ, а в Google Play и того больше — около миллиона шестисот тысяч (1,6 млн).

С течением времени изменялся дизайн приложений, причем эти изменения были (и есть) весьма значительными. Естественно, они произошли не просто так — разработчики хотели привлечь больше пользователей, удержать уже существующих, улучшив юзабилити и внешний вид программы. Давайте посмотрим, как с течением времени изменялись приложения известных сервисов и к чему могут привести такие изменения.
Читать дальше →
Всего голосов 14: ↑12 и ↓2+10
Комментарии1

Масштабируемая библиотека сериализации/десериализации JSON

Время на прочтение15 мин
Количество просмотров19K
Не так давно я участвовал в проекте написания прошивки для некоторого устройства. В процессе работы возник вопрос, а как, собственно, взаимодействовать с «большим братом» (управляющим компьютером)? Поскольку в качестве «большого брата» закладывались совершенно разные устройства (различные смартфоны, планшеты, ноутбуки с различными ОС и прочее), планировалось использовать web-приложение, что диктовало использование JSON для обмена сообщениями.

В итоге получилась легкая и быстрая библиотека сериализации/десериализации JSON. Основные фичи данной библиотеки:

  • в базовом функционале (без использования контейнеров STL) не использует динамическую память, вообще;
  • состоит только из заголовочных файлов (headers-only);
  • есть поддержка контейнеров STL;
  • позволяет создавать расширения для обработки произвольных типов.

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

Балансируем механику в играх

Время на прочтение5 мин
Количество просмотров26K
imageВ индустрии игр пользователь, как правило, получает готовый продукт — конфету в обертке. Обертку можно рассмотреть сразу, а вот то, что под ней скрыто, порой навсегда остается тайной. В интернете можно найти много достойной информации о том, как правильно упаковывать конфеты и какого цвета должны быть узоры на обертке. Но я, вместе с вами, хочу снять обертку и попробовать саму конфету. Под конфетой я имею ввиду — взгляд от первого лица, как делать баланс игры.

Например, мы захотели создать незатейливую RPGMMO-шечку «убийцу WoW», и у нас уже почти все готово. Мы уже нафантазировали, какая в игре будет крутая механика боя и система умений. Дело осталось за малым – абстрактные мысли превратить в конкретные значения. Причем, каким-то образом, сочетание этих значений должно убедить игрока в том, что фраза «баланс – говно» — это не про нас.
Читать дальше →
Всего голосов 27: ↑19 и ↓8+11
Комментарии9

Площадки для браузерных игр

Время на прочтение7 мин
Количество просмотров29K
Допустим, я создал браузерную игру, а что дальше? Если для мобильных — есть магазины Google Play, App Store, Windows Store и куча всяких альтернативных. Можно найти площадки для распространения сборок standalone — Desura, Steam, Itch.io. Но когда задумываешься о судьбе браузерки, то невольно впадаешь в ступор. И куда ее?

Думать о судьбе своего детища необходимо еще на начальном этапе разработки. Так, в случае с Dangerous Insects, я уже знал, где и как буду размещаться, хотя от игры в лучшем случае был только диздок. Вот и с HTML5 захотелось заранее прощупать почву.
Читать дальше →
Всего голосов 19: ↑13 и ↓6+7
Комментарии8

Простой графический редактор с использованием OpenCV

Время на прочтение5 мин
Количество просмотров31K
В этой статье я расскажу, как достаточно быстро и просто написать редактор изображений на C++ с использованием библиотеки компьютерного зрения opencv. Реализованы такие эффекты, как насыщенность, экспозиция, резкость, контрастность и другие. Никакой магии!

image

Внимание! Под катом много графики и кода.
Читать дальше →
Всего голосов 25: ↑22 и ↓3+19
Комментарии24

Подборка полезных статей для iOS-разработчиков за текущую неделю

Время на прочтение2 мин
Количество просмотров7.6K
Надеюсь, все успешно обновились до 9.0.2 и El Capitan. Уже успело подзабыться с презентации, что же там такого нового. Тем приятнее находить изменения. Сегодня вечером встреча Cocoa Heads Moscow. Большая программа. Не забывайте.
Кстати, 29 октября планируется ежегодная встреча разработчиков LLVM. Возможно там будет что-нибудь сказано про Swift и то, когда он станет Open-Source.



Читать дальше
Всего голосов 23: ↑18 и ↓5+13
Комментарии1

Неконстантные константные выражения

Время на прочтение24 мин
Количество просмотров39K
// <какой-то код>
 
int main ()
{
        constexpr int a = f ();
        constexpr int b = f ();
 
        static_assert (!= b, "fail");
}

Можно ли в приведенном выше фрагменте вместо комментария вставить такое определение f (), чтобы a получила значение, отличное от b?

“Разумеется, нет!” — скажете вы, немного подумав. Действительно, обе переменные объявлены со спецификатором constexpr, а значит, f () тоже должна быть constexpr-функцией. Всем известно, что constexpr-функции могут выполняться во время компиляции, и, как следствие, не должны зависеть от глобального состояния программы или изменять его (иными словами, должны быть чистыми). Чистота означает, что функция при каждом вызове с одними и теми же аргументами должна возвращать одно и то же значение. f () оба раза вызывается без аргументов, поэтому должна оба раза вернуть одно и то же значение, которое и будет присвоено переменным a и b… правильно?

Еще неделю назад я знал, что это правда, и действительно думал, что невозможно пройти static_assert в приведенном выше фрагменте, не допуская неопределенного поведения.

Я ошибался.
Увиденное под катом уже не развидеть
Всего голосов 61: ↑57 и ↓4+53
Комментарии28

Доступна Android Studio 1.4

Время на прочтение4 мин
Количество просмотров45K
Несколько дней назад стала доступна Android Studio 1.4 на Stable Channel, привнёсшая ряд удобных новшеств в инструментарий Android разработчика. Тех, кто еще не успел ознакомиться с нововведениями, прошу под кат.


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

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

Время на прочтение5 мин
Количество просмотров40K
Введение в проблему

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

Мысли о создании серии простых уроков «концептуальные идеи для новичков игродева» появились у меня спонтанно, где-то в 2:00 по Московскому времени во время создания своего нынешнего проекта. Ну нет, это так мне кажется, что спонтанно, но, наверное, это мое подсознание так среагировало. Среагировало потому, что все больше юных (коим я и сам являюсь) и очень юных программистов решают заняться созданием игр. Как мне кажется, общая тенденция молодежи-программистов (и людей, интересующихся сферой программирования) плавно перешла от создания сайтов и модных блогов к созданию развлекательных продуктов. Я начинаю замечать это и среди своих знакомых, которые одно время говорили, что, мол игры — это не серьезное программирование, но теперь уже проявляют настоящий интерес к этой среде.

Я объясняю это для себя следующим, очевидным образом. Любые информационные направления приобретает массовые тенденции к изучению при выполнении двух условий: наличие простого и адекватного инструмента осуществления конкретных задач в выбранной информационной сфере и легкость получения прибыли при продаже ваших выполненных задач. В пример же опять можно привести сферу веб-технологий (когда-то сайты было создавать ультра-хардкорно, а сейчас, наверное, даже моя мама сможет поставить блог на WordPress или его аналогах. Опять же почему? Потому что WordPress открыл возможность создавать свои блоги всем мамам вокруг света, и потому что веб-сайты открыли доступ к быстрой популярности, славе, деньгам и рому).

Но пришла эра развлечений – я не буду упоминать с каким трудом делались первые игры, но прошли десятилетия, стали появляться платные игровые движки, через какое-то время они стали практически бесплатные (Unity, Unreal Engine4), причем не движки от Васи с соседнего подъезда в которых можно только сделать “грабеж корованов ”, а движки мастодонты который представляют из себя комплексные среды разработки, способные реализовать ваши проекты мечты. Однако есть и обратная сторона этих популярных технологий. А именно большое количество некачественных продуктов. Обленились придумывать что-то свое… “Лучше сделаю флеппи берд!” – подумал Вася.
Читать дальше →
Всего голосов 26: ↑25 и ↓1+24
Комментарии3

19 советов по повседневной работе с Git

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


Если вы регулярно используете Git, то вам могут быть полезны практические советы из этой статьи. Если вы в этом пока новичок, то для начала вам лучше ознакомиться с Git Cheat Sheet. Скажем так, данная статья предназначена для тех, у кого есть опыт использования Git от трёх месяцев. Осторожно: траффик, большие картинки!

Содержание:
  1. Параметры для удобного просмотра лога
  2. Вывод актуальных изменений в файл
  3. Просмотр изменений в определённых строках файла
  4. Просмотр ещё не влитых в родительскую ветку изменений
  5. Извлечение файла из другой ветки
  6. Пара слов о ребейзе
  7. Сохранение структуры ветки после локального мержа
  8. Исправление последнего коммита вместо создания нового
  9. Три состояния в Git и переключение между ними
  10. Мягкая отмена коммитов
  11. Просмотр диффов для всего проекта (а не по одному файлу за раз) с помощью сторонних инструментов
  12. Игнорирование пробелов
  13. Добавление определённых изменений из файла
  14. Поиск и удаление старых веток
  15. Откладывание изменений определённых файлов
  16. Хорошие примечания к коммиту
  17. Автодополнения команд Git
  18. Создание алиасов для часто используемых команд
  19. Быстрый поиск плохого коммита

Читать дальше →
Всего голосов 152: ↑149 и ↓3+146
Комментарии62

Трудности и радости разработки первой игры на андроид

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

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

Предыстория


Начнем с того, что меня зовут Евгений, мне 26 лет. Всю свою сознательную жизнь я пытался сделать игру. В детстве это были самодельные настольные игры с кубиками; в юности попытки разобраться в бейсике и программах для создания игр на ZX Spectrum; в подростковом возрасте, до того как у меня появился персональный компьютер, я придумывал и рисовал лабиринты, в которых можно было собирать ключи, убивать врагов и т.д.
Читать дальше →
Всего голосов 30: ↑27 и ↓3+24
Комментарии34

Взятка, или История одного пасьянса

Время на прочтение2 мин
Количество просмотров20K
image
Предупреждение! Статья предназначена для любителей карточных игр и головоломок.

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

Игра была рассчитана на двоих, и я играл с процессором А7. Разыгрывалось 18 взяток, процессор был тупой (господи, ну кто так программирует!) и через месяц игры я досконально изучил характер оппонента. Основной целью стала задача обыграть его со счетом 18-0.
Читать дальше →
Всего голосов 30: ↑24 и ↓6+18
Комментарии13

История как мы хотим сделать наш мир чуточку лучше

Время на прочтение4 мин
Количество просмотров8.8K
Всем привет.

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

В одну прекрасную пятничную вечероночь, потягивая вкусный чаек с лимончиком, я попал на статью о часах судного дня. Ничоси — подумал я и отправился спать. Но сну не суждено было случиться в ту ночь. Едва, рассекая личиком воздух, я коснулся подушки, как в голове произошел творческий взрыв. Стоп! Стоп! Да не, бред, спать надо. Не прошло и минуты, как я сидел за столом с очередной кружкой чая. Так и родились ОНИ. Прошу под кат.
Читать дальше →
Всего голосов 14: ↑13 и ↓1+12
Комментарии14

Что нового в iOS 9, чего ждать от Android Marshmallow, чего стоит избегать дизайнеру игр — и другие новости недели для мобильного разработчика

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

iOS 9, что нового?


16 сентября стала доступной для скачивания iOS 9. В новой версии нас ждет много разных интересных изменений, вот некоторые из них:

  • Уменьшен размер установщика. Если для обновления до iOS 8 требовалось 4,5 ГБ, то для 9-й версии операционки нужно всего 1,3 Гб;
  • На планшетах появилась многозадачность. Теперь можно просматривать два приложения в двух окнах параллельно;
  • Улучшены такие технические характеристики, как быстродействие и время работы аккумулятора. Последнее увеличилось аж на 1 час;
  • Siri стала умнее. Она больше не игрушка, а серьезный персональный ассистент. Что ж, дадим ей еще один шанс;
  • Сильно разросся функционал заметок. Появилась возможность добавлять фото, скетчи и даже чек-листы. Появилась интеграция с другими приложениями;
  • Облегчен процесс перехода с Android на iOS.

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

Информация

В рейтинге
Не участвует
Откуда
Братск, Иркутская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Software Developer, Backend Developer
Java
C++
C#
Object-oriented design
Git
Java Spring Framework
Restful WebServices
REST
Spring Boot