Будни бекендщика: bcrypt в Node.js не умеет в worker threads

В какой-то момент для некоторых тяжёлых операций вы начинаете задумываться о том, что в ноде не хватает возможности создавать дочерние потоки/процессы. И вот вы обновляетесь до последней версии Node.js, прикручиваете worker_threads, и…

Какие-то либы отваливаются. В частности, отваливается bcrypt, но только на Windows, на Ubuntu полёт нормальный.

Читать далее

Как критика игроков помогла сделать Dead Cells лучше

После того, как Dead Cells предстала перед игроками в Мае 2017, было продано свыше 850,000 копий игры, проект высоко оценили критики и фанаты(94% отзывов из 15,000 в Steam – положительные), она наконец-то покинет Early Access 7 Августа.

Но не всегда всё было гладко. Главный дизайнер Sébastien Bénard рассказал Гамасутре, что команда была испугана идей запуска в EA, беря во внимание так называемый «индипокалипсис».

«Некоторые крупные инди проекты провалились из-за этого…так что, в начале мы были очень осторожны. Это не было что-то, в чём мы были уверены», говорит Bénard. Но как у них, несмотря на это, получилось сыскать такой успех у игроков?

Читать далее

Будни юнитишника: сохраняйте глобальные ссылки на JNI объекты

Когда вы получили IntPtr на нативный Android объект, то GC может в какой-то момент почистить её (скорей всего, после выхода из локального скопа). Из-за того, что я одну ссылка не сохранил, дебажил код много часов, чтоб причину крашей найти.

Ещё хуже то, что стектрейс при краше никак не помогает.

Читать далее

Android P: новые возможности для работы с текстом

Все мы знаем, насколько важен компонент TextView. Вероятно, из визуальных элементов он используется чаще всего. Вот почему Google неустанно улучшает этот компонент. В новой версии SDK нам приготовил много вкусностей.

Читать далее

Unity-android-native: автоопределение типа при возврате объекта из JNI

Хорошо, когда вы знаете конкретный класс, который возвращает метод. Но что делать, если метод, к примеру getApplicationContext, возвращает абстрактный тип?

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

Читать далее

Библиотека для работы с Android sdk из C# кода

Многим приходится работать с Java sdk из Unity3d либо используя самописные плагины, либо, если достаточно базовых возможностей sdk, с помощью юнитишных классов AndroidJavaClass и AndroidJavaObject.

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

Читать далее

UnnyWorld: постмортем

Арена с боссами

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

Читать далее

Android Studio: Failed to crunch file при сборке

Понадобилось тут пересобрать один из старых проектов. И как всегда проблемы при сборке. Ладно, про ошибки, которые из-за обновления тулзов, я промолочу, но Android Studio: Failed to crunch file — это ересь какая-то.

Читать далее

Consul.io: unexpected end of JSON input

Довольно неприятная ситуация произошла. После ребута сервака перестал работать consul. В логах пусто почему-то. Я и в Ansible таск пытался запустить, и сервис рестартил, не помогало. Только когда вручную попробовал агент запустить, увидел лог: Error starting agent: unexpected end of JSON input

Читать далее

Будни юнитишника: Steam, Mac, Metal — всё плохо

Сделали поддержку Mac’а, а про Steam overlay и забыли. Недавно игрок пожаловался, что не может в игре покупку сделать, не показывалось окно с инапами. Оказалось, что Steam overay не поддерживает Metal на данный момент.

Читать далее