Search
Write a publication
Pull to refresh
4
0
Send message

Что (не)нужно знать для создания игр на Unity

Reading time10 min
Views19K


Unity — игровой движок, с далеко не нулевым порогом вхождения (сравнивая с тем же Game Maker Studio), и в этой статье я расскажу с какими проблемами столкнулся начиная его изучение, и какие решения этих проблем нашел. Я буду описывать подобные моменты на примере своей 2d игры-головоломки для Android (которая, надеюсь, скоро выйдет в Play Market).
Читать дальше →

Паттерны дизайна уровней для 2D-игр

Reading time23 min
Views37K

Введение


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

Создание шейдера травы в движке Unity

Reading time25 min
Views28K

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

Статья описывает поэтапный процесс написания шейдера травы в Unity. Шейдер получает входящий меш, и из каждой вершины меша генерирует при помощи геометрического шейдера травинку. Ради интереса и реализма травинки будут иметь рандомизированные размеры и поворот, а ещё на них будет влиять ветер. Чтобы управлять плотностью травы, мы используем тесселяцию для разделения входящего меша. Трава сможет и отбрасывать, и получать тени.

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

Дешёвые и дорогие батарейки ААА

Reading time3 min
Views352K
Реклама добилась своего: большинство покупателей уверены, что батарейки Duracell и Energizer значительно лучше других. Чтобы проверить, так ли это, я протестировал 20 видов щелочных (alkaline) батареек AAA — от самых дешёвых до самых дорогих.


Читать дальше →

Чек-лист по ASO: текстовая оптимизация

Reading time9 min
Views7.3K


Продолжаем цикл статей об оптимизации и продвижении приложений на мобильных рынках. В прошлый раз мы разобрали все составляющие визуального образа продукта и пообещали так же детально рассказать и о текстовой оптимизации. Выполняем свое обещание под катом.
Читать дальше →

Haxe и PHP: статическая типизация, стрелочные функции, метапрограммирование и многое другое

Reading time9 min
Views8.4K

Привет, Хабр! Предлагаю вашему вниманию перевод доклада Александра Кузьменко с прошедшей недавно (14-15 июня) конференции Hong Kong Open Source Conference 2019.


image


До того, как присоединиться к Haxe Foundation в качестве разработчика компилятора Haxe, Александр около 10 лет профессионально занимался программированием на PHP, так что он знает предмет доклада.

Читать дальше →

Шпаргалка по Gradle

Reading time7 min
Views108K

Как мне кажется, большинство людей начинают разбираться с gradle только тогда, когда в проекте что-то надо добавить или что-то внезапно ломается — и после решения проблемы "нажитый непосильным трудом" опыт благополучно забывается. Причём многие примеры в интернете похожи на ускоспециализированные заклинания, не добавляющие понимания происходящего:


android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.habr.hello"
        minSdkVersion 20
        targetSdkVersion 28
    }
    buildTypes {
        release {
            minifyEnabled false
        }
    }
}

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


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

Читать дальше →

Уменьшаем время сборки ваших Android-проектов

Reading time6 min
Views11K
Доброе утро! Начинаем понедельник с материала, перевод которого подготовлен специально для студентов курса «Android-разработчик. Продвинутый курс».



Недавно я переносил кодовую базу Android в Kure на AndroidX. Мне показалось, что это прекрасная возможность поработать над скоростью сборки проекта. У Gradle всегда была плохая репутация из-за медлительности и ресурсоемкости, но я был очень удивлен, что незначительные изменения в конфигурации сборки могут так значительно увеличить ее скорость.
Читать дальше →

Делаем вездесущий Splash Screen на iOS

Reading time10 min
Views29K


Привет Хабр!

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

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

Бесконечный и нелепый список того, что вам нужно знать, чтобы безопасно использовать публичные сети Wi-Fi

Reading time4 min
Views34K
Привет, Хабр! Представляю вашему вниманию перевод статьи «The Complete, Endless, Ridiculous List of Everything You Need to Be Safe on Public Wi-Fi» автора Patrick F. Wilbur.

Wi-Fi сети, вебсайты, протоколы, которые мы используем, не обеспечивают нам необходимой безопасности онлайн. Поэтому каждый пользователь должен сам защитить себя. Под катом список основных принципов для безопасного использования Интернета.
Читать дальше →

Лучшие дистрибутивы Linux для старых компьютеров

Reading time8 min
Views555K
Привет!

Меня зовут Рушан, и я автор Telegram‑канала Нейрон. Не забудьте поделиться с коллегами или просто с теми, кому интересны такие статьи.

Вкратце: пока не бросайте свой старый компьютер — используйте легкий дистрибутив Linux, чтобы возродить его!

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

Лучшие легкие дистрибутивы Linux для старых ноутбуков и десктопов


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

10. Peppermint


image

Peppermint  —  это облачно-ориентированный дистрибутив Linux, не требующий мощного железа для запуска. Он основан на Lubuntu и использует окружение рабочего стола LXDE для более плавной работы.
Читать дальше →

RectTransformUtility, или как сделать компонент, который анимированно сдвигает элементы UI за экран

Reading time6 min
Views19K
В прошлой статье — Разновидности координат используемые в GUI Unity3d я попытался кратко рассказать о разновидностях координат в Unity UI/RectTransform. Теперь хочется немножко осветить такую полезную для UI штуку как RectTransformUtility. Которая является одним из основных инструментов вычисления чего либо в UI по отношению к чему либо ещё.

Простая непростая задача


Есть задача — нужен компонент который анимированно убирает UI элемент за выбранный край экрана. Компоненту должно быть фиолетово где он находится иерархически, в каких местах стоят якоря, какой размер экрана, и в каком месте экрана он находится. Компонент должен уметь убирать объект в 4е стороны (вверх, вниз, влево, вправо) за заданное время.
Читать дальше →

Упрощаем рисование Enum Flags в Unity

Reading time3 min
Views18K


В этой публикации я постараюсь вкратце рассказать о типе перечисления в C#, применении его в качестве флагов, а так же о том, как можно упростить их рисование в инспекторе Unity.
Читать дальше →

Чек-лист по ASO: как ничего не упустить

Reading time8 min
Views4.9K
Недавно наши сотрудники прослушали серию вебинаров, посвященных поисковой оптимизации мобильных приложений. В ходе обсуждения полученной информации мы пришли к выводу, что, несмотря на большой опыт в сфере разработки и ASO, простые меры по оптимизации выдачи, которые порой кажутся не столь значительными, могут помочь добиться хорошего результата.



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

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

Все самое вкусное под катом. Поехали!
Читать дальше →

Чем искать уязвимости веб-приложений: сравниваем восемь популярных сканеров

Reading time14 min
Views104K
Сканеры веб-приложений — довольно популярная сегодня категория софта. Есть платные сканеры, есть бесплатные. У каждого из них свой набор параметров и уязвимостей, возможных для обнаружения. Некоторые ограничиваются только теми, что публикуются в OWASP Top Ten (Open Web Application Security Project), некоторые идут в своем black-box тестировании гораздо дальше.



В этом посте мы собрали восемь популярных сканеров, рассмотрели их подробнее и попробовали в деле. В качестве тренировочных мишеней выбрали независимые точки на двух платформах (.NET и php): premium.pgabank.com и php.testsparker.com.
Читать дальше →

Telegram. Безлимитный сетевой диск. Бесплатный

Reading time3 min
Views190K
Привет, Хабр.

Наверняка многие об этом задумывались, возможно у кого то эта идея лежит в TODO. У меня она пролежала примерно год, но таки удалось ее реализовать в виде работающего прототипа.

TgCloud:


  • Виртуальная файловая система с открытым исходным г****кодом.
  • На локальном диске — только метаданные: имена, размер, структура папок и т.д.
  • Данные хранятся в Telegram и загружаются только при работе с файлом
  • Размер и тип файлов не ограничен, можно использовать с любой ОС

Подробности реализации и ссылка на репозиторий под катом.
Читать дальше →

Курс о Deep Learning на пальцах

Reading time2 min
Views176K
Я все еще не до конца понял, как так получилось, но в прошлом году я слово за слово подписался прочитать курс по Deep Learning и вот, на удивление, прочитал. Обещал — выкладываю!

Курс не претендует на полноту, скорее это способ поиграться руками с основными областями, где deep learning устоялся как практический инструмент, и получить достаточную базу, чтобы свободно читать и понимать современные статьи.

Материалы курса были опробованы на студентах кафедры АФТИ Новосибирского Государственного Университета, поэтому есть шанс, что по ним действительно можно чему-то научиться.


Читать дальше →

Использование Typescript с React – руководство для новичков

Reading time6 min
Views192K
Друзья, в преддверии выходных хотим поделиться с вами еще одной интересной публикацией, которую хотим приурочить к запуску новой группы по курсу «Разработчик JavaScript».



Потратив последние несколько месяцев на разработку приложений на React и библиотек с использованием Typescript, я решил поделиться некоторыми вещами, которые узнал за это время. В этом руководстве я расскажу вам про шаблоны, которые я использую для Typescript и React в 80% случаев.

Стоит ли изучать Typescript для разработки приложений на React? Стоит, еще как стоит! Для себя я осознал на практике, что строгая типизация приводит к написанию гораздо более надежного кода, быстрой разработке, особенно в крупных проектах. Сначала вы, вероятно, будете разочарованы, но по мере работы вы обнаружите, что хотя бы минимальный шаблон действительно будет очень кстати.

И если вы застряли на чем-то, помните, что вы всегда можете типизировать что- нибудь как any. Any – ваш новый друг. А теперь перейдем непосредственно к примерам.
Читать дальше →

Машинное обучение агентов в Unity

Reading time9 min
Views18K
image

Эта статья об агентах машинного обучения в Unity написана Майклом Лэнхемом — техническим новатором, активным разработчиком под Unity, консультантом, менеджером и автором многих игр на движке Unity, графических проектов и книг.

Разработчики Unity внедрили поддержку машинного обучения и в частности глубинного обучения с подкреплением ради создания SDK глубинного обучения с подкреплением (deep reinforcement learning, DRL) для разработчиков игр и симуляций. К счастью, команда Unity под руководством Дэнни Лэнджа успешно реализована надёжный и современный движок DRL, способный показывать впечатляющие результаты. В качестве основы движка DRL Unity использует модель proximal policy optimization (PPO); эта модель значительно сложнее и в некоторых аспектах может отличаться.

В этой статье я познакомлю вас с инструментами и SDK для создания агентов DRL в играх и симуляциях. Несмотря на новизну и мощь этого инструмента, его легко использовать и он имеет вспомогательные инструменты, позволяющие осваивать концепции машинного обучения на ходу. Для работы с туториалом необходимо установить движок Unity.
Читать дальше →

Гипер-казуалки и чему у них могут научиться геймдизайнеры

Reading time7 min
Views67K


Гипер-казуальный жанр захватил мобильные сторы. Кто-то считает, что он скоро умрет, но в ближайшее время этому точно не суждено сбыться. Только с октября 2018 по март 2019 гипер-казуалки загрузили более 771 млн раз.

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

Information

Rating
Does not participate
Registered
Activity