Buffer icon Проекты

Избранное

Позднее Ctrl + ↑

Свой CI/CD для Unity

Mopsicus CI/CD bash script

Mopsicus CI/CD bash script

Mopsicus CI/CD bash script

Написал небольшую статью на Хабр про скрипт который получился в результате автоматизации сборки Unity проектов под Android и iOS. Раньше большинство операций делалось вручную, теперь всё сведено к минимуму.

Один запуск скрипта и:

  • скачиваются последние изменения с GIT
  • запускаются тесты
  • собирается APK для Android, в develop или release
  • собирается для iOS Xcode проект, в develop или release
  • компилируется
  • архивируется и экспортируется в IPA
  • генерируется манифест для него
  • генерируются HTML страницы для установки
  • всё это загружается на сервер с помощью sshpass
  • все логи записываются в отдельную папку
  • отсылается уведомление в Телеграмм, что всё готово

Вот такая интеграция и доставка :)

Исходники на Github

Рассылка по Unity

Mopsicus Newsletter subscribe

Mopsicus Newsletter subscribe

Mopsicus Newsletter subscribe

Решил сделать ежемесячную email рассылку по Unity, играм и разработке.

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

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

Всего один раз в месяц вы будете получать ссылки на:

  • интересные статьи
  • обзоры
  • видео
  • аналитику
  • исходники
  • скрипты
  • игры
  • инструменты разработки
  • до сюда дочитали?
  • плагины и ассеты
  • мои комментарии ко всему этому

Присоединяйтесь!

? Ссылки на все выпуски можно найти по тегу: рассылка.

Как делать шрифты для TextMeshPro

TextMeshPro уже давно часть Unity и его можно бесплатно установить через пакетный менеджер. Не буду описывать все преимущества перед старым текстовым компонентом, это примерно как, сравнивать Блокнот и Word.

Шрифт который используется по-умолчанию поддерживает основные символы, но он обычный/скучный/дефолтный, примерно как китовый объектив у фотоаппарата :) Чтобы добавить в свою игру новый красивый/необычный/яркий шрифт, надо проделать все пару операций.

TMP Font Creator

TMP Font Creator

TMP Font Creator

Итак, что необходимо:

  • Сам шрифт TTF (OTF), не забывайте про лицензию ☝️
  • Unity с установленным TMP
  • Набор символов или unicode range, который будете использовать
  • Надо понимать, что во многих шрифтах может не быть необходимых символов
  • У Google есть бесплатные Noto Fonts которые тоже немного скучные, но поддерживают все языки :)
  1. Добавляете файл шрифта в проект, открываете TMP Font Asset Creator и перетаскиваете его в поле Source Font File
  2. Теперь можно выбрать набор символов, для этого есть меню Character Set:

Select character set type for TMP

Select character set type for TMP

Select character set type for TMP
Всё что идёт до Custom Range — понятно, это разновидности ASCII и символы. После это опции где можно выбирать откуда брать символы: из файла, просто перечислить в поле, указать промежуток, последовательность и т. д.
  1. Выберем Unicode Range (HEX) и укажем, например 0020-007F — это базовые латинские символы, ренжи можно указывать через запятую
  2. Теперь можно нажать Generate Font Asset

Окно после настроек и генерации шрифта, должно выглядеть как-то так:

Complete font generation for TMP

Complete font generation for TMP

Complete font generation for TMP
  • Из указанного ренжа было добавлено 95 из 96 символов, не добавился 007F — ␡, его нет в этом шрифте.
  • В результате, для атласа 512×512 получился Point Size = 69, потому что в настройках было указано Auto Sizing.
  • Можно указать размер шрифта вручную, но тогда надо следить чтобы все влезли в атлас и при необходимости увеличить размер атласа.
  • Также, можно разбить свои шрифты на несколько ассетов, например, сделать один (базовый) с часто используемыми символами, второй с математическими знаками, третий с армянским языком. И при необходимости TMP сам будет использовать нужный атлас. Для этого к базовому ассету нужно добавить поддержку остальных:

TMP fallback view

TMP fallback view

TMP fallback view

Как сделать поддержку Emoji в Unity, я уже писал. Ещё недавно на форуме один товарищ опубликовал свое решение проблемы с модификаторами в эмоджи. Напомню, что до сих не работают модификаторы, т. е. если вы сделаете атлас с эмоджи, то всякие флаги, цвет кожи и т. п. будут отображаться некорректно. Автор TMP обещал всё это допилить к версии 2019.3, но пока этого нет. Вариант с форума работает правильно.

Разные unicode ranges для создания своих шрифтов можно подглядеть тут.

Backstage WWDC 2019

Вернулся из Сан-Хосе, был на WWDC 2019, хотелось бы поделиться некоторыми деталями от участника.

В марте «выиграл в лотерею» билет на WWDC и начал оформление доков. Об этом можно написать отдельный пост, если интересно, как сейчас в России получить американскую визу (не быстро, но может повезти). Всё успел, в конце апреля уже была готова виза :)

Три перелёта и я в Сан-Хосе. Сама конфа проходила в McEnery Convention Center, в центре города. Как пишет википедия, Сан-Хосе третий по численности населения в штате, после Лос-Анджелеса и Сан-Диего и десятый в США, а так и не скажешь О_о

Регистрация, получения бейджика, подарков и гоу ту презентация. Начало выглядело как-то так:

Вообще, уровень организации конференции просто супер! Всё очень чётко: сессии, доклады, свет, звук, работа волонтеров, приложение с расписанием и новостями, лаборатории, еда/напитки, всё работало, как часы. Было пару раз когда у докладчиков что-то не компилировалось или не получалось подключиться, но на этот случай были записаны специальные ролики в симуляторе с «нормальной» работой приложения (видимо ранее были прецеденты).

Про саму презу Keynote, думаю особого смысла нет говорить, все всё уже двадцать раз рассказали в подробностях. После, когда смотрел запись, не нашёл на ней как зал смеялся после объявления цены на подставку для нового Mac Pro, это было громко, видимо такие звуки приглушают :)

После Keynote, Тим который Кук, вышел к прессе показать новые возможности AR. Выглядело это вот так:

В холле, между докладами обычно очень людно, но это только в первый день:

Надо сказать, что очереди были везде, из-за большого количества участников: на вход, на доклады, в WWDC Store была отдельная очередь которая начиналась далеко на улице:

После входа в сам магазин, на покупку было ещё 8 очередей с двух сторон, но двигались они достаточно быстро, хотя может мне повезло. Из ассортимента: майки ($35), кепки ($40), свитера ($60), наушники, переходники, зарядки и т. д.

У всех были бейджи, даже у собак :)

Не попал на Bash в четверг :( Был в это время в Сан-Франциско. По фоткам было классно. Жаль конечно...

И немного про доклады. Их было много и темы самые разные. Каждый день с 9 до 17. Много было про SwiftUI и как его использовать, про AR, новые возможности Xcode и iOS 13. На все естественно не было возможности попасть, потому что они шли одновременно в трех залах. Но потом обязательно посмотрю записи.

Ну а сам Сан-Хосе так себе, по сравнению с Сан-Франциско :) Но всё равно очень красиво и интересно.

Про Notion

Обновлено 27.05.2020
Теперь Notion бесплатен для личного пользования, без ограничений!

Notion

Notion

Notion

Я давно слышал про Notion.so, и на VC.ru и в телеграмм-канале его дизайнера читал, зарегался давно, но всё никак попробовать времени не хватало.

Вообще, уже долгое время хочу систематизировать все свои записи, заметки, напоминания и списки в одном месте. Сейчас многое хранится в Pocket, Google Keep, Docs и Drive. Думал развернуть у себя что-то типа MediaWiki, DokuWiki, чтобы был поиск, вложенные страницы, таблицы и вот это вот всё. Но так до этого дело и не дошло. Зато, до Notion добрался.

Если коротко:

сначала не понятно и сложно, потом интересно и многообещающе :)

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

Планирую туда перенести базу знаний по своим проектам, также таблицы из Trello, списки задач и диздоки. Ну и личные всякие штуки. Есть мобильные приложения и проги для Windows и MacOS. Ещё удобно отправлять в Notion ссылку на какой-нибудь сайт/статью/видео через встроенную функцию «Поделиться» на Android или iOS, как я делал это с Pocket. Возможностей по внутренней организации и оформлению страниц — море.

Эта штука бесплатна для личного пользования с ограничением в 1000 блоков, всё что больше — платно, $4 в месяц. Если нужен доступ для нескольких пользователей, с обсуждениями и админскими опциями, то $8.

Было бы классно, если была self-hosted версия, как например DokuWiki или Gitlab, но пока отсутствует. Посмотрим, как быстро кончатся «бесплатные» блоки :)

Наставничество

Читаешь новости, блоги, фейсбуки, (не)успешные истории и прочее, и видишь, что многие кто добился успеха, сделали это на своих ошибках. Да, у них всё получилось, набрались опыта, заработали деньги, написали статью, как они через всё прошли и т. д. Но сколько было потрачено времени и сил? Наверно есть ситуации когда это оправдано. Хотя сейчас, с ходу — не назову...

Как пример, образование в университете/институте по IT специальностям, в России. Это же полный провал. Понятно что сейчас информация быстро устаревает, но там же вообще ахтунг. Кто-то скажет, что там дают фундаментальное образование, что там учат учиться! Возможно. Но не 5 лет же! Специалисты выходят не подготовленные к реальной работе. Если ты не начал самообучаться, если не пошел стажироваться в профильную компанию, то такому выпускнику сложно будет найти работу. И работодателю нужно будет учить его с начала. Ценность такого высшего образования сильно преувеличена.

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

У нас почему-то плохо знают (забыли?) про наставничество. Это когда ты хочешь чему-то научиться/добиться и находишь себе опытного в определенной сфере человека, который уже прошел весь путь, который может дать совет, у которого скорее всего тоже был наставник, а у того тоже...:) В общем, человек, который готов помочь и замотивировать. Да, такие есть. Человек может быть наставником и даже не знать об этом. И наверное, наставнику не обязательно быть «профессором» в своей сфере.

У всех профессионалов — есть тренер, а у всех успешных людей — наставник.

Кажется, так это звучит.

Почему же тогда не найти себе наставника? Это сложно?
Нет. Есть онлайн сервисы для наставников и наставляемых.

Может быть стыдно/некомфортно просить такой помощи?
Возможно, для кого-то это так. Ведь в том же IT много интровертов.

Почему у нас это так слабо развито? Почему не говорят в школах и ВУЗах?
Я не знаю :(

Главная мысль:

Хотите быстрее добиться успеха — найдите себе наставника!

И не важно в какой сфере вы хотите развиваться: IT, искусство, продажи, литература. Везде можно найти такого человека.

Получилось немного скомкано, но посыл вроде ясен :) А если вы хотите помогать другим и у вас есть чем поделиться, есть опыт в какой-то сфере — станьте наставником! Возможно один из ваших наставляемых — будущий Пушкин, Стив Джобс или Менделеев.

Unity Mobile Input

Выложил на Github плагин нативного ввода для мобильных устройств. Это небольшая надстройка над стандартным Unity InputField UI. Работает на iOS и Android.

Зачем он нужен:

  1. Нативное поле ввода и клавиатура
  2. Отсутствует раздражающее дополнительное поле над клавиатурой в Android
  3. Для iOS можно добавить кнопку «Готово»
  4. Настройка кнопки Return для клавиатуры: стандартная, далее, готово, поиск
  5. Для работы нужно просто повестить скрипт MobileInput на родной InputField UI

До этого, было временное решение, которое не обладало необходимыми опциями, да и ошибки были. Собственно, на то оно и временное :) Но в Unity до сих пор нет таких возможностей для ввода, поэтому пришлось сделать такой плагин.

В моей версии исправлены ошибки и отрефакторен почти весь код от старого и неподдерживаемого плагина UnityNativeEdit.

Исходники на Github

Unity на Linux

Оно работает!

Всмысле не оболочка Unity, а редактор Unity :)
На выходных решил проверить, как там Ubuntu и всё «вот это вот с ней»... Оказалось, что всё хорошо-то. Всё работает, обновляется, есть куча разного софта, Unity в конце концов.

Последний раз я ставил какой-то Linux года 3-4 назад, но как-то не пошло. Даже не знаю почему. Потом пересел на MacOS и забыл про Linux и Windows. И вот — Ubuntu 16.04 LTS. Полёт нормальный. Оборудование на ноутбуке определилось, тачпад, камера, звук и т. д. Конечно, я сразу загуглил «ubuntu после установки» и проделал несколько настроек, но в целом — всё норм. Почему Ubuntu? Я не разбираюсь в 100500 дистрибутивах, да и не охота как-то, поэтому выбрал, тот что на слуху.

Так вот, по поводу Unity. Оказывается сборки под линукс делаются регулярно. И последняя версия которую я скачал и установил Unity-2017.3.0p2, вполне себе работает. Правда, я пока ничего не пробовал на ней сбилдить, но обязательно проверю :) Версия под линукс всё ещё в бете, поэтому возможны косяки. Но я к этому готов.

VSCode тоже есть под линукс и отлично работает. Думал ещё SourceTree поставить, но разработчики не планируют её выпускать для линукса. Жаль конечно, но на форуме где обсуждалось (и осуждалось) это решение, я нашёл пост про GitKraken. И, он очень даже хорош! Также есть аналог маковского homebrew — linuxbrew.

В общем, линукс — это не страшно и не больно :_) На нём даже игры делать можно...

Библия free2play

Почитал библию free2play. Определенно есть полезная информация. Для тех кто только начинает делать игры — must read, потому что там не только про f2p. Например:

  • с чего начать
  • основное правило: LTV должен быть больше CPI
  • «дефолтные» показатели ретеншн и монетизации
  • игровой цикл: action → reward → investment → trigger
  • игровые сессии и их продолжительность
  • экономика игры

Главы небольшие, читается легко + в каждой главе есть ссылки на другие интересные и полезные статьи, книги и видео на Youtube.

Ранее Ctrl + ↓